知識を蓄えるための読書はやめよう。問題を解決するための読書を始めよう。

ほとんどのエンジニアリングの読書リストは、知識を集めることに焦点を当てています。しかし、現代のエンジニアリングにおいて評価されるのは、ボトルネックを解消することです。

最近、あるジュニアエンジニアが「エンジニアのための必読書トップ10」というリストを見せてくれました。それは10年前のリストと何も変わらないものでした。それは、古くからある同じ前提に基づいています。

その前提とは、「十分な数の本を読めば、より優れたエンジニアになれる」というものです。しかし、高いパフォーマンスを発揮するチームは、そのような方法では学びません。

最良のエンジニアは、制約(constraints)に基づいて学習計画を立てます。

標準的な読書リストは、すべての知識に価値があると考えています。しかし現実には、エンジニアリングにおける価値はコンテキスト(文脈)に依存します。

• データベースの問題に直面しているバックエンドエンジニアに、アジャイルに関する本は必要ありません。 • AIの推論コストがかかりすぎているチームに、一般的なクラフトマンシップの本は必要ありません。 • レイテンシの問題に直面しているスタートアップに、リーダーシップのフレームワークは必要ありません。

彼らに必要なのは、目の前にある特定のボトルネックに対する解決策です。読書リストは「網羅性」を最適化しますが、エンジニアリングにおいて報われるのは「関連性」です。

データベースやネットワークといった基礎は、今でも重要です。しかし、それだけではもはや不十分です。

現代のシステムは、新たな制約をもたらします。AIの推論コストはその代表的な例です。従来のリストでは、こうした問題が扱われることはほとんどありません。

課題は、単に正しいソフトウェアを書くことだけではなくなりました。課題は、確率的なコンポーネント(probabilistic components)の上に、いかに信頼性の高いシステムを構築するかです。

かつて、エンジニアは決定論的な(deterministic)システムを扱っていました。同じ入力に対しては、常に同じ出力が得られました。

今日、システムの挙動は異なります。プロンプトによって回答が変わり、エージェントは異なる経路を辿ります。モデルをアップグレードしただけで、コードを変更していないにもかかわらず挙動が変わることもあります。

新たな問いは次の通りです: • 品質をどのように評価するか? • こうした変化をどのように管理するか?

これらはエッジケースではありません。日常的なエンジニアリングのタスクなのです。

有能なエンジニアは、本を最初から最後まで読み通したりはしません。彼らはメカニズムを理解するために読みます。ボトルネックを見つけ、そのメカニズムを特定し、必要なことだけを学びます。

• レイテンシが高いなら、バッチ処理(batching)を学ぶ。 • コンテキストが問題なら、検索(retrieval)を学ぶ。 • エージェントが失敗するなら、評価(evaluation)を学ぶ。

これにより、学習が直接プロダクション(本番環境)へとつながります。知識はレバレッジとなります。

この学習ループを活用してください:

  1. ボトルネックを特定する。
  2. その問題に対する具体的なリソースを見つける。
  3. 解決策を適用する。

読書リストを終わらせようとするのはやめましょう。システムを改善しようとし始めましょう。

次の一冊を手に取る前に、問いかけてみてください。「自分のシステムにおける最大の制約は何か?」

レイテンシか、コストか、信頼性か、それともオブザーバビリティか?

そのボトルネックを打破するためのリソースを見つけなさい。エンジニアリングは読書量競争ではありません。制約を解決するための専門職なのです。

次に何を学ぶべきかは、システムが決定します。

出典: https://dev.to/neilton_rocha_dev/stop-reading-to-build-a-library-start-reading-to-solve-a-problem-55ag