Scala勉強会やってみる?

Scalaの勉強会を立ち上げる機会が貰えそうなので、色々質問に答える形で自分の思いを残しておきます。自分はあまり気合いを入れて、物事に臨むタイプではないと考えているのですが、地道に長く続けたいので、今の気持ちを整理します。

 

目的は何か?

自分自身が、単純にScalaに触れる時間を個人的に増やしたいと考えたからです。独学でやってきたけれど、誰かと会話しながら身につけたいと感じたから。

そう思うきっかけになったのも、大阪での勉強会に参加させてもらったからです。良い経験をする事が出来て、非常に感謝しています。

 

なお、個人学習している分にも情報は一杯揃っています。それらのリンクが揃っている以下のサイトがおすすめです。

Scala入門時に役立つ情報まとめ - Qiita

 

個人学習でも十分できるのですが、それ以上の経験もしたくなりました。

 

誰を対象にするか?

私自身は初心者では無いけれど、もっと知識を定着させて、OSS活動に参加してみたいです。その為には、他の方とScalaについての会話をしたいと考えています。以下のような思いを持ってる方と一緒に過ごせる時間が欲しいです。

  • Scalaを始めたいけど、ひとりではしんどいな~と感じている人。
  • 初心者ではないけど、中級者になりきれていない人。
  • プログラマーかっこいいなと思っている人。
  • 将来、Scala関係のOSSに貢献して、自分の世界を広げたい人。
  • 既にOSSに貢献している方で、自分の経験をもっと伝えたい人。

 

Scalaは難しい言語か?

難しい部分もあると思うし、自分も理解できてない部分が、まだまだ大量にあります。長期間、開発もやってなかったし、直近(8年前!)がっつりやった開発は.NETの初期の頃の分だし、プログラミング経験はそんなに無いです(一応、情報系の大学出身ですが、落ちこぼれ)。

 

そんな状態で、Scalaの勉強始めても、意外に書けるようになりました。初めて勉強してから、大体3年弱かかったけど、基本情報処理のCALSIIのScala版を開発する事ができました。趣味でやってる割には十分な出来具合いだと感じています。『何かカッコいいWebアプリでも開発して、有名になれたらええな〜』みたいな欲もあったけど、最初にがっつり書いたのは、180度逆方向のアセンブラ処理系でした。Java版の書き換えでもかなり夢中になってやれたので自分では満足です。

 

なんでこんな書き方できちゃうの?みたいな事もあるけれど、それはクイズとかで『こんな解き方があったのか』みたいな驚きでもあるので、難しさを楽しめるようになりたいです。

 

 

なぜ社内では無いか?

何度か発表してみたけど、残念ながら誰にも響かせる事が出来ませんでした。みんなにとってみると、業務で使う予定も無いし、Javaもがっつり開発やるわけでも無いのに、何故にScalaって感じかと思います。そんな状況で社外の勉強会に参加してみたら、Scalaやってる人がいっぱいいたのですごく新鮮に感じました。

社外の誰かを探した方が、同じタイミングで同じ考えを持ってる人がいる可能性を感じています。

 

どのような形で進めるか?

1. 初心者向け

公開されている研修資料(新卒、インターン向け)を利用したいです。特にドワンゴ社の研修資料は最高です。同じくはてな社も、大変参考になる資料が公開されています。他にも多々ハンズオン等が公開されています。

一度、チームのメンバーにビズリーチ社のPlayframeworkのハンズオンを実施してみたのですが、あまり良い反応を得られませんでした。内容が悪いわけではなく、タイミングが悪かったのだと思います。Webアプリも詳しくなく、プログラミング経験も少ないメンバーに、いきなりWebアプリはしんどいようです。本当の初心者も受け入れたいので、もっと簡単なバッチとかから始めたいです。

sbtでかなりつまづいたので、できれば sbtの簡単なところから。ディレクトリを自分で作って、参照するライブラリをbuild.sbtに追加して、ビルドして実行してを何度か繰り返す感じ。その後は、すごく簡単な課題集をこなしてみるとか。Aizu Online Judgeとかとか。

 

できれば同じ内容をメンバー変えて、なんども開催したいです。そんな中に継続して続けたいと思う方も出て来ると思うので。

 

2. コードが読める方

Githubに沢山公開されているコードを一緒に読みたいです。ScalikeJDBC、Skinny Framework、Scalatra、GitBucket、PlayFramework とかの良いコードの書き方とかについて話ししてみたいです(Slickはちょっと怖い)。

読んでてもニュアンスがわからない部分とかが出て来るのだけど、自分はひとりだとその場で悶々として終わってしまいがちでした。誰か別の方の視点とかも欲しいです。

 

3. ベテランの方

経験だとか、最新情報とか教えて欲しいです。聞いていて理解できない部分が多いだろうけど、いつか理解できる日が来る可能性もあるので、色々伺いたいです。自社だけだと本当に視点が狭くなりがちですし、記事読んでるのと実物では本当に実感が違います。

 

4. 読書会

今までやった経験ないのですが、やってみたいです。声に出して読みつつ、その部分のコードについて会話するとかがやってみたい。特に以下の本です。

Scalaスケーラブルプログラミング第3版

Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear)

 

5. 参考書のまわし読み

IT系の書籍は高いです。が、何度か読んで、ある程度身につくと読み返す機会が減ります。そんな読まなくなった書籍を貸し合うとかもやりたいです。デポジット取ってやっても問題ないなら、仕組み化してやっても良いぐらい。(やっぱり後から読むので返して欲しいはあるので)

 

6. Scalaのカンファレンスとかへの参加

関西でも割と規模の大きいカンファレンスがあります。去年は残念ながら一人で参加だったのですが、何人かで参加して、感想とかその場で話ししたいです。できれば東京の大きいカンファレンスとかへも。

 

開催するなら月2回とかやりたいけれど、継続させるのに無理がありそうなので、まずは月1回で、必ず最初に初心者向けの時間を取って、その後は別の話題をプラスアルファしたいです。

 

-----------------------------------------------------------------

色々書き連ねてみたけど、今の気持ちはこんな感じです。ストイックに何かを目指すわけでは無いけれど、一つずつを積み重ねて、しっかりと土台を築きたい。