キャリア
私の古い仕事は今では遠い昔のことのようだ
My old job feels distant now (pinecoder.dev)
要約
著者は、ChatGPTのようなAIツールが、特にRubyのような苦手な言語でのコーディング作業をどのように変えたかについて振り返っています。当初は単なる高度な補完機能でしたが、やがてコード生成や新しい分野(コンピュータビジョン)での学習支援に進化し、最終的にはエージェント型プログラミングへと発展しました。
全文翻訳
私の古い仕事は今では遠い昔のことのようだ
2026年10月15日 / 人間が書いた / 1c939998
ラトルスネーク・レッジの上のパンプキン
ChatGPTを初めて体験した時のことを、ほとんど覚えていない。私の職業生活にあまりにも浸透してしまったので、最初の瞬間、あるいは瞬間まで戻るのは難しい。代わりに、いくつかの瞬間のぼんやりとした記憶がある。ある時点で、それがより良いGoogleであることに気づいた。それはStackoverflowが人気になった時と、コーディングトピックのGoogle検索結果が役に立たないものから役立つものへと変わった時と非常によく似ていた。結果がないことは、「あなたはそれを間違って持っている」という瞬間を示唆していた。私はそれをいじくり回していたのを覚えている。そして、Bryanが「ChatGPTに聞いた?」と私を nagging していたのを覚えている。そして、私がそうなるまで、常にイライラしていた。そして、それが私のデフォルトの出発点になった。
次の段階はすぐにやってきた。私はコードをコピー&ペーストし始めていた。通常は、手書きしたくないRubyのスペックだった。私はイディオムを説明したり、コードの例と私の新しい振る舞いを貼り付けたりして、コードを出力させていた。これは、私が慣れていた実際の型付き言語のようにコード補完が有効になっていないIDEにタイプするよりもはるかに速かった。ごめん、私はいつもRubyを書くのが嫌いだった。おそらく、Railsの愛好家のように、いつかは速く書けるようになっただろう。しかし、私はこの未来を視覚化できず、ChatGPTはエスケープハッチを提供してくれた。私がプロフェッショナルとして使用した最初の5〜6言語は、何らかの形で愛し、効率的になることを学んだ。しかし、私は限界に達し、今ではそれをより良く学ぶことを遅らせることが正当化されると感じた。
次の瞬間はペアでやってきた:タブ補完と、新しいドメインでのコピー&ペーストの使用。タブ補完はより自然だった。時には役に立ち、時にはそうでもなかった。その主な側面は、私がすでに慣れていたIDE、vscodeに統合されていたことだった。Cursorにフォークされたものだ。私が置いたパターンを拾うことが、それができることのほとんどだった。私はその知性や実際の提案に頼ることはほとんどなかった。
実際の提案については、私はまだChatGPTをコピー&ペーストしていた。しかし、これは違った。以前は単なる洗練されたオートコンプリートに過ぎなかった。今、私はGoogle検索とコード生成を新しいドメインで融合させていた:Pythonでのコンピュータビジョン。私は一時的なビジョンプロジェクト(新しいオブジェクトの境界と整列)に移っていた。私はこれについて何も知らなかった。「検索」するのと同じくらい速く、私は応答をコードにプロンプトした。これは、後のOpusモデルの言葉の嘔吐の前に、私の好きな段階の一つだった。ChatGPTは私が好きなようにコードを出力してくれた。時々、私はただのきっかけ、特定のAPI、あるいは一行のスニペットが必要なだけだった。それを言葉で吐き出し、私が要求したように、しばしば生意気な侮辱とともに、一行を受け取った。私はそれをJupyterノートブックで実行し、コードを実行し、そしてそれをいじくり回して変更し、視覚やドットやグラフを生成した。同時にAPIとドメインを学びながら、何かを構築していた。これはまた、私が幻覚に最もさらされ、それらを検出し対処するのがいかに簡単かを発見した時期でもあった。私にとって、それはChatGPTが何を知っていて何を知らないかのシグナルになった。幻覚は境界線に現れ、私が空白を埋める番になった。あまり文書化されていない、あるいは私たちのユースケースに固有かもしれないことを理解する番になった。それは時々、ゆっくりとした進行だったが、それでもコンピュータビジョンプロジェクトに飛び込んで、それなしであんなに早く何かを出荷できるとは想像もできない。これは満足のいく未来だった。SEOスパムや型付けされていない言語(より良いドキュメントに依存していた)の質の低いドキュメントを排除することに、より重点を置いた未来であり、私がコントロールを放棄している未来ではなかった。
エージェント型プログラミングがすぐに続いた。私はまだ「Snorting the AGI」を読んだことをはっきりと覚えており、この時期のKarpathyの有名な言葉に少し驚いていた。一体これらの人々は何を話していたのだろうか?しかし、ゆっくりと私はタブ補完から離れ、エージェント型プロンプトへと移行することを学んだ。今はClaudeを使っているが、再び私のChatGPTの瞬間のように、私はその限界を認識し、その中で働くことを学んだ。ゆっくりと私のプロンプトを改善し、それが何を達成できるか、できないかを知る上でより効率的になった。私は人々がこのプロセスを経験するのを見て面白がっていた。長くて退屈なプロンプト、むしろウィッシュリストのようだが、プログラミングの方法を知っているという点で異質だった。これはスキルというよりは、その境界内で働く方法を理解することだった。しかし、彼らの働き方は、ある意味で私のものよりも未来を予測していた。「Tasks.tsxのタスクに日付ソートを追加、詳細ページ;シェルシステムを使用し、components/Shells.tsxを見て、Research.tsxを詳細のために模倣し、Users.spec.tsxをテストのために使用;コミュニティのイディオムを私たちのものより優先し、モックを避け、stubs.spec.tsxパターンを使用する」。
ある日、私は顔を上げ、私のプロンプトのアプローチは楽しいトリックではなく、今や私の主な働き方であることに気づいた。それでもコードベースは完全に私の頭の中にあった。すべての行がレビューされた。より多くのPRは、変更を要求したり、自分で変更したりすることにつながった。生産性はかなり向上したが、それは少なくとも部分的には、私が最終的に好きではなかったコードに取り組むことから解放されたためだった。タブ補完はまれだった。エージェント型の流れは、強力で、有用で、そして同時に限定的だと感じられた。私はまだそれを何をすべきかを伝える必要があり、それがトリッキーなものであれば、自分でそれをしなければならなかった。
そしてOpus 4.5/6が起こった。この変化を説明すると、それよりも微妙に聞こえるかもしれない。しかし突然、タスクを説明する必要のある粒度と、それらを手で指導するのに費やす時間が減少した。私の生産性は、わずかに向上した程度から、約3倍になった(数ヶ月のマージされたPR全体で測定)。機能と洗練度のレベルが向上し、出荷するものを選択する際にそれほど制約を受ける必要がなくなった。私の頭の中のアイデアがすべて流れ出し、ゆっくりと形になっていった。それでも制約は残った。PRがボトルネックになりつつあった。コードベースはまだ完全に私の頭の中にあり、行はほとんどレビューされていた。私はスキャンするのが上手になった。標準ライブラリ、コンポーネント、パターンを使用することがさらに重要になったと感じ始めた。なぜなら、それらがレールに乗っている限り、ほとんどのコード変更を無視することを効果的に可能にしたからだ。ダメージは限定的で、リファクタリングは容易だった。より重要な部分を探す。私たちのビジネスに固有のビジネスロジックを持つ部分。人間の目が必要な顧客データを扱う部分。取り返しのつかない可能性のある部分、データベースの変更、暗号化など。この仕事はまだ理解可能で、まだ満足のいくものだった。それは今、ほとんど完全に、私が重要なこと、つまりアーキテクチャ、移行計画、主要なビジネスロジック、システムの目的、データとアクセスの保護、といったことについて考えていた。すべての機械的で退屈な部分は消えていった。
Opus 5を進めるにつれて、より平凡な部分が目立った。各モデルがより良くなっていることがわかった。コードはラウンドごとにゆっくりと良くなっていった。修正は少なくなった。時々、それは私を修正するようになった。しかし、この段階はコストに関するものが多かった。そして、それがどれほど冗長になったか。ゆっくりと、私はOpusを扱うのが嫌になり、一時的にChatGPTに移行した。私が使用したケースでは、モデルはほぼ同等であり、非常に多くの場合同等だった。しかし、はるかに安価で、より自律的で、そしてより冗長でなかった。私はOpenAIを信用しておらず、したがって、一部が優れている場合でさえ、それに偏見を持っている(そのインターフェース、ボイスチャットなど)。Anthropicのコーディングモデルがほぼ同等である限り、そしてChatGPT 5.5以外では通常優れていたので、私は戻っても大丈夫だった。かかっているものを考えると、Anthropicが大量のテキストの問題を解決してくれるだろうと確信していた。それが私の仕事なのだから。
そしてOpus 5.5がドロップした。再び私は凍りついた、ゼロで。私はTwitterで人々が何を作っているかを見るのに多くの時間を費やしている。それに驚き、それを理解しようとしている。再び私たちは学び、適応する。再び私たちの働き方が変わる。エージェント型コーディングは…違う。モデルに何をすべきかを伝え、その結果をチェックする…私はレベルを上げる必要がある。どのレベルで操作する必要があるのか?私はより野心的なサイドプロジェクトを構築する。クールなツイートで見たものをコピーし、ワンショットでそれをやろうとする。私はたくさんのゴミを集め、たくさんのゴミを生成する。通常よりさらに多い。しばしばそれはくだらないように感じるが、アイデアを集めるのは楽しい。
すべてのプロジェクトにわたるボットのコミットとノートをより迅速に確認するための統合されたアクティビティフィード
私は計画に基づいて作業を開始する。計画ではなく、