- 初めてAIコードツールを使ったとき、その驚きと効率性に感嘆した
- 特にC++のコンパイルエラー分析に役立ち、まるで魔法のように感じられた
- GitHub CopilotやさまざまなLLMベースのエディタ統合ツールを使ううちに、開発ワークフローの一部になっていった
- しかし2024年末には、コードエディタからすべてのLLM統合機能を削除した
- 今でもAIを時々使うが、主要なワークフローには組み込んでいない
Tesla FSDとの似た体験
- 2019〜2021年のあいだTesla車に乗っており、FSDを頻繁に使っていた
- 高速道路でFSDを使ううちに、運転への集中力が徐々に低下していった
- FSDへの依存によって、自分で運転する能力が弱まった
- 再び普通の車を運転したとき、集中力を取り戻すのに時間がかかった
AIコードエディタの使用体験
- AIツールを使うほど作業速度は上がったが、基礎的な実力は弱くなった
- サイドプロジェクトではAIツールを使えず不便さを感じ、自信も落ちた
- 関数定義やテストコード作成などの基本的な作業で難しさを感じた
- AIに依存するうちに、実装上の判断を自分で下す自信がなくなった
- 結局、複雑な作業では自分の実力不足を実感するようになった
直感的感覚の喪失
- ドイツ語の「Fingerspitzengefühl」は、熟練者が持つ直感的な判断力を意味する
- コードを書くうえでも、言語やフレームワークに慣れるほど身についていく感覚だ
- ポインタの使い方、標準ライブラリの選択、assertの使用など、細かな技術的選択でこの感覚は重要になる
- AIツールはこの感覚を弱める
- コードの品質や保守性を考えると、人間の直感は非常に重要だ
AIツールがなくてもできる開発
- AIツールがなければ仕事ができなくなるという恐れは誇張されている
- 実際にはAIは大規模プロジェクトやレガシーシステムではそれほど有用ではない
- 社内ツール、フレームワーク、内部DSLを使うプロジェクトでは、LLMは役に立たない
- セキュリティ関連コード(JWT、RBACなど)をAIに任せてはいけない
- セキュリティは自分で理解し、責任を負うべき領域だ
- AIがコード作成からPRレビュー、デプロイまで担うなら、セキュリティ問題は急増するだろう
AI利用の基準点を設ける
- AIは有用だが、エディタに統合して使うやり方は避けている
- 自分でコンテキストを入力し、必要なコードだけを受け取って手動で適用する
- 例: テスト変換、SIMD計算変換、圧縮データのデコードなど
- このやり方ならコードへの責任感を持てて、コストも抑えられる
- 学習用途でAIを使うのは有益だ。アセンブリコード、シェーダー、ネットワークコードなどの説明を求めるときには特に役立つ
- 個人ブログではAI生成コンテンツを使わず、人間の創作物を好んでいる
好きなことを続ける
- 効率や生産性だけでなく、「好きなこと」を続けることも重要だ
- チェスのように、AIが勝てるようになっても人々が楽しみ続ける活動と同じく、プログラミングも楽しみとして続けられる
- 単により上手くやることではなく、自分が楽しめるからこそプログラミングを続けることが大切だ
新人開発者への助言
- AIに依存する「永遠のジュニア」になってはいけない
- 自分でコードを書く力を伸ばし、システムの原理を深く理解すること
- 裏側で動く仕組みを学びながら実力を積み上げることが重要だ
- AIはあくまでツールであり、それ自体が完全な解決策ではない
- ときにはAIなしで働く練習も必要だ
- 「バイブコーディング」だけでは実力ある開発者にはなれない
- AIなしでコーディングできないなら、それは本当のコーディングではない
結論
- AIはスピードのために知識を犠牲にする行為だ
- ときにはこのトレードオフに価値があるが、基礎訓練は必須だ
- 実力ある開発者は基礎を繰り返し練習する
- AIが職業を代替するにはまだ遠く、企業にはFOMOをあおって投資を呼び込もうとする意図が大きい
- AIはツールにすぎず、思考の代替物ではない
- 常に好奇心を保ち、学び続けることが重要だ
16件のコメント
コンピュータが発明されて以来、実力のある開発者の基礎力というものは変わっていないのではありませんか?
私もコーディングテストの準備をしながら、ただ習慣的に Cursor を使っていたら、タイピングより Tab を押すほうが多くて……(笑) そんなわけで、穏やかな気持ちでまた戻りました。
AIツールを作る人たちも、この問題はみんな分かっていると思う。ただ口にしないだけだ。
AIに無思考に依存してしまうと、アーキテクチャも分からずコードを1行も書けないのに、部下に仕事を振るだけでコードに内在するリスクも分からず、問題が起きても解決方法を見つけられない無能な管理者と、概念的にはまったく同じになってしまうのかもしれません。使う道具が人間の知能から人工知能に変わるだけで。
面倒な力仕事のようなコーディングには、これ以上ないほど役立つのに……
私もおおむね共感します。まだしばらくは、ああいう感覚が必要な領域があると思いますし、認識できていることとできていないことの差はかなり大きいと思います。ツールとして使うのはよいとしても、十分に認識したうえで使うべきだと思います。
AIコードエディタの使用経験、直感的な感覚の喪失、新人開発者に伝えたい助言――この3点にとても共感します。
コンピュータも使うなってことか、何のために…。
ははは、同感です。
ははははははははは
25年版のキム代理、ファンクションを使わないでくださ…でしょうか ハ
文面を見る限り、単純作業に使うなと言っているわけではなく、思考をAIに委ねるなという意味に見えます。
笑 +1です
だんだんと……意図的な訓練が必要な状況が増えてきますね…… :)
???: "puttyとviを使い続けてください"
Hacker Newsの意見
技術には2種類あると考えている: 独立した技術と基礎的な技術
今ではCursorのような編集レベルのAIツールは使わず、インラインのテキスト補完やチャットで問題を解決している
コーディングの大半は手作業で行うが、LLMを意味検索に使って調査を充実させている
コード補完は無効化している。提案を読むこと自体が精神的負担になる
Nicholas Carrの本は、自動化に依存するほどスキルが劣化するという力学について説明している
「すべての開発者がAssemblyを学ぶべき理由」のような記事に似ている
Riderに付属する行補完AIだけを使っている
AIツールは生活をより便利にする
スキルの喪失は双方向に作用する
特定の問題を探すときはGoogle検索の代わりに使う