Scalaの勉強会、Scala入学式を新潟県長岡市でやってきました #nds33

Scala 一年生のわたしですが、僭越ながら「みんなで Scala に入門しようぜ!」というハンズオン形式のセミナーの講師を行ってきました。「Scala 入学式」という名前は papix 氏がやってる「Perl 入学式」のパクりです!

この勉強会に使った資料は以下にアップしておきます。 https://gist.github.com/Shinpeim/6740436 一部マークダウン壊れてるけど勘弁してもう燃え尽きた。

東京から jewelve 氏と moznion 氏が参戦してくれたりと、LTもえらい面白かったです。講師役がなんかいろいろ書くのもアレなんで、参加者のみなさんのブログを見ていただければなと思います!(参加者のひとはぜひブログ書いて!見つけ次第リンクしていきます)

と思ったけど、準備などで何を考えたかシェアして悪いことはないな、と思うので、一応少し書きます。

事前準備について

今回はハンズオンなので、参加者のみなさんには事前にいろいろと準備をしてもらう感じにしました。ただ、けっこうだるい作業とか多くて、「入学式の前に入学試験がある」という反応などもあり、もっとていねいにやるならば環境構築からまずはハンズオンでやるというのが優しいのかな、と思いました。

でも、今回は無料のセミナーなんで、そこまでは面倒みなくてもいいかな、というのもあり、簡単な事前準備のための資料だけを用意しておき、「それを読んで準備しといてね」って感じで参加者のみなさんの強い意思にお任せした結果、全員きちんと事前準備を行って来てくれるという感じでした。今までいろいろなイベントを見てきましたが、全員がちゃんと準備をしてドタキャンもないみたいなイベントは決してあたりまえではないし、NDS はいつもながら「なんとなく」な参加者のいないすばらしい勉強会だなと感じました。civicさん++。

資料作りについて

Scalaはなんか入門しにくい印象があるみたいなので、まず、入学式の目標を、「手を動かしてScalaの良さを実感してもらう」ということにしぼりました。そのため、楽しさを実感してもらうために必要であろう事柄はふんだんに、しっかり書くなら知っておくべきだけど、あとからしっかり学ぶときでもいいかな、という事柄は大胆にカットするという作業から始めました。その結果、本当に言語の基本的な部分と、Java を書いてるときに「だるい」ってなる部分を改善する機能、あるいは型付けの良さを実感してもらえる機能などは盛り込みつつも、implicit conversionなどの機能には全く触れない、という方針を決めました。

そこから、それぞれの機能に対して、「なぜこの機能があるとうれしいのか」を実感できるようなプログラム例をひねり出す作業を行いました。そこで、「型に守られる安心感」「型で設計する面白さ」を実感できる例として、あのゲームの一部分をめっちゃしょぼくしたみたいなプログラムを、パターンマッチや再帰の組み合わせの面白さを実感できる例として「仕事は終わらないわ、私が守るもの」のプログラムを、mapやflatMapでモナディックな操作を行うとうれしい例として List と List の要素の組み合わせを得るプログラムや Option モナドの例や Future モナドの例などを思いつき、最初に洗い出した「今回触れるべき機能」があることでなにが嬉しいのかがなるべく伝わるようにカリキュラムを組んで行きました。例を探しては実装してみて「うーん、これだとそんなに嬉しさが伝わらない気がする、没!」みたい感じでかなり試行錯誤したので、準備の中でこの部分が一番大変でした。もう二度とやりたくない(とか言いながら自分が好きな物をひとに薦めるの大好きマンだからまたなんか出て来たらやるんだと思う)。

当日について

と、いろいろと頑張って準備した割には結構グダグダな進行になってしまったところがたくさんあって、ユーザー体験最悪だったんじゃないかとすごい不安になってたんだけど、参加してくださったひとのブログを読むとそれなりに狙いがうまく行ってたようなので、安心しました。よかった。がんばり無駄じゃなかった感がある。

そんな感じです!