渋谷の片隅で吠える

エンジニアをしています。主にscalaとjavaを書いています。

scalaを勉強するにあたって使ったサイトとかをまとめる

基礎的な読み物

dowango新卒エンジニア向けの研修資料
対象/初学者

無料で読めてかつ基本的な概念や文法がよくまとまっているのでオススメです。 各章の最後に練習問題が付いているので理解度のチェックが簡単にできるのと難しい表現を使わないので読むのが億劫になりません。 基本の文法を覚えるなら日本語のドキュメントの中で一番いいかも。 2時間もあれば全部目を通せるのでなんども読み返す事ができていいです。

Scala公式サイト(※英語、一部日本語対応)
対象/javaからscalaに乗り換えの方、ある程度関数言語を知ってる方

本家のドキュメントです。 丁寧にガイドが書かれているのですが、個人的にちょっと読むのがしんどいです。 あと基礎的な言語に関する知識を必要とするので初めのうちのとりあえず動く感覚が欲しい時には向かない印象です。 メソッドや文法なんかは間違いないのでちょくちょく見に来ましょう。

scala school
対象/初心者、英語読むのが億劫でない人

割と実践的な内容を踏まえた包括的なサイトです。 twitterが自社での使い方を踏まえた上でカリキュラムを組んでいるので実践に近い感覚です。 ただほとんど英語なんで翻訳とかしながらやったりするにはちょっとしんどいかなとおもうのですが英語余裕な人はここから入門で十分ですね。

実践

paizaの無料のコンテンツをこなしたくらいです。 シンタックスとかツッコミをくれるのでいいですね。

僕は動かないと理解が深まらないんでguthubを徘徊してscalaのコードを手元で写経して動かすとかをしていました。 まだまだ勉強中なので続けます。

勉強に使った環境

動かしてなんぼだと思うので砂場を用意してサンプルの挙動を確認していました。

Mac OSX 
IDE :intellij idea
playFramework2.5 scala

playFrameworkのscala worksheetと呼ばれる機能があるのでそれを使います。 リアルタイムにコンパイルの結果を返してくれるので非常に学習がはかどりました。

おまけ

Effective scala
twitterがまとめたscalaシンタックスのルールや実践コードでこういう書き方をするといいよ的なものをまとめたものです。

これに沿って書けば概ねルールを踏襲したシンタックスになるので、 お行儀の悪いコードにならなくていいと思います。

今度scala worksheetの使い方とかをまとめます。