「なでしこ勉強会&合宿2009年4月」を振り返って
4月25日に秋葉原にある八角研究所にて、なでしこの勉強会を開催しました。これまで、なでしこの勉強会やオフ会にはコアなファンだけが集まって行うという雰囲気でした。しかし、今回の勉強会は違いました。「なでしこがはじめて」とか「なでしこを始めたばかり」という方がほとんどだったのです。そんな雰囲気で行われた、なでしこ勉強会についてまとめてみました。
勉強会開催の経緯
なでしこは、「日本語」をベースとしたプログラミング言語です。日本語を基本にした言語なので、母国語でとても楽しくプログラムを作ることができます。ファイルのコピーやバックアップ、Excel/Wordと連携、日々の定型処理に使える手軽な命令がたくさんあります。これからプログラミングを覚えたいという人にぴったりの手軽な道具です。
これまで、なでしこの普及活動として、オープンソースカンファレンス(OSC)への出展など、展示会を中心の活動を行っていました。その中で、一般的な業務で利用している人も増えてきたことを実感していました。それで、前回のOSCの帰りに「勉強会をやろう」と盛り上がり、今回の勉強会を開催するに至りました。
さて、「勉強会をやろう」と盛り上がったまでは良かったのですが、なでしこのメーリングリストに勉強会の開催を告知を投げてみたものの反応が薄く、「開催者=参加者」になってしまうのではないかと心配しました。(はじめは「開催者=参加者」でも良いと思ったのですが・・・)。
ところが、勉強会カレンダーに情報を登録を依頼してみたところ、下記のように、@ITで取り上げていただき、あっという間に定員の20人が満員になるという事態になりました。紹介してくださった、はなずきんさんに感謝でした。
- 日本語プログラミング? 「なでしこ合宿」へGO! - @IT自分戦略研究所
- http://jibun.atmarkit.co.jp/lcom01/rensai/zukin/05/01.html
そして、定員が埋まったころで、会場をお借りしすることにしていた八角研究所様から「20人も部屋に入れるかな?」という疑問が出され、勉強会の開催者一同青くなったのでした。
勉強会の開催
そのような訳で、会場の心配をしつつ勉強会は幕を開けました。しかも、当日はあいにくの雨となりました。(私の個人的な事情を言うと、その前の週から連続で徹夜作業が続いておりフラフラの状態で当日を迎えることになりました。)
ところが、ふたを開けてみると欠席者はほとんどなしで、会場(八角研究所)も20人入ってもキツキツという訳ではなく、自分のPCを広げて演習を行うのに問題のない広さがありました。
問題があったとすれば、雨だったこともあり「会場がなかなか見つからなかった」という声が多かったことでしょうか。今後、八角研究所の勉強会に参加する際は、地図をよくチェックしておくことをお勧めします。八角研究所では向学心のあるエンジニアのために「Eclipseプラグインの勉強会」や「自作楽器制作のための勉強会」など、さまざまな勉強会の会場として会議室を提供しておられます。
それでは勉強会の内容に話を移します。
今回の勉強会は三部構成でした。第一部は、なでしこユーザーのEZNAVI.netさんによる、なでしこ入門講座です。そして、第二部は、私が「なでしこで事務の自動化大作戦」と題して、なでしこ作者ならではの実践活用術を紹介しました。そして、第三部は、二手に分かれて問題演習を行いました。
簡単ながら、勉強会のあらましを紹介します。
なお、勉強会のプレゼン資料は、こちらのページよりダウンロードすることができます。
第一部:「なでしこ入門」(EZNAVI.netさん)
はじめに、勉強会の参加メンバーに自己紹介をお願いしました。これは発表者がどんなことを中心に話せば良いのか知る良い機会になります。冒頭で紹介した通り、意外にも「なでしこははじめてです」とか「はじめたばかりです」という紹介が多く驚きました。これまでの勉強会やオフ会ではコアななでしこファンばかりだったからです。しかし、これは今回の勉強会の趣旨ににぴったりな参加者の皆さんでした。また、北海道からはるばる参加された方もいて感心しました。
一通り、自己紹介が終わった後、EZNAVI.netさんによる「なでしこ入門」が始まりました。「なでしことは何か?」から始まって、なでしこのプログラムがどのようなものなのか、どんなことができるのかを紹介してくださいました。よく使われる命令の紹介もありました。
ただ、紹介をしていく中で、今回の勉強会の参加者は二つのチームに分けられることが判明しました。まず、前者は、完全な「プログラミング初心者」、そして、後者はプログラミングはある程度できるものの「なでしこ初心者」の方です。
勉強会で参加者の理解度に差があるのは仕方のないことなのですが、「プログラミング初心者」と「なでしこ初心者」の間にある溝はなかなか深いので、次回の入門講座ではこの辺りを考慮した発表にしたいなぁと思ったのでした。
そんな難しい状況の中、EZNAVI.netさんの発表は(その人柄が表す通り)終始和やかに進みました。参加の皆さんが自由に質問や突っ込みを入れたりして、勉強会らしい良い雰囲気になったのでした。
第二部:「なでしこで事務の自動化大作戦」(私、クジラ飛行机)
そして、10分の休憩をはさんで「作者流なでしこ実践活用術」と題した発表を私が扱いました。私自身がなでしこを使って事務を自動化した話を中心にして、ユーザーさんから聞いた事務の自動化を行った事例などを織り交ぜて、どんな場面でなでしこを有効活用できるのかという点について紹介しました。
また、実際のなでしこのプログラムを示して、なでしこを用いることで、定型業務をどのように手軽に記述できるのかについて解説しました。そして、私が実際に使っているなでしこのプログラムをデモとして披露させていただきました。
ここで披露したプログラムの多くは、毎週連載している「日経PC Online」のコラムでも紹介したものです。(よくよく考えてみると、毎週の連載が、実際に身近で必要となって作ったプログラムを発表する良い場所になっているなぁと思ったのでした。ですから、実際のプログラムとその作り方の解説は、そちらをご覧ください。)
発表の中で自然と力が入ってしまったのは、なんと言っても「自分自身がなでしこのヘビーユーザーである」と部分でした。なでしこは月一回のバージョンアップを欠かさず行っています。これがライフワークの一部になっているのは、誰のためでもなく、自分自身がより便利になったなでしこを使いたいという想いを持っているからです。私自身、勉強会と合宿を企画して、改めてなでしこ開発のモチベーションについて再確認できたのも、大きな収穫でした。
第三部:問題を解いていこう
さて、本来、第三部では、Chocoさんによる「なでしこTips」を発表してもらう予定だったのですが、予定を変更して問題演習となりました。(というのも、せっかく自分のPCを持参してもらったのに、発表時間が押してしまった関係で、実際になでしこに触れる時間が少なくなってしまったからです。せっかく用意してもらったのに、Chocoさんに申し訳なかったので、次回は、もう少し進行プログラムを工夫したいと反省した点です。)
問題演習は二手に分かれて行いました。ある程度プログラミングのことが分かっている「なでしこ初心者」と、全くの「プログラミング初心者」で分かれての演習です。これは予定になかったことのですが、臨機応変に対応できて良かったです。
では、最後に「なでしこ初心者」のチームがどんな演習を行ったのか、実際のプログラムを交えて紹介していきます。
「ナベアツ算」を解く
演習の第1問目には、ナベアツ算を解くというものでした。これは、プログラマーの入社試験で出題すると、その人が本当にプログラミングができるのか試すことができるという話で話題となった「Fizz Buzz問題」を改良したものです。設問は以下の通り。
1から100までの数字を順に出力してください。そして、その数字を表示するときに、3の倍数と3がつく数字の時だけ「アホ」を添えて表示してください。
(この問題の元ネタは、「どうかく?ORG」より引用したものです。)
非常に単純なプログラムなので、なでしこの初心者がなでしこに慣れるのにはぴったりの課題です。
実際、なでしこで繰り返し処理を記述するには、「VARをN1からN2まで繰り返す」という書式の「繰り返す」構文を利用することになります。私の回答は以下のようになりました。
NOを1から100まで繰り返す もし(NO%3=0)ならば 「{NO}:アホ」と表示。 違えば NOで「3」が何文字目か? もし、それが1以上ならば 「{NO}:アホ」と表示。 違えば NOを表示。 表示ログを言う。
この問題の元ネタ「どうかくORG」にもよく投稿されている、99yenさんの答えは以下にあります。
99yenさんは、「繰り返す」構文を使わずに「N回」構文を利用して問題を解いています。プログラム演習の面白いところは、問題を解く人によってプログラムの作り方が変わってくるというところです。
他の演習としては、「和暦西暦変換」のプログラムを作ったり「キッチンタイマー」を作ったり、「カレンダー」を作ったりしました。
合宿&オフ会について
そして、夕食をみんなで食べた後、そのまま合宿に突入しました。合宿では、改めて自己紹介を行い、その後、みんなで演習の続きを解いていきました。合宿の参加人数は、(夜の帰宅組を含めて)8人でした。少人数精鋭ですので、ぐっと距離が近くなり、お互いに課題解決のためのアイデアを出し合ったり、自分の作ったプログラムを見せ合ったりして楽しみました。(夜が更けてきたところで、私はなでしこのバージョンアップ作業を始めました。その様子を見てもらったり、ユーザーさんが指摘した問題部分を直したりしました。)
夜が更けるにしたがって、(この手の合宿によくある通り)一人、また一人と寝床に移っていきました。私が朝目覚めると、元気な若者組は夜を呈してパソコンに向かっていました。そして、翌日の懇親会にもそのまま演習を続けたということです。また、業務で困っていることについて相談し、みんなで解決策を考えるという場面もあり、勉強会&合宿は良い雰囲気のうちに幕を閉じました。
勉強会のまとめ~次回に向けて
以上のように、なでしこ勉強会(東京地区一回目)は大盛況のうちに幕を閉じました。また次回も開催したいという声もあがっていましたので、人数が集まるなら定期的に開催できたらいいなぁと思います。
今回、定員オーバーで参加できなかった方もいるので、みんなのモチベーションが下がることのないうちに、第二回が開催できたらと思います。また、名古屋や関西でも勉強会を開きたいとの話も出ています。
なでしこに限らず、IT勉強会に参加することはITスキルの向上に役立つだけでなく、良い仲間(またはライバル)を作るきっかけともなっています。将来のビジネスパートナーと出会うこともあるかもしれません。
なでしこの勉強会も業務の自動化・効率化のアイデアを交換したり、プログラミング技術向上のためのきっかけとなったらと思います。次回のなでしこ勉強会には、あなたも参加してみませんか。
このサイトについて
TrackBack URL :
