Scalaの夏、はてなインターンの夏
いわゆる、はてなインターン2015感想エントリってやつです。
上記のページにだいたいのことは書いてあるし、要約すると「最高の夏」ということになります。
とは言えこれで終わるのも寂しいので、はてなインターンの感想を書いていきます。
インターン参加まで
下ははてなインターン中の写真です
今年のはてなインターンは、応募時に希望のコースを選択する形式になっていました。
僕はいろいろな理由があり「クラウドサーバ管理システムコース」を選択しました。
このコースではMackerelの開発に取り組むことができます。
はてなといえばPerlがメインの開発言語であることはよく知られていますが、「クラウドサーバ管理システムコース」ではScalaを使って開発します。
インターン前半
下ははてなインターン中の写真です
今年のはてなインターンも例年通り、前半1週間が講義で、後半の2,3週間がサービス開発という形式でした。
前半では、ブログシステムの開発を軸にして、
- 一日目: 開発言語の基礎
- 二日目: データベース
- 三日目: HTTP, WAF
- 四日目: JavaScript
- 五日目: 自由課題
- 六日目: インフラ講義
という流れでした。
これだけスピード感のある内容なのに、みんながついていけるようになっててとにかくすごい。
講義の内容に応じて課題が出されていたのですが、必修課題・オプション課題の区分けなんかは過去の知見でうまく調整されているんだろうなぁと思います。
毎日の課題に関してきちんと講評されて発表が行われるのは、個人的に気分アゲアゲポイントでした。
普段のサービス開発の際にPull Requestを出して、間違ってる点が指摘されることはあっても、良い点を褒めてもらうことはあまり多くないですし、同じ課題に対して他の人がどんなコードを書いたのかが見れるのは新鮮でした。
特にScalaはいろんな書き方ができるので、Scala初心者の僕にはありがたかったし面白かったです。
例えばScalazは使わなかったけど、ScalazのEitherは便利そうとか色々と知見が得られました。
社員が全力でサポートして、全力でフィードバックを与えてくれるのが本当にいい体験でした。
自由課題の際には、3Dアニメーションとか自然言語処理とかシンセサイザーとか、インターン生ごとに特色が出ててかなり楽しかったです。
Scalaのコンパイルの遅さに悩まされた以外はとにかく楽しかった。
インターン後半
下ははてなインターン中の写真です
後半でチーム配属されてからは機能改善や新機能のリリースをいくつかしました。
新機能を開発している途中で頓挫して失敗したものがあり(それは残念だったのですが)、ただその教訓を別の機能のリリース時に生かすことができたのは成長体験っぽくてかなりよかったです。
以下の記事はインターン生が何かしら関わっています!
インターン中はペアの id:haya14busa さんと一緒にペアプロしていることが多かったのですが、Vimをかなり使い込んでいて、ScalaをVimで高速に書くという恐ろしい事態を目にしてビビってました。
(一方、僕はIntelliJに文句をたれながら開発していました。)
普段はJavaScriptやらRubyやらを書いているのですが、Scalaで2,3週間ほど開発していて、いろいろとよかったなぁと思います。
- 型があるので安心
- 困ったらIntelliJ様が教えてくれる
- 関数型プログラミングの書き方ができるので気持ちいい。自分が天才になったと錯覚できる
- 疲れてきた時はコンパイルをすれば強制的に休憩が取れる
- 疲れている時でなくても、コンパイルに時間がかかるので強制的に休憩が取れる
- Issueを読みたくなったらコンパイルすることができる
- ちょっと一息いれるタイミングでコンパイルができる
- Scalaのコンパイルの遅さの対処法として、git-new-workdir の知見が得られる
う〜んScalaはやっぱり最高ですね。
後半過程が終わったら、各チームで成果発表会が行われるのですが、今年は僕らのチームが優勝することができました。
だいたい id:haya14busa さんのおかげです。ありがとうございました!!!
終わってみて
下ははてなインターン中の写真です
はてなインターンはかなり前から準備がされているみたいで、全体を通してとても完成されているなぁという感想を頂きました。
メンターの id:Sixeight さんにも色々と手伝ってもらって助かりました。ありがとうございました。
Scalaという自分にとって初めての言語を選んだこともあって、初めてプログラミングをした時の楽しさが体験できたのもよかったです。
プログラムを書くのに少し疲れていた時期だったので、毎日楽しくコーディングできて本当によかったなぁと思います。
ただ、こんなにScalaのコンパイルが遅いとは思わなかった。