t_wadaさんが提案するJavaScript速習コースを実際に履修してみた

はじめに

もう2ヶ月前の話なのですが、日本のTDD第一人者で、最近はpower-assert-jsの開発などJS界隈でも活躍されている@t_wadaさんが、Twitterでこんな提案をされていました。

ちょうどこの頃、初めてのgemを作り終え、Ruby以外の言語に対する学習欲が高まっていたので、この提案に乗っかってみることにしました。
本エントリでは、この速習コースを実際に履修した感想と、結果どうなったのかを書きたいと思います。

履修前の状態

ずっとRuby on Railsを使って開発してきたこともあり、JavaScriptは「とりあえず書ける」という状態でした。具体的には

という感じでした。

各書籍の感想

JavaScript: The Good Parts

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

ES5/ES6を軽く抑えてからから読んだ方がいい

発売日を見てもらうとわかるんですが、この本はES3時代に書かれた本です。 そのため、ES5/ES6における文法面での改善をある程度把握した上で読まないと、「昔はこんなに大変だった(けど今は解決している)」という部分に時間を持って行かれます。

…ということに途中で気付いたので、一旦ES5とES6について軽く抑えてから読むのを再開しました。 僕が参照したのは以下の2点です。

勉強になった点

個人的に「ここは良かった」と思った点は以下です。

  • 関数呼び出しパターンによるthisの違い(4章)
  • もしnew演算子がメソッドとして実装されていたら(5章)
  • 良いスタイルとは(9章)
  • 悪いパーツ(付録B)
    • function文とfunction式の比較
    • 変数型のラッパーオブジェクト

皮肉にも、"Good Parts"よりも"Bad Parts"の方がためになるという、、、

追記(2015/10/20)

今この本を読むのはオススメしないという意見をいくつか頂いたので、紹介しておきます。

t_wadaさんが提案するJavaScript速習コースを実際に履修してみた - WEB SALAD

今 JS を勉強したいって人に Good Parts は勧めない。

2015/10/19 14:54

ノイズが多いという指摘はその通りで、僕は(前述のように)ES5とES6について軽く抑えてから読むことで上手く回避できたと思います。 ですが、そういう回避のテクニックが必要な時点で完全な初学者向けではないな、というのが個人的な感想です。

開眼! JavaScript ―言語仕様から学ぶJavaScriptの本質の方が良いという意見もありました。

以上、このエントリを読んで「勉強しよう!」と思って頂いた方の参考になれば幸いです。

WEB+DB PRESS Vol.87 特集1

WEB+DB PRESS Vol.87

WEB+DB PRESS Vol.87

完成度が高い、すごい

この特集は30ページほどなんですが、主要な新機能について一通り触れられているほか、これらの機能を現時点でどう使っていくべきか、これからどうなっていくのか、という点についてコンパクトにまとめられており、ES6を抑えるにはこれで十分なのではと思いました。

ちなみに、読んでいる途中に「〜についてもう少し詳しく知りたい」となった場合にはJS.nextさんがオススメです。僕もお世話になりました。

勉強になった点

個人的に「ここは良かった」と思った点は以下です。

  • モダンになった文法(3章)
  • 強化された標準ライブラリ(4章)
    • Symbol
    • Proxy
  • 簡潔で柔軟な非同期処理(5章)

ES6は文法面での改善が(わかりやすいので)フィーチャーされがちな気がするんですが、それ以外の部分、特にbuilt-in symbolsとIteratorの関係とか、PromiseGeneratorを使って非同期処理を記述する、といった点は読んでておおーってなりました。

全体を通じて

冒頭で紹介した@t_wadaさんのツイートにもあるように、この速習コースはページ数にして250ページ未満と、とてもコンパクトにまとまっています。
が、JavaScript: The Good Partsの「はじめに」にも書かれているように、その分自分で調べないといけないことも多いので、軽い気持ちで読み始めると痛い目に遭います\(^o^)/

なお本書はリファレンス本ではない。本書はこの言語の風変わりな特徴のすべてを網羅して解説しているわけではない。そういう意味で、本書にはあなたが知る必要のあることすべてが書かれてはいない。しかしそうしたものはオンラインで簡単に見つけることができる。代わりに本書では、本当に重要なことだけに触れるようにしている。

履修後の状態

  • JavaScriptの曖昧だった部分への理解が深まり、なんとなく書ける状態から脱せた
  • ES6の話についていけるようになった
  • ES7(特にasync/await)への興味が高まり、関連エントリを読み漁るようになった

次は何するの?

これまた今更感があるのですが、次はNode.jsの勉強をしようと思っています。
先月io.jsと統合してバージョン4.0.0が出ましたし、出遅れ組が勉強を始めるにはいいタイミングなのかな、と信じてます(涙目)