『[改訂新版]プロになるためのWeb技術入門』を読んだ感想をレビューとしてまとめます。
この記事を書いているぼくは実務経験1.5年のRubyエンジニアです。
なぜ購入したのか?
正直言って、深い理由はないです。
未経験時代に旧版を購入して勉強しましたが、とてもタメになりました。
その新版として本書が出版されていたため、「せっかくだし復習がてら買っておくか〜」くらいのノリで買いました。
最初の印象
最初に受けた印象は「めっちゃページ増えてね?」です。
旧版は288ページなのに対し、新版は528ページと倍近く増えていました。
また、本書は旧版の一部を追記したというわけではなく、全面的に書き直されています。
そのため旧版とは違いが結構あります。
「はじめに」の部分で旧版との違いとして以下が挙げられていました。
旧版で解説していたリレーショナルデータベースについては、本書では触れていません。
MVCモデルや、プレゼンテーション層、ビジネスロジック層、データアクセス層といった、サーバサイドアプリケーションの設計手法に関わる話は、本書では触れていません。 特定のプログラミング言語やフレームワークが前提となることが多く、一般化して説明しにくいためです。
セキュリティに関しては、本書ではまとまったトピックとして解説していません。個々のトピックに関連して、個別に説明するに留めています。
「なんだ、この1冊でデータベースとかセキュリティの深い部分までまとめて復習できるかと思っていたのに。何のためにページ数を増やしたん?」というのが最初の感想でした。
実際に読んでみて
上記の印象を持ちつつ読み進めた個人的な感想は以下のとおりです。
ポジティブな感想
- 第2章で全体像を説明し、それ以降の章で個別の説明に入る。だから「今どこの話をしているのか?」が意識しやすい。
- 技術の歴史の流れを重視しているため「どんな課題を解決したくてその技術が注目されているか?」がわかりやすい。
- 旧版にはなかったハンズオンが大ボリュームで追加されている。しかも自分がちょうど勉強していたGo言語。
- セッション管理や認証機能などを自作してみれるのは良い。
- ロードバランサー・CDNなど大量のリクエストを想定した話やサーバーサイドレンダリングやGraphQLなどモダンな技術の話も出てくる。
- 旧版はサーブレットやJSPなどJava固有の話が多かったが、新版では割愛・一般化されているため、中身を理解しやすい。
- 雰囲気で使っている単語が丁寧に説明されている(レンダリング、プロセス、スキーマ、DOMなど)。
ネガティブな感想
- とはいえボリュームが多い。
- 歴史の流れ重視なので個別のトピックだけを拾って辞書的に読むならこの本じゃなくても良さそう。
- (おそらく紙面の都合上)ハンズオンの全てのコードが書籍の中に書かれているわけじゃないため、GitHubリポジトリも参照する必要がある。
- WWWの歴史とかは流石に知らなくても良い気がしてしまう。第3章がその話なので、仕事に役立つ話は少し先まで出てこない。
- URI, HTTP, HTMLの歴史的経緯の説明は長すぎ?さすがに知らなくても良いのではと思ってしまった。
- ボディーブロー的に効いてくる知識がまとまっているため、今日読んで明日からすぐ仕事で生かせるタイプの技術書ではない。
所感
全体として技術の歴史的経緯やその技術が解決しようとしている課題、「なぜこれが必要なのか?」が丁寧に解説されています。
実際、本書の第1章では以下のように書かれています。
技術を理解するということは、表層的な使い方を覚えることではありません。理解の本質とは、その仕組みを説明でき、使いどころを自分で考えられるようになることです。そのためには、それぞれの技術が「何者なのか」、「なぜ登場したのか」を押さえることが重要です。それらを自分で押さえられるようになると、新たな技術の仕組みが想像しやすくなり、本質的な理解に到達できます。
まさにこの「本質的な理解」を得られる1冊になっていますし、だからこそボリュームも大きくなるのだと腹落ちしました。
特に「MPA → SPA → サーバーサイドレンダリング」の変遷とその訳を知れたのは日々の業務にも役立ちそうだと感じます。
一方でボリュームがとても多いため、読んでいるうちによく分からなくなってくる場面も多いです。
「これ、どこまで知っておいた方がいいの?」と感じ、読み進めるのがしんどくなる時もありました。
また、章末に「まとめ」はありますが、1章あたりの文章が長いため、もう少し細かい単位で「ポイント」のような要点整理があると助かるなと思います。
こんな人はやめておけ
「入門」と書かれている割にはボリュームも多いため、未経験や駆け出しのエンジニアにはオーバースペックです。
そういった方はむしろ旧版の方が良いかもしれません(ただし旧版は古い and Java固有の技術が想定されているため一長一短)。
また、要点を効率よく学びたい人や飽きっぽい人にも不向きです。
じっくりと腰を据えて1冊の技術書と向き合えるタイプの方や、「遠回りこそが近道」と考えて本質的な理解に時間を割ける人じゃないと読みきれないと思います。
ぼく自身も「基礎力を強化したい」と思って購入しましたが、それでも挫折し一部は読めていません。
その意味では「勉強・スキルアップへの熱意」だけでなく「技術への純粋な興味・好奇心」も求められると感じました。
まとめ
- なんとなくやっていけてるけど、根本の仕組みを理解して骨太な基礎力を持ったエンジニアになりたい
- フレームワークを活用して日々の業務はできてるけど、裏側の仕組みが全然わかっていない
- 1年以上エンジニアをやっている割に、Webサービスの全体像に対する解像度が今ひとつ高くない
- シンプルに技術の歴史や変遷に興味・好奇心がある
上記に当てはまる方にとっては価格以上の価値をもたらしてくれると思います。
リフローレイアウトにも対応しているため、Kindle版でも非常に読みやすいです。
紙媒体・電子書籍どちらでも自分に合った方をどうぞ。
- 紙媒体: [改訂新版]プロになるためのWeb技術入門
- 電子書籍: [改訂新版]プロになるためのWeb技術入門
コメント