駆け出しエンジニアだった頃、原因不明のバグに沼っていた時のことです。ログを漁り、あらゆる仮説を試しても、まったく解決の糸口が見えない。すっかりお手上げになり、シニアエンジニアの先輩に助けを求めました。
先輩は私の画面を見もせず、ただ一言こう言ったのです。
「今日はもうPCを閉じて帰りなよ。一晩寝たら、案外あっさり解決策を思いつくから」
ただの慰めだと思いました。その夜、敗北感を抱えたまま帰宅し、ベッドで寝返りを打ちながら明け方近くまで眠れませんでした。ところが、ウトウトした夢の中で、ふとあるアプローチを思いついたのです。翌朝、出社して試してみると、見事にバグは直りました。
似たような経験を持つ人は多いはずです。バグ調査であれ、アーキテクチャ設計であれ、シャワーを浴びている時に突然閃く。あるいは、人間関係のモヤモヤで眠れなかったのに、ランニング中にふと心が軽くなる。
どうやら人間の脳は、バックグラウンド処理で情報を消化しているらしいのです。
日中にインプットされた情報は、私たちが別のタスクをしている間に脳内でゆっくりと発酵し、時に思いがけないブレイクスルーを生み出してくれます。
しかし、もしあなたが自分自身で試行錯誤するのをやめ、すべての課題をAIに丸投げしているだけだとしたら、どうなるでしょうか?
AIの便利さと思考の錆びつき
AIはあまりにも優秀すぎます。一時期、私のワークフローは完全に以下のループに陥っていました。
-
課題にぶつかる
-
AIを開いてプロンプトを投げる
-
出てきたコードをコピペする
-
次のタスクへ
解決できない問題はほとんどなくなり、もしあっても自分で考えることすら面倒になりました。AIに聞けばワンポチで済むからです。
生産性は数倍に跳ね上がりました。しかし同時に、ある深刻な問題に気づき始めました。私の脳が明らかに錆びつき始めているのです。
推敲、ドキュメント化、振り返り。これらは一見すると泥臭い作業ですが、一つの重要な役割があります。それは未解決の問いを脳のメモリに残しておくことです。あらゆる難題がAIによって瞬時に解決され、即クリアすることに慣れきった脳は、次第に深く考えることを放棄し始めます。
Ibrahim Diallo氏の「思考が思考を改善する」という言葉があります。思い返せば、自分が最も成長を実感できた時期は、毎日未解決のバグを頭の片隅に抱えたまま眠りについていた頃でした。
AIの最大の弊害は、答えを出すスピードが速すぎることかもしれません。脳がじっくりと思考を巡らせる間もなく、課題そのものが消え去ってしまうのです。
壁にぶつかる経験を奪われるリスク
最近、Anthropic社がある興味深い実験を支援しました。開発者に新しいツールを学ばせる際、半数にはAIサポートを与え、もう半数には手作業のみで取り組ませたのです。
結果は驚くべきものでした。AIを使ったグループの方が知識テストのスコアが低く、特にデバッグの課題で致命的な差が出たのです。ゼロイチで作ることはできても、バグった途端に自力では直せないという状態です。
しかし、同論文にはもう一つのグループが存在します。「自ら手を動かし、概念的な質問にのみAIを活用した」グループです。彼らのスコアはほとんど低下しませんでした。
この差を分けたのは、自分の手を動かして泥臭く試行錯誤したかどうかに尽きます。
壁にぶつかる経験こそ、エンジニアが成長するための最高の材料です。自分のコードが動かない、設計がリジェクトされる。こうした居心地の悪さを感じる瞬間は、筋トレでいう筋繊維の破壊と同じで、成長のチャンスなのです。
課題をAIに投げれば、一瞬でそれっぽい正解は返ってきます。しかし、そこには自分の思考プロセスも、理想と現実のギャップに悩む挫折感もありません。だからこそ、脳には何も定着しないのです。
AIがもたらす認知コストの罠
先日、Steve Yegge氏の記事を読みました。彼は「AIの自動化は単純作業を奪い、最も困難な判断だけを残した」と述べています。彼でさえ、AIエージェントと効率よく働けるのは1日4時間が限界で、それ以上は脳がパンクするというのです。
これには私も激しく同意します。理由はシンプルで、ゼロから作るコストと、AIの出した答えを検証するコストが見合っていないからです。
自力でシステムを設計する時、私の頭の中には完全なコンテキストがあります。ターゲットは誰か、コア要件は何か。すべての意思決定は自分の思考の延長線上にあり、システムの隅々まで把握しています。
ところがAIは、数秒でコードの全貌を吐き出し「これでどうですか?」と迫ってきます。品質は高いかもしれませんが、私はその背景の文脈作りに参加していません。
「なぜこのライブラリを選んだのか?」「現在のシステムの制約を満たしているか?」
他人が書いたコードの意図を推測し、正しさを検証する作業は、ゼロから自分で書くよりもはるかに頭を使います。
手を動かす時間は減ったのに、順番が逆になってしまったのです。結果が先にポンと出され、後から原因や意図を探る作業。これを長く続けていると、他人のアイデアをレビューするばかりで、自分の中からオリジナルの発想が生まれてこなくなります。
この負のループを断ち切るため、私は自分に一つのルールを課しました。
AIを使う前に、まず自分の頭で要件とアプローチを言語化することです。
私の実践:AIを脳のトレーナーにする4ステップ
これまでの経験を振り返ると、最も重要な学びは「AIの出力を、自分で一行ずつレビューする」ことでした。優秀な新人エンジニアのコードをレビューするのと同じです。
たとえ修正の差分が少なくても構いません。ここの優先順位を少し下げよう、この機能は削ろう、といった微調整で十分です。
AIの出力を修正するたびに、私はプロダクトを作っているだけでなく、AIを使って自分自身の判断力を鍛えていることに気づきました。このアプローチは違うと指摘するたびに、脳は強制的にジャッジを下しています。これを繰り返すことで、ようやく良い設計とは何かという直感が養われます。
全部LGTM(これでよし)と適当に承認していたら、自分の脳は何も学習できません。
すべてをAIに任せる = 修正ゼロ = 学びもゼロ なのです。
この状況を打破するために、私は今、次の4つのステップを実践しています。
-
まず自分の頭で考える:
AIを開く前に、自力で方針を考えます。雑な箇条書きのメモで十分です。
-
AIに提案させる:
AIにプランを出させ、同時に「なぜそうしたのか」という理由を説明させます。
-
比較して、必ず自分で修正する:
自分の考えとAIの提案を見比べます。そして、一番重要なポイントを必ず1箇所、自分で修正します。
-
学びをメモする:
そこから得た気づきをドキュメントに残し、今後のためにストックします。
設計と修正のプロセスに深く関わることで、エンジニアとしての直感は確実に磨かれていきます。
おわりに
一つ、明確に分かったことがあります。
AIがくれるのは、その時点でもっともらしく見えるただ1つの正解に過ぎません。
しかし、自分自身の頭でウンウンと唸りながら導き出すプロセスで手に入るのは、新しい問題にも応用できる本物の解決能力です。
AIのスピードは圧倒的なので、出てきたコードはガンガン使えばいいと思います。しかし、正解を導き出すための推論能力だけは、絶対に手放してはいけません。それが、AIの出力が本番環境で使い物になるかどうかを判断できる、最後の命綱だからです。
頭を使う作業をすべてAIにアウトソースしてしまえば、遠からず単なるAIのコピペbotになってしまいます。
次に壁にぶつかった時、すぐにChatGPTを開く前に、自分ならどうアプローチするかと数分間だけ考える時間を作ってみてください。自分の仮説を持った上でAIと壁打ちすれば、そこには必ずエンジニアとしての質の高い学びがあるはずです。