読者です 読者をやめる 読者になる 読者になる

とんちむ日記

RubyとJavaScriptと猫が好きです

これからJavaScrirptを学ぶ人におすすめしたい書籍

f:id:tonchix:20170504001032j:plain プロジェクトがReactだとかAngularだとかVueだとか、最近流行りのフレームワークやライブラリを使ってれば別なんですが、例えばjQueryでDOM操作とXHRするくらいだったりするとプロジェクトに参加しているエンジニアはあんまりJavaScriptをしっかり勉強しない傾向にある気がしてます。

ですが、フロントエンドが専門でなくともWebエンジニアたるもの最低限のJavaScriptは書けるようになっておくべきです。

4月からWeb業界でエンジニアとして働き始めたという人もたくさんいると思うんで、そういう方々はjQueryさえできれば大丈夫とか言う先輩には気の毒な人を見る目で愛想笑いだけしておいて、ぜひJavaScriptをしっかり学んで欲しいと思います。(注:決してjQueryが不要とは思いません。長期的にはなくなって欲しいと個人的には思いますし、いずれはそうなっていくと思いますが、少なくとも「レガシーな環境」や「UIがそこまでリッチである必要はないプロジェクト」で今後も使われ続けていくでしょう)

なぜJavaScriptをしっかり学ぶべきか、理由は「JavaScriptは難しいから」この一言に尽きます。

特にサーバーサイドのメインの言語がJavaのような静的型付け(それも型宣言がわざわざ必要な)言語だと動的型付けのJavaScriptはややこしく、どのように動作するかわからず不安に感じると思います。

ではその「しっかり学ぶ」にはどういう指針で学習を進めていけばいいのか。

よく初心者はjQueryから入りがちなんですが、jQueryはあくまでJavaScriptのライブラリの一つなのでJavaScriptの基本的な知識がないと思わぬところで苦労します。まぁDOM操作は初めてやると見た目の変化が楽しくて面白いのでとっかかりとしては悪くないと思いますが、以下の書籍などで入門から応用まで体系的に学んでいきましょう。

オススメの書籍

JavaScript本格入門 山田 祥寛 (著)

持ってる人は大正解ですね、この本の著者である山田氏はその他の書籍でもわかりやすさに定評があります。リンク先のアマゾンレビューでも高い評価を受けていますし、僕自身、この本で学習しましたが非常にわかりやすいです。

体系的に基本的なところから学べるので隙間なくJavaScriptの基礎を学べるはずです。最近、新版になって以前あったjQueryの項目が消え、ESnextについての言及が増えました。時代に合わせた素晴らしい改定だと思います。初心者はまずこの本で入門することをおすすめします。(プログラミング初心者ではなくJavaScript初心者はです)


開眼!JavaScript Cody Lindley(著)、和田祐一郎(訳)

これも以前から評判が良くて王道と言える本で持っている人も多いのではないでしょうか。山田氏の本でしっかり基礎を学んでればこの本は必要ないとも言えそうですが、本の厚さは半分ほどでJavaScriptのつまづきやすい、ややこしい言語仕様についてよくまとまっています。

復習用に買っておくという手もありますし、JavaScript中級者はこちらだけやるのもありでしょう。初心者というか初心者が基礎を学んだ上での次のステップとしてこの本はオススメです。


JavaScript:The Good Parts 「良いパーツ」によるベストプラクティス Douglas Crockford(著)、水野貴明(訳)

少し古い本にはなりますが、こちらも良い本です。これも中級者向けの書籍ですね、JavaScriptをより深く学びたい方向けです。

JavaScriptには歴史的な要因(ブレンダン・アイクによって短期間で作られたとか、ブラウザベンダー各社が独自拡張したとか・・etc)によって言語仕様として様々な問題点があります。そういった悪いパーツを使わずに良いパーツを使った手法が書かれているので是非読んで見ることをおすすめします。


JavaScript Promiseの本 azu(著)※無料

JSer.infoを運営してるazu氏が書いた本。ES2015のPromiseについて詳しく説明されています。jQueryしかやらない人でもDeferredの仕様を理解するのに役にたつはずです。非同期処理を行うならばPromiseは必要不可欠になりつつあります。この本でしっかり学習しておきましょう。なんといっても無料で読めるのが素晴らしいですね。web版はコードを実行したり、編集したりできます。pdfでダウンロードして隙間時間にスマホで読んでもよし。

おしまい

さて、4つほど紹介させていただきました。JavaScriptの世界は広大なのでもっと知るべきことがある!という意見もあるかもしれませんが、フレームワークなどを考慮せずに初心者から〜中級までと考えるとこんなところだと思います。その後で必要な知識を積み重ねていくのが良いと思いますよ。