31 ポイント 投稿者 GN⁺ 2025-03-19 | 29件のコメント | WhatsAppで共有
  • LLMツールが開発生産性を高めるのは事実
  • しかし長期的には、こうしたツールに依存することで自力で問題を解決する能力が低下する
  • コードを書く過程で得られる達成感が失われ、問題解決よりもAIの回答を待つようになる

開発に対する情熱と挑戦精神の弱体化

  • コーディングそのものを楽しめない人もいる → その場合、開発分野は向いていないかもしれない
  • 私が出会った最高のエンジニアたちは、週末でも自発的にツールやソフトウェアを作り、イノベーションを追求している
  • システムの性能改善は根本的な理解があってこそ可能であり、そうでなければ無作為に試しているにすぎない

「Copilot Lag」現象

  • 「Copilot Lag」は、AIからの次の指示を待っている状態を意味する
  • まるで新人開発者が先輩の指示を待っているのと似ている
  • GitHub Copilotを使っているうちに、基本的な言語要素や構文さえ忘れてしまうようになる
  • 短期的な速度向上の代償として、長期的な知識が衰えていく

LLMは学習プロセスを妨げる可能性がある

  • Thorsten Ballの"Writing An Interpreter In Go"を学んでいたとき、Copilotがコードを生成してくれたが、自分で書き直せる力は身につかなかった
  • メモリ管理やデータ指向設計のような重要な概念を見落としてしまう
  • AIが作ったコードは見た目には正しそうでも、根本原理を理解していなければ意味がない

LLMを効果的に活用する方法

  • LLMは検索エンジンのように有用に使える
  • Stack Overflowを検索するように、LLMの回答を参考にできる
  • しかしLLMは実際の専門家の知識をそのまま反映しているわけではなく、学習したパターンとトークン列に基づいて回答を生成する → 誤りも多い
  • LLMの回答をそのまま受け入れず、なぜそのアプローチを勧めるのかを分析しなければならない
  • 分からないことがあれば、自分で調べて学ぶべきだ
  • 新しい言語(Zigなど)を学ぶときは、学んだ内容をメモしておくと役立つ
  • メモは学習の参考資料になり、他の人と共有するときにも役立つ

結論

  • AIツールは有用だが、盲目的に依存するとかえって逆効果になる
  • AIが提示した解決策の原理を理解し、自分で学ぼうとする姿勢が重要だ
  • 結局重要なのは、ツールに依存せず根本的な問題解決能力を維持することだ

29件のコメント

 
madnix 2025-03-27

うーん……そもそもAIを道具として見るのか、知能として見るのかという観点の違いのようです。私はこの記事に同意できないのですが、下のコメントでも話したように、開発者をコードレベルだけで見ること自体が誤った考えですし、かつて英国で産業革命が起きたときも、農民たちは自分たちは飢え死にすると大騒ぎしていましたが、結果的にはより多くの雇用が生まれ、人類に多くの恩恵をもたらしました。また、過去にコンピュータが登場したときも、コンピュータのせいで人々はだんだん馬鹿になると言われていましたが、結果的にはより多くのことをより短時間で解決できるようになり、人々はより賢くなりました。

 
jokerized 2025-03-24

ディープリサーチを含むLLMは、まだ高水準の問題解決には有用ではありません。(例えば、論文レベルのアルゴリズム開発)
極限の最適化や、さまざまなシステム特性と技術的イシューを理解しなければならないコーディングも同様で、まだ人の手が必要です。開発者は単なるプログラマーではなく、問題解決者です。いつかはend-to-endの問題解決も可能になるでしょうが、今はタイピングや単純なプログラミングに使う時間を節約し、より難しい問題へのアプローチ方法に投資できるので、生産性の面では前向きに見ています。

 
skarl86 2025-03-22

いつの頃からか、コードレビューのような感覚で使うことが多くなった気がします。コードの提案を受けて、コードの方向性について話し、より良い方法を考えて提案し、自分が納得できる結果が出たらそれを採用しています。

 
kaydash 2025-03-22

アプリケーション全体のロジックとビジネスロジックは、人間が考えるべきだ。

 
elbanic 2025-03-22

開発者をコーディングだけに限定すると、こういう懸念が出てくる。実際には開発者はもっと多くの仕事をしており、コーディングの部分をAIに依存することを愚かになることだと考えることもできるが、別の部分により集中できるようにしてくれると見ることもできる。

 
pcj9024 2025-03-21

うぅ…私はバカ開発者…

 
dongyagn1 2025-03-20

Unityがゲーム開発者をバカにしているという話もあったけど、みんな別にバカにならずに、むしろいろんなことをもっと学んで、仕事だけ増えた感じでしたねw

 
halfenif 2025-03-21

仕事が増えただけだなんて…そんな…

 
nimgnos 2025-03-20

バカにしている……という言い方には同意しがたいです。
AI導入以降、生産性は本当に飛躍的に向上しましたから。

 
vhzkfltmdnpxm 2025-08-18

ここにバカがいるね

 
alpharoom 2025-03-19

最近は、AIで何でもできるという意見に同意しないと叩かれる時代だから、まあそんなものだよね

 
play1204dev 2025-03-19

知らなかったライブラリの機能や、すぐには思い出せないシェルスクリプトのようなものならまだいいのですが、すでにdeprecatedになった機能や存在しないfunctionのようなものが混ざっていて、デバッグに時間を全部取られてしまいます。

> LLMの回答をそのまま受け入れず、なぜそのアプローチを勧めるのかを分析すべき

この言葉が核心だと思います

 
dongwon 2025-03-19

ツールは常に、思考の拡張と同時に思考の破壊ももたらすものだと感じます。思考の破壊を通じて、より高次の思考の拡張へ進めるべきなのですが、その準備ができていない瞬間には、いつもこうした問題がついてくるのだと思います。

したがって、結局のところ、ツールの使用には常にこうした悩みが伴うのだと思います。私はそれは必ず必要な過程だと考えています。単に拒否したり盲目的に使ったりするのではなく、このツールをどう使うのがよいのか、こうしたツールをどう活用して本質的により重要な部分へリソースを注げるのかに重点を置いて使うのが望ましいと思います。
(cursorのusageを月1,000回以上使いながら...)

 
amarese 2025-03-19

キム代理。私があえて助言したいことがあります。ほかでもなく、Excelの関数?をあまり使わないでください。便利さがあるなら、危険性は増大するものです。牛をさばくにはそれなりの刃があり、鶏をさばくのに刃物が必要でしょうか? 簡単なことが正解であることもあります。

 
codemasterkimc 2025-03-19

上の記事はExcel関数のGPT版ですね(笑)

 
losoowmik 2025-03-19

私の意見では、暗算は速いこともあるし、電卓は便利です。コンピュータは牛刀のようなものではないかと思い、意見を述べます。

 
jingjing2222 2025-03-19

もう二度とChatGPTを使わない
私も似たような文章を書いたことがあります。

生産性が向上する効果は確かにありますが、脳を委ねてしまう行為そのものは避けるべきだと思います。

 
dicebattle 2025-03-19

まだcursorとanthropicの熱心な支持者ではありますが、ある時から熱狂していたagentモードを徐々に使わなくなり、askモードでアーキテクチャや実装方法を先に尋ね、十分に納得できたときだけ、一つひとつAIの変更提案を受け入れるように自分でも変わっていったことに気づきました。

それほど大きくはないものの(ただし私たちの業務プロジェクトではかなり重要な)モジュールを、2人のエンジニアがそれぞれagentモードを使ってリファクタリングし、構成を追加していく中で、ある時点でアーキテクチャを整理するはずだった意図のコードが、実際には可読性も構造もかえってひどくしてしまう状況を直接目の当たりにし、こうして変わるようになりました。

 
onixboox 2025-03-20

私もこんなふうに使っています。本当にまったく初めて触る言語なら agent モードを使いますが、知っている言語なら、まず納得できるコードかどうかを確認するようになります。

 
iolothebard 2025-03-19

AIが開発者をバカにしているというよりは…
バカな開発者はAIを使ってもバカな開発者のまま…
Garbage in, garbage out

 
ehdgns104 2025-03-24

まったくその通りです(笑)

 
powerkid 2025-03-21

同意します。無条件に悪いわけでも無条件に良いわけでもなく、使い勝手のいい生産性向上ツールがひとつ増えるようなものだと思います。

 
halfenif 2025-03-21

共感します。

以前から、開発者といってもみんな同じ開発者ではない、という話をよくしていました。

 
aer0700 2025-03-20

このお話は正しいようです...

 
white9s 2025-03-19

乱暴ですが、まったく的外れというわけでもないですね。良い質問から良い答えが生まれる、というのと同じ文脈で…。

 
j2sus91 2025-03-19

著者は、AIツールだけに盲目的に依存して使うことについて述べているように思います。

私個人の意見としては、AIを活用して業務の効率性が高まったのであれば、
それを積極的に活用して反復的な作業を減らし、
確保できた時間をより広い領域(例:バックエンド開発者がフロントエンドやアプリ開発まで拡張する)や、
アーキテクチャ設計のような発展的な方向に投資するのが望ましいのではないかと思います。

全体的な内容を見る限りでは、著者もこの意見に同意されるように思いますが、
時々AIそのものを拒否される開発者の方もいるので、返信を少し書いてみました……(笑)
.

 
tsboard 2025-03-20

私も同意します。Excel の関数を使うなと言っていた記事を思い出します。
ある機能はうまく活用して、さらに有用性を高められるなら得だと思います。

 
zinisuni 2025-03-19

同意します。^^

 
GN⁺ 2025-03-19
Hacker Newsの意見
  • 自分でコードを書くことを楽しめない人もいるかもしれない。その場合、向いていない分野で働こうとしているとも言える
    • 私は何十年もの間、自分でコードを書くことに耐えてきた。ときには満足感もあるが、ほとんどの場合、それは自分のアイデアと自分の間にある抽象化にすぎない
    • 私は何かを素早く作るのが好きで、アイデアがあるときにはできるだけ効率的かつきれいに実装したい
    • LLMsと一緒に働くことを受け入れた。これで自分がより怠け者になったとは思わない
    • むしろ、行き詰まったときに着手するためのきっかけを与えてくれる。LLMが作業を始めたら、私が引き継いで自分のやり方で仕上げる
    • 私は以前より多くのプロダクトを生み出している
    • 私は人々と一緒に働いてきたし、そのうちの何人かは友人でもある。彼らは自分のコードや方法論が神聖だと考えている
    • AIが入ってくると、彼らには居場所がないと思う。私は創造性のためにこの世界に入ったのであって、それがここにいる理由だ
    • ツールや文法はすべて目的のための手段にすぎない
    • 新しい抽象化レイヤーが開発され、下位レイヤーを理解しなくても動くコードを簡単に作れるようになるたびに、こうしたことは繰り返される
    • ほとんどの場合、それはリーキーな抽象化だ。ときには下位レイヤーが実際にどう動いているのかを知る必要がある
    • 下位レイヤーを理解するために多くの時間と感情的エネルギーを投じてきた開発者たちは、抽象化に依存する人々のほうが愚かだと主張する
    • 私たちは皆、サードパーティライブラリに依存せず自分でコードを書けば、もっと賢くなるだろう
    • メモリを手動で管理すれば、もっと賢くなるだろう
    • すべてのコードをアセンブリ言語で書き、コンパイラに依存しなければ、もっと賢くなるだろう
    • 自分でトランジスタを配線すれば、もっと賢くなるだろう
    • 下位レイヤーを学ぶことは教育的だ。しばしば最適な性能を絞り出すために必要でもある
    • しかし、顧客に価値を提供するために下位レイヤーを理解する必要はない
    • コーディングLLMを使って、まだ理解していないコードの理解を助けてもらうのがいちばん気に入っている
    • たとえ答えが間違っているときでも、自分で解決するためのヒントを与えてくれることが多い
  • 似たような経験をした。LLMを使って機能を構築したが、そのコードが既存ライブラリから持ってこられたものだと後で気づいた
    • ちゃんと調べていれば、はるかにひどいバージョンを作らずに済んだはずだ
    • 今ではコメントをもとにエディタ内でプロトタイプ機能を得るためだけに使い、残りは自分でやっている
    • AIパイプラインを設定するのは楽しさを全部奪い、とても気が重い作業のように感じる
    • むしろコーディングをしたい
    • LLMが2回、3回、4回と連続で間違えると、本物の怒りが湧いてくる
    • 疲れ果てる
    • 今後1〜2年でさらに簡単になり、UXも改善されることを期待しているが、どうなるかは分からない
    • たぶん自分にビジョンが足りないのだろう
  • LLMsは、学生が技術的な問題を深く理解し、集中する動機を奪ってしまう
    • その代わり、コピーして貼り付け、理解しないまま先へ進んでしまう
    • 電卓のたとえは適切かもしれない。手で計算する方法を学んだ後にこそ、適切な道具になる
    • 実験で、ビジネス系の学生にChatGPTとデータサイエンスの課題を与えた
    • 彼らは背景知識なしに解決策を見つけたが、知識は身につかなかった
    • 友人が「この言語モデルは一般大衆に提供されるべきではない」と言っていた
  • 前職での個人的な逸話
    • ジュニア開発者が、長い間使われていないブランチの一覧を作るスクリプトを書く任務を与えられた
    • レビュー依頼を受けたが、その大半はawkで書かれていた
    • 彼らは任務の定義をLLMに入力し、返ってきた答えをコピーしてプルリクエストに貼り付けていた
  • プラトン『パイドロス』、紀元前370年: 「彼らはもはや自分自身で記憶せず、外部の印を通じて記憶を呼び起こすようになるため、記憶を使わなくなるだろう」
  • 私は古いタイプかもしれないが、サイレントフェイルがシステムにとって最悪級の振る舞いの一つと見なされていた時代を覚えている
    • LLMsはサイレントフェイルの機械だ
    • それらは然るべき場所では有用だが、上司が人間の労働をAIで置き換えると言い出したら、自ら招いた災厄を味わうことになると確信している
  • 私がソフトウェアエンジニアリングに入った理由は、何かを作り、その仕組みを解き明かすのが好きだからだ
    • キーボードでコードを書くことは、技術に付随する副次的な行為にすぎない
    • それは、数学者になるにはホワイトボードに方程式を書くのを楽しむ必要があると言うようなものだ
    • エンジニアリングでは、解決策を見つけることが一般に最終目標だ
    • 手で全部入力することに価値があるなら、優れたエンジニアはそうすべきだ
    • サードパーティライブラリを取り込むのが最善の使い方なら、そうすべきだ
    • LLMに一部のコーディングを任せるのが最も簡単な道なら、そうすべきだ
  • 「Copilot Lag」という概念がある
    • エンジニアが各作業の後で次に何をすべきか待っている状態を指す
    • 私はこの経験を10〜15年してきた
    • LLMがあまり大きな害を与えることはないだろう
  • コーディングコパイロットを見限ろうかというところまで来ている
    • ほとんどの時間をそれらと格闘することに費やしている
    • 一部は自分のせいかもしれない
    • UXや実装の問題もある
    • LLMsはさまざまな話題についての中級専門家としては有用だ
    • しかし、エコーチェンバーに陥りやすい
    • 人間の直感、好奇心、創造性、個性が必要な瞬間に壁にぶつかるのは衝撃的だ
    • 私はそれをツールボックスの中のもう一つの道具として置いておくことには満足している
    • しかし、実際の人々と協力するほうを好む