本文へ
ハクソク

世界を動かす技術を、日本語で。

ファーストプリンシプル思考

元記事: 原文(sunilsadasivan.com)

概要

  • Sunil Pai の「the senior engineer death spiral」から得た洞察の共有
  • シニアエンジニア が陥りやすい「停滞感」とその突破法の考察
  • ファーストプリンシプル思考 の重要性と実践例の紹介
  • エージェント時代 への適応と新しい開発マインドセットの提案
  • AI時代 における人間の思考と成長の新たな流れの強調

シニアエンジニアの「停滞スパイラル」とMomentum

  • Sunil Pai の「the senior engineer death spiral」から得た気づき
  • シニアエンジニアが感じる「成長の壁」や「変化への適応困難」
  • 経験が逆に新しいアプローチを妨げるケース
  • Momentum(勢い) に注目し、成果より進行自体を重視する思考法
  • 作業を 最小単位 に分解し、小さな達成感から次の一歩を見出す実践

ファーストプリンシプル思考の力

  • 優れたシニアエンジニアに共通するのは ファーストプリンシプル思考
  • 「なぜ作るのか」「誰のためか」を常に問い直す習慣
  • コードベースと現実世界のつながりを意識した設計
  • シンプルさを追求し、 余計な複雑さ を排除する判断力
  • 最初に「一番シンプルなこと」を試す姿勢

エージェント時代への移行と適応

  • Agentic Development へのシフトとエンジニアの適応
  • 新しい「シミュレーションの切り替え」に直面する現状
  • 既存の知識や経験を「一旦箱にしまう」柔軟性
  • 古い制約を前提にせず、まずは「試してみる」実践
  • 問題の本質を捉え直し、より多くの選択肢を見つける思考法

経験を「箱にしまう」難しさとその意義

  • 過去の経験や信念が現状の問題解決を妨げるリスク
  • 「本当に何をしたいのか」「なぜそれが重要か」を再確認
  • 問題の全体像を捉え直すことで新たな解決策が見える
  • AIの進化や誇張に惑わされず、「今できること」にフォーカス
  • ファーストプリンシプル思考 でAIの活用法を再定義

新しいフロー状態と人間の思考

  • 目的を明確にし、小さな一歩を踏み出すことで Momentum を生む
  • エージェントとの協働で学習ループが加速し、成長が促進
  • 深い理解に基づく「新しいフロー状態」の実現
  • 人間の思考 の価値と進化を再評価
  • 「Long Live Human Thinking.」というメッセージで締めくくり

提供: ハクソク · 要約更新:

AIによる日本語要約です。内容は原文とあわせてご確認ください。

Hacker Newsの議論を読む

Hackerたちの意見

エージェントと一緒にアーキテクチャの決定をするのが本当に難しい。アイデアが全く浮かばないときは助かるけど、すでにいくつかの要素があると、結局はエージェントがすべての思考を主導しちゃうんだよね。そうなると、自分の経験に基づいた判断を委ねているだけのように感じる。仲間を見ていると、エージェントに頼らないともう考えられなくなっている人もいる。エージェントが全部やっちゃうなら、自分が考えたことの意味がなくなっちゃうからね。

└

自律エージェントはアーキテクチャの決定に関してはほんとに頼りないと思う。アーキテクチャは、スキルセットが他の何よりも重要な分野の一つだよね。

└

どれくらいの範囲を与えるべきかな?与える作業の塊を小さくすると、コントロールしやすい気がする。

└

なんでアーキテクチャにこだわるの?人間がコードを書いていた頃は問題だったけど、現在の要件と将来の拡張のバランスを取る必要があったからね。でも、エージェントは1日でコードベースの半分を書き直せるから、ほとんどの場合、アーキテクチャは重要じゃなくなるよ。

└

エージェントと一緒にアーキテクチャの決定をするのが本当に難しい。アイデアが全く浮かばないときは助かるけど、逆に、まず自分が何を作りたいかを知らずにエージェントに行くと、何をしているのか、なぜそうしているのか全く分からなくなっちゃう。だから、いつも行ったり来たりして、エージェントに計画をファイルに書かせて、自分のテキストエディタで見直すんだ。時々、自分が納得できない驚きが出てくることもあるけど、LLMが「すべての思考を主導しようとする」ってのは本当じゃないと思う。アーキテクチャを考えるときは、コードを書くのを控えるように指示するし、何を作ろうとしているかをエージェントに必ずしも伝えるわけじゃない。

└

これは実際にエージェントじゃなくてチャットボットでやってることなんだ。音声モードでもね。掃除や洗濯みたいな単純作業をしながら話しかけて、アーキテクチャの決定や選択肢について話し合って、計画の形になるまで進めるんだ。このアプローチの良いところは、「ざっと見る」や「コピペ」できないこと。理解できていれば自分で繰り返せるし、できなければ無理ってこと。/grill-meみたいなアプローチより時間はかかるけど、脳が引き裂かれそうになることはない唯一の方法だよ。

└

エージェントと一緒にアーキテクチャの決定をするのが本当に難しい。私は仕事に行くときも帰るときも、ChatGPT VoiceとAirPodsを使ってる。ソクラテス的にしてほしいって頼んで、頭に浮かんだことをダラダラ話し始めるんだ。20分のやり取りの後には、だいたい自分から答えを引き出せたり、エージェントから答えを引き出せたりしてるよ。

└

時々、アーキテクチャを(実際に動くコードで)構築してから、エージェントに実装を任せる方が楽なことがあるんだ。それで、エージェントにアーキテクチャを文書化させて、コーディングの際にはその文書を参照させるようにしてる。エージェントのコードをレビューする時は、アーキテクチャだけに集中するよ(既存のアーキテクチャに従ってる?新しい構造や依存関係を導入してない?)。他の時は、エージェントに明確なインターフェース契約を持つブラックボックスを作らせることもある。ブラックボックスの内部のアーキテクチャには興味がないんだ。

└

エージェントを使ってアーキテクチャを設計するのは本当に良い経験だったよ。人間よりずっと優れてるし、正直言って、同僚たちが新しいサービスを設計するのにエージェントを使っていたら、もっと良い結果になってたと思う。

└

この部分の仕事は結構楽しいと思うんだ。大きな機能を持つエンジニアと一緒にやる時の、もっと早くて生産的なバージョンみたいな感じ。心配なことをちょっとほのめかしたり、キーワードを言うだけで、エージェント(Fable/Astra)がすぐに理解してくれるんだ。「これ、ステートレスにできない?」とか「シャーディングする計画はある?」ってね。ほとんどいつもエージェントの初期デザインから方向転換するけど、エージェントは理由や利点をすぐに理解して、すぐに調整できる。もし自分でコードを書いてたら、理想のアーキテクチャと実装に必要な労力の間で妥協しなきゃいけなかったけど、今は理想のアーキテクチャを常に持てるんだ。

└

最後の「これがあなたがすべきこと」っていうまとめは、ただの邪魔な考えだと思っておけばいいよ。

言葉が多いけど、意味があまりないね。この投稿は何についてなの?

Hacker Newsで議論の続きを見る