技術 ブログ

読書メモ:達人プログラマー(第2版): 熟達に向けたあなたの旅


こちらも『クリーンコード』と同様に名著として知られていますが、意訳によるためか、意識が高すぎるタイトルから少し気恥ずかしく、これまで手に取るのを避けていました。
内容は、経験豊かな著者がシステム開発においてプログラマに求められる幅広いテーマ(マインド・開発手法・プロジェクト管理)についてのチップスを、350ページ程度にコンパクトにまとめた本という印象でした。

そのため、各トピックについてある程度の知識がないと著者のアドバイスを理解しづらかったり、ピンとこない部分もありますが、逆に自分が経験した出来事や技術に関しては「なるほど、こうすればよかったのか」と解決策を得られる感覚がありました。


第1章 達人の哲学

「石のスープ」と「ゆでガエル」の比喩はとても印象に残りました。プロジェクトの巻き込み方や、気づかないうちに取り返しのつかない状態に陥ってしまうことは、多くの人が体験するのではないでしょうか。
また「あなたの知識ポートフォリオ」についても考えさせられました。私は技術の陳腐化が激しいインフラ系エンジニアの経験が長いのですが、どのような知識を持ち続けるべきか悩む人は多いと思います。かつてはベンダー資格の取得に明け暮れていましたが、それを永遠に続けることがエンジニアの幸福かどうか、改めて深く考えさせられました。誰もが自問自答すべきテーマだと思います。

第2章 達人のアプローチ

有名なDRY原則や曳光弾の話など、プログラムや開発プロセスに役立つチップスが多くありました。
またDSLについても触れられており、オープンソースのテストツールが独自言語や、Ansible での YAML のようにドメインに特化した表現を利用する例が紹介されています。使いどころや開発方法がコンパクトに整理されており、練習問題を通じて理解を深められる構成になっているのが非常に良かったです。

第3章 基本的なツール

シェルを使った効率化や、今では当たり前となったバージョン管理ツール、TDDについて触れられていました。特に印象的だったのは、トラブルシュートにおける二分探索法のアプローチです。プログラムで問題が発生しているデータや箇所を効率的に特定するのに非常に有用だと思いました。

第4章 妄想の達人

アサーションの使いどころや、リソース読み書きにおけるアンチパターンなどが紹介され、サンプルプログラムも多く掲載されており、とても勉強になりました。

第5章 柳に雪折れ無し

高度なプログラミングのチップスが多く含まれていました。有限状態機械(FSM)の活用、Pub/Subプロトコル、パイプライン、そしてオブジェクト指向が保守性を損なう場合の比喩「インヘリタンス(相続)税」など、どれもマスターすれば非常に有用な内容だと感じました。

第6章 並行性

並列・並行プログラミングに関するチップスを学ぶことができます。ただし内容が非常に奥深いにもかかわらずコンパクトにまとめられているため、理解のためには別途補助的な学習が必要だと感じました。この分野は他の専門書で深く学ぶ必要がありそうです。

第7章 コーディング段階



高度な内容が多く含まれており、特に O 記法についてはわかりやすく整理されていて、処理負荷を数学的に理解する助けになりました。
リファクタリングについては別途専門書が必要そうですが、プロパティベーステストの説明は特に学びになりました。ユニットテストとの住み分けや、プロパティベーステストで見つけたバグをユニットテストに組み込むという流れがとても参考になりました。

第8章 プロジェクトを始める前に


ここではプロジェクトマネジメントが主題となり、アジャイル開発における要求のまとめ方、ユーザーとの関わり方、信頼構築のポイントが紹介されています。

第9章 達人のプロジェクト


最終章では、チームをどうまとめ、これまでのチップスを活用してユーザー満足度を高めながらプロジェクトを進め、発展させていくかが語られており、全体の良いまとめになっていました。


総じて、技術書として大いに参考になると同時に、面白いアナロジーも豊富で読み物としても楽しく、一気に読み終えてしまいました。書籍のサイズ感も持ち運びやすく便利です。
経験を積んだ後に読み返すのも良いですし、経験が少ない段階でも気になった内容をメモし、他の書籍で補いながら学ぶことでさらに理解が深まると感じました。


コメント投稿フォーム

メールアドレスが公開されることはありません。 が付いている欄は必須項目です