読後レビュー|『プリンシプルオブプログラミング』3 年目までに読むこと
こんにちは、最近の趣味は技術書を読むことの Nash です。
この記事は「『プリンシプル オブ プログラミング』の書評・レビュー記事」になります。
では、見ていきます。
この本はどんな本?
800 冊以上の技術書を整理して、プリンシパルをまとめた辞書のような本です。 「プリンシパル」とはプログラミングの指針となる下記のことを指しています。
- 前提 / 原則 / 思想 / 習慣 / 視点 / 手法 / 法則
つまり、エンジニアリングにおける様々な知識を網羅的に理解できる本です。
この本の目次
プロローグ 本書の読み方
第1章 前提 ~プログラミングの変わらぬ真実~
第2章 原則 ~プログラミングのガイドライン~
第3章 思想 ~プログラミングのイデオロギー~
第4章 視点 ~プログラマの観る角度~
第5章 習慣 ~プログラマのルーティーン~
第6章 手法 ~プログラマの道具箱~
第7章 法則 ~プログラミングのアンチパターン~
-- https://www.shuwasystem.co.jp/book/9784798046143.html
この本から得られること
- エンジニアとして必ず知っておくべきプリンシパルを効率的・網羅的に知ることができます。
- 陳腐化しにくい普遍的な知識を学べます。
- 知識集のためエンジニアの知的好奇心がものすごく満たされます。
この本は誰が書いたの?
この本は、ソフトウェアエンジニアとして活動している上田勲さんによって 2016 年に出版された技術書になります。
この本を書いた背景などを自身のブログ(魚拓)で見てみたところ
なんだかんだ 800 冊以上の技術書を読んでおり、頭に入れておきたい情報をブログにまとめています。 その中で、プリンシプル的なものを収集していたのがきっかけで、本書の執筆に至りました。 https://gyo.tc/17YII
とのことでした。
実際、この本で書かれているプリンシパルの参考文献として幅広い技術書が挙げられている記憶があります。
この本はだれが読むべき?
本当にすべてのエンジニアにおすすめできるクオリティの本です。
ですが、あえて言うなら1〜3年目のエンジニアは必読です。 特に、この本に書かれている内容は理解・実践できるレベルになっているべきかと思います。 サブタイトルにも『3 年目までに身につけたい』と書かれているくらいですしね。
なぜ3年目までに読むべきなのか?
「早いうちに読むほうが良い」という理由は効率的なインプットのためです。
「英単語を記憶する」という観点と同じなのですが、なにごとも1回目のインプットはできる限り早めにしておくべきです。 エンジニアとして1〜3年目をまともな現場で活動していれば、この本に出てくるトピックはかなりの頻度で話題に出てきます。 その時点で「初めて聞いた用語・概念だな、、、」ではなくて、「あぁ、この本で1回見たな」という状態を作っておくべきです。
つまり、1回目は知識としてこの本でインプットしておけば、2回目以降のインプットは経験を通して更に深くまで理解・実践できるからです。
ということで、この本を読むのが早ければ早いだけメリットがあるので1年目の時点で読むべきだと思います。
だれが読んだの
自分がこの本を読んだ当初はそれこそプログラマーとして仕事をはじめて一年目のころに読みました。
数年経験を得てフリーランスになってからも、忘れた頃にはこの本を読み直すようにしています。
実際、時間をあけていくらかの経験を得てから読み直すたびに新しい気付きを得られるので本当に学びの深い本です。
書評
では、自分が読んだ結果の評論を書いていきます。
エンジニアの必須知識・概念・用語がまとまってる
なんといっても感動したポイントは、網羅的に技術的な概念・用語がまとまっている点です。
今までは、これらプリンシパルを網羅する技術書がありませんでした。 その結果、いくつもの技術書を読んで、それぞれの技術書から概念・用語をピックアップして1つずつ理解しないといけなかったわけです。
ですが、この本1つで網羅的に概念・用語がまとまっているし、1つのトピックは1〜3ページくらいの簡潔でわかりやすい説明にまとめられています。
最高クオリティのエンジニア辞書
この本の特性上、用語の意味や成り立ちなどに速攻でアクセスできます。
そのため、ふと用語をドわすれしても目次から素早く情報にたどり着ける上に情報は正確かつ簡潔にわかりやすくまとまっています。
現代的な考えだと「でも、Google で検索すれば良くない?」と思うかもしれません。ただネット記事の情報はかなり玉石混交です。
用語の正確性として厳格な校正が行われているこの本はすべての面でかなりクオリティが高いため、あやふやなネット記事に依存するよりも個人的には遥かにこの本をおすすめします。
「なに」をだけでなく「なぜ」まで説明
各用語の意味の説明だけにはとどまらず、「なぜ」「どのように」などの Why や How などまで踏み込んでわかりやすく書かれています。 そのため、ただの用語集ではなくて効率的に「理解」を腹落ちさせる手助けをしてくれる技術書です。
抽象度が高すぎるときもある
説明している内容にもよるのですが下記のように感じるトピックもいくつかありました。
- 説明が抽象的すぎる
- 説明が哲学的すぎる
- 説明が難解すぎる
読んでいて「ふむふむなるほど。わからん。」という状態になるやつですね。。。
個人的には「もう少し具体例が書かれていると嬉しいかも」と思う内容もあります。ただ、そうなると抽象度が減ってしまうので、読み手の解釈の余地がなくなってしまうのかなー、という欠点もあるのでバランスが難しいところですね。
そういうトピックについては、スキップしたり時間を置いて読みなおすのが正解だと思っています。実際、自分も数年後に読みなおしたらさらに理解が深まったので。
エンジニアの知的好奇心がめちゃくちゃ刺激される
自分はわりかし、技術・エンジニアリングが大好き系のタイプなので、知的好奇心が刺激するような読み物は大好物です。
その点、プリンシパルオブプログラミングは知識を超凝縮した本なので楽しくて一瞬で読み終えた記憶があります。
技術書の中にはいろいろな理由で読むのがシンドイものもありますが、その点でこの本は技術書というよりもただの読み物としても楽しく読める本でした。
ほかの本と比較
この本は他の技術本と比べるとかなり毛色の違う本です。何度も説明してますが、この本はプリンシパルを網羅的に説明している本です。
この本と類似する本は少なくとも 2021 年時点では存在せず、かつこの本のクオリティもかなり高い状態です。
そのため、知識を網羅的に知りたい場合は一択でこの本を選んで問題ありません。
おわりに
この本は自分も1年目から読み始めて今でもなんども読み直す本です。 年次が変わって読み直すたびに、自分の理解がより深くなっていくことを実感させられる良い本だと思います。
おすすめの読者
すべてのエンジニアが3年目までに読むべきです。
この本から得られること
- エンジニアとして必ず知っておくべきプリンシパルを効率的・網羅的に知ることができます。
- 陳腐化しにくい普遍的な知識を学べます。
- 知識集のためエンジニアの知的好奇心がものすごく満たされます。