- AIツールはジュニア開発者に浅い能力しか与えておらず、コードを素早く出力しても、なぜそのアプローチを選んだのか説明できない状況が頻発している
- シニア開発者の本当の価値はコードを書く速さではなく、長年の失敗を通じて蓄積した失敗パターンの認識にある
- AIを使うとしても、エラーを自分で分析し、コードを追跡し、仮説を立てる意図的な苦闘の過程が不可欠である
- コミットするすべてのコードについて、なぜそのライブラリを選んだのか、どのパターンを採用したのか、トレードオフを自分で説明できなければならず、できないなら本番投入の準備ができていない
- AIを単なる回答生成器ではなくチューターとして活用し、複数のアプローチの長所と短所を学ぶ方向へ切り替えるべきである
問題の本質: AIが生み出す浅い能力
- LLMの活用によって機能の迅速な実装とデプロイが可能になった一方で、なぜそのコードを選んだのか説明できない状況が起きている
- コードレビューでアプローチを問われても答えられない**浅い能力(shallow competence)**という現象が広がっている
- AIが提示したコードをそのまま受け入れるパターンが繰り返されている
- 表面的には生産性が高く見えても、設計意図やトレードオフへの理解が不足している状態である
- こうした問題は、時間がたつにつれて信頼の低下につながる可能性がある
シニア開発者に価値がある理由
- 経験豊富な開発者の単価が高いのは、コードを速く書けるからではなく、何をしてはいけないかを長い時間をかけて身につけているからである
- 誤ったアーキテクチャ判断をしてその結果と向き合った経験、深夜2時に障害対応の呼び出しを受けた経験などから生まれる失敗パターンの認識こそ、企業が実際に対価を払っているものだ
- 現在、多くのジュニア開発者がAI活用の過程でこのプロセスを飛ばしてしまっている
5つの戦略
-
1. 基礎をしっかり学ぶこと
- 良いコードとは何かを知っていなければ、AIが出した結果を評価できず、AIの出力を盲目的に受け入れることになる
- 推薦図書: Head First Design Patterns(コーディングパターンとその選択理由を理解する)と Designing Data-Intensive Applications(データ集約型システム設計の原理)
-
2. 障害事例を学ぶこと
- Cloudflare、AWS、Azure、Googleなどの大規模サービスで障害が起きた際に公開される**詳細なポストモーテム(post-mortem)**文書を読むことを勧める
- 原因、根本原因分析、修正方法、再発防止策などが含まれている
- Amazonには**COE(Correction of Errors)**があり、Facebookなどほとんどの大手技術企業にも同様の社内文書が存在する
- 複雑なシステムがどのように崩壊したかを理解することは、文書を読むだけよりもはるかに強く記憶に残る
-
3. 苦闘を意図的に作ること
- AI以前は、問題を自力で解く過程は選択肢ではなく当たり前だったが、今では24時間使える脱出口が存在する
- エラーをAIに貼り付ける前に、まずスタックトレースを読み、コードを追跡し、ログを確認し、何が間違っているのか仮説を立ててみること
- この過程こそが本物のデバッグ感覚を築く方法である
- AIはその後に使ってもよい
- オンコールに参加し、誰も拾わないチケットを引き受けることが、システムの動作原理を学ぶ最も効果的な方法である
-
4. 理解していないコードを絶対にリリースしないこと
- コードレビューで、なぜそのアプローチを選んだのかと聞かれて「AIが提案したから」と答えれば、即座に信頼を失う
- 問題なのはAIを使ったことではなく、自分が提出するコードを理解しようと努力しなかったことだ
- コミットするすべての行について、なぜこのライブラリなのか、なぜこのパターンなのか、トレードオフは何かを説明できなければならない
- 多少速度が落ちても理解が先行すべきであり、単なるコピー&ペースト要員だという評判は回復が非常に難しい
-
5. 答えではなく「なぜ」をプロンプトすること
- AIに問題解決だけを求めるのではなく、複数のアプローチとそれぞれの長所・短所の説明を求めるべきである
- そうすると2つの効果がある:
- トレードオフについて実際に学べる
- AIが推論の過程を経ることで、推薦自体が変わる場合もあり、より良い答えを得られることがある
スピード圧力への現実的な助言: 生産性と学習のバランス
- 速度を落とすと取り残されるのではないかという不安は現実的だが、仕事を完全に止める必要はない
- 余裕のある時間、サイドプロジェクト、競争の少ないチケットなどで、意図的で不快な学習に取り組むこと
- 本当のスキルを積み上げる時間と、単に出力する時間を意識的に区別しなければならない
AIをチューターとして活用すること
- 以前の世代の開発者にはなかった、何でも望む深さで説明してくれるAIチューターを今の私たちは持っている
- AIに仕事をさせるだけでなく、説明を求め、教えさせる形で活用すべきである
- 開発者の価値はコードを出力する能力ではなく、どんなコードを見ても良いコードかどうか判断できる能力にある
- AIが生成したコードかどうかに関係なく、良し悪しを見分ける能力が中核的な能力
- 意図的な学習と失敗経験の蓄積だけが、長期的な競争力を形作る
20件のコメント
AIが出力したテキストですら読んでいれば、こんなことにはならない。
問題なのは単なるジュニアではなく、コピペしてクリックするだけのジュニア。
実際、AI以前からいましたよね。
Stack OverflowがAIになっただけです。
AIが実際に開発者をいつ置き換えるのか、そもそも本当に可能なのかもまだ分からないのに、無条件に持ち上げる必要はないと思います。実際、redditでも何かを作ってユーザーが入ってきているのに、自分のサービスの何が危険なのかも分からず助けを求める投稿がかなりあります。
昔は手工業で物を作るときには徒弟制度で育成していたのが、産業革命後には単純労働に変わったように、
今や人々はコンベヤーベルトを流れる部品のように、4ラインから吐き出されるコードをひたすら眺めるだけになっているんですよね。
部品の検品しかしない人に『これはなぜこう設計したの?』と聞いても、たとえ10年働いていても『機械がそうしていたんです』以外に答えようがないでしょう
???: "何をしてはいけないかを慎重に考えて"
wwwww これ本当だ www
www
wwwwww
結局、AIの推論能力と記憶能力が上がれば、こうした議論はすべて無意味になるでしょう。どうせシニアも必要なくなるはずです。
結局のところ、使う人がどう考え、どう活用するかが重要なのだと思います。
何も考えずに任せるだけの環境が生まれて、知らず知らずのうちに振り回される危険性も高まりましたが、うまく活用すれば従来よりはるかに速く、正確に学習や開発ができるようですね。
ただ、学び始めたばかりの人たちに案内しやすい、これまでの学習・経験のやり方とは異なる何か新しい学習のベストプラクティスや方法論が、早く整理されるといいですね。
シニアがこれまで経験してきたことを、ジュニアはもっと速いスピードで学習していくのではないでしょうか?
どうせ著者の言う単純にコピペするだけのジュニア開発者は、Stack Overflow時代でも役に立ちませんでした。
要するにAI時代になって、Stack Overflowのコードをコピペしていた習慣が
AIの回答に移っただけです。
どうせ昔から勉強していたジュニア開発者なら、
AI時代にはさらに速いスピードでシニア級の開発者へ成長するでしょう。
もはやローレベルを見る必要もなく、AIで学習も速く「できるとしたら」、4年制を出た韓国人のジュニア開発者を高く雇う人が誰いるでしょうか?
万能の魔法の水みたいなAIエージェントで採用して、AIでオンボーディングして、AIで翻訳しながら、あそこのインドのラウル・シンさん(24、IIT修士)やジャン・ウェイさん(26、清華大学首席)をもっと安く雇うのでしょう。
特に男性の方々は、社会進出の時に兵役で+2歳になることを考えると、今のジュニアの方々がとても心配です.
AIを主に使うようになると、失敗を経験する機会がないため、エンジニアリングの教訓を得られなくなるでしょう。本や文章で表現されていないものは、AIでもカバーできません。
AIも失敗するので、結局は「AIと一緒に失敗し、一緒に乗り越える」人になるのではないでしょうか。
回答してくれた内容によると、失敗をAIがしたら、その克服は誰がするのでしょうか? 大卒の新卒ジュニアですか?
丁寧で穏やかなコメントを残します。
そうですね。一緒に検索して、一緒に解決していくものですよね。そういうふうに試してみてもいないのに、あまりにも強くそれを正解だと決めつけようとしているのではないかと思います。私もできるだけ丁寧で穏やかにコメントを残してみますね〜^^
結局、10年後には10年目のジュニア(AI搭載)になるということです。
AIモデルの進歩の速さを見ると、今のジュニア開発者がシニアになる頃には
シニアさえも代替されていそうですね。
つまり、シニアになるはずのジュニアをAIが代替するということですね。AI万歳、万歳、大万歳
これが正解です
Hacker Newsでの意見
今後はAIなしで学ぶ期間が必須になると思う
どんな技能の習得でも、核になるのは「自分の手でやってみる反復練習」だ
学習段階は「AIなしで直感を形成 → AIを段階的に活用して限界を理解 → AIネイティブな専門家」へと発展していくはずだと思う
ただ、これを大規模にどう実装するかはまだ決まっていない
皮肉なことに、AIは個別最適化されたチューターとして有用である一方、実習を避けたくなる誘惑にもなる
現在の試験中心の教育システムは、むしろAI依存を強めている
だから私は徒弟制度が再び復活すると予測しており、Microsoftのpreceptorship提案をその兆候だと見ている
大企業が問題を認識し、解決策を提示した点は心強い
そうしたツールは自分がどこで間違えたかを理解する助けにはなったが、結局のところ核心は手を動かす練習だった
だが今のAI利用は、単に理論を学ぶことではなく、まるで奴隷に仕事をさせることに近い
歴史的に見ても、そのやり方は熟達を生まなかった
すでに大勢の人がソーシャルメディア依存を制御できていない
Rich HickeyのSimple Made Easyの講演は、自分のキャリアに大きな影響を与えた
AIには「センス」がなく、コード量を増やす方向に働く
本当のエンジニアリングとは、少ないコードで最も影響力の大きい機能を作る芸術だ
以前からジュニア開発者は、生産性より学習のために存在していた
シニアなら数時間で終えられる仕事を、あえて1週間の課題として渡していたのはそのためだ
今は企業がその「訓練コスト」を回避しようとしている
みなが短期的な利益だけを見て長期的な崩壊を招いている
ジュニアがいなければシニアもいなくなり、最終的には業界そのものが崩れるだろう
コスト削減や昇進構造のバランスのためにもジュニアは必要だ
ただ、AIの登場で今や中堅開発者まで置き換えられる可能性がある
短期目標を達成する立場から見れば、「ジュニアはマイナス生産性」だ
遅い理由は実力ではなく、非効率な組織プロセスにある
私は学生たちにいつもこう言っている — 「ジュニアは自分でコードを書かなければならない」
htmxの記事にもあるように、シニアはジュニアがコードを書けるようにすべきだ
シニアはジュニアから育つのだから
「シニアが必要ならシニアを採ればいい」という形に変わってしまった
これはCOBOL世代の繰り返しになるかもしれない
シニアとジュニアの格差は広がり、手を動かしてぶつかりながら学んだ経験が失われつつある
私のような30年選手の開発者は、今かなり高い契約単価を得ている
もしコーディングが芸術なら、結局は芸術家のように生存競争をしなければならないのかもしれない
どこもジュニア育成をやめれば、最終的にはシニア供給の崩壊につながる
だが短期利益のためにルールを破ろうとする誘因が大きい
実際のところ、多くのシニア開発者もそれほど優秀ではない
プロジェクトの品質は、ある時点を過ぎると常に低下する
大半はただ肩書きがシニアなだけで、私自身も名前だけシニアで実際は中堅レベルだった
マネージャー、リクルーター、開発者の全員が「働いているふり」をしており、実際の価値は少数の本当に実力のある人たちから生まれている
私が恐れているシナリオは、私たちがプロンプト管理者に成り下がることだ
コードベースをまともに理解しないまま、AIが直したコードだけを信じる未来だ
それでも深い問題解決の快感は残っている
ただ、ReactやNextJSのようなスタックを自分で使わなくて済むのはうれしい
AI以前にしっかりした基礎を身につけた人たちは、今本当に運がいい
これは単なる「left-pad文化」の次の段階にすぎない
その方がAIもよりうまく機能し、人間のドメイン知識も生きる
私も同じ不安を感じている
レビューもほとんどなく、長期的なアーキテクチャ考慮が失われている
品質低下を社会全体が受け入れつつあるように見える
最近はシニアよりジュニアの方が役に立つと感じる
シニアに質問しても「AIがこう答えた」と言うだけだ
一方でジュニアには学ぼうとする熱意があり、スタッフ級は今でも素晴らしいメンターだ
その一方で、一部の中堅はAIなしでは何もできない
問題を理解しておらず、AIが代わりに解決してくれるせいで、むしろ自分の無能さに鈍感になっている
LLMの乱用は認知の衰えを引き起こすだろう
私はLLMに汚染されていない人だけを採用したい
この記事自体がLLMが書いたもののように感じられる
「It’s not X, but Y」みたいな文体があまりにも典型的だ
今やウェブ上のコンテンツの大半がAI生成物なのだろうと思うと憂うつになる
結局私たちは、本物と偽物の区別が消えた世界へ向かっている
だからむしろ溶接でも学びに行こうかと思っている
この記事も同じスタイルだ
問題の根源はシニア側にある
ジュニアには役に立たない雑用しか与えず、新しいツールを活用する機会を与えていない
これからは「メールテンプレートの修正」ではなく、「社内プロセスを自動化するサービスを作る」といった課題を与えるべきだ
ジュニアは自分が何を知らないのかすら分からない状態で学びにくく、シニアも教えにくい
私はAIのおかげでHTMLも知らないジュニアを採用できた
昔なら不可能だったが、今では少しの粘り強ささえあれば参入できる
結局、簡単な道を選べば、それ相応の結果を得ることになる
どうやってそんなジュニアが採用されたのか気になる
簡単な道ばかり選んでいると、人生の深みが失われる
私もそういう講座は受けたことがない
結局、AIは創造性の源泉を枯渇させる危険がある
人間が新しいアイデアを出さなければ、AIは自己複製するだけになる
こうした循環は技術的な停滞と従属を生むだろう
教師なし学習がこうした限界を克服する可能性はある
良い開発者がいなくなれば、悪いAIでさえ有用になる