AIなしでコーディング:革新的な新しい働き方
著者は、AIを一切使わないコーディング手法を「アーリーアダプター」として試しており、その利点として、理解の深化、高品質なコード、シンプルさ、迅速な納品、コスト削減、仕事の満足度向上、AI関連疾患のリスク低減を挙げている。皮肉を込めたトーンで手動プログラミングのメリットを探求。
過去20年ほど、私はプログラミングの新しい方法を試してきました。驚くべきことに、それはLLMやAIコーディングエージェントを一切使用しません。私、キーボード、IDEかテキストエディターだけで、関数や波括弧をタイプしながら、一行ずつコードを書いています。
これは風変わりに聞こえるかもしれません。私は何か、ミニマリストなのでしょうか?実際、私はいわゆる「アーリーアダプター」です。何か違うこと、革新的なことを試しています。誰もがそのビジョンを理解するわけではないと知っています。ほとんどの人はコーディングとAIを同じものと考えています。しかし、ここで言いたいのは、AIなしのコーディングは現実であり、実行可能であり、驚くべき利点があるということです。
これらの利点について話しましょう。あなたもAIなしのコーディングを自分で試してみたくなるかもしれません。(もしかしたら週末だけでも、未来の波になるかもしれないので。)
1. 理解の深化
手動でコーディングするとき、私はエージェントに「送信ボタンを隠すバグを修正して」とか「この非同期ジョブがデータベースを更新するようにして」と単純に指示できません。エージェントがいないのです!代わりに、コードを注意深く読み、テストし、デバッグして、その動作のメンタルモデルを構築しなければなりません。これは難しいことですが、私はかなり上達しました。その過程で気づいたこと:
- 私のメンタルモデルはAIよりもはるかに正確です。コードを徹底的に調べた後は、その動作についてあらゆる種類の有用な予測ができます。
- コードにバグがあるか仕様と一致しない場合、変更が必要な正確なファイルやメソッドを頭の中で視覚化できることがよくあります。これがどれだけワークフローを高速化したか、言葉にできません。
- コードを読むと、計画していなかったことを学ばずにはいられません。コードはすべて相互に関連しているからです。その「ボーナスの学び」は後で頻繁に役立ちます。
- コードをより信頼性高く、扱いやすく改善できる方法に気づくことがよくあります。
- アプリケーションについて質問されたとき、チャットボットに相談しなくても答えがすぐに浮かぶことがあります。
- 最終的には、コードベースとそれが使うすべてのテクノロジーの専門家になります。その専門知識はいつでもどこでも無料で利用できます。エージェントは不要です。それはちょうど脳内にあります。
これは遅いように聞こえるかもしれませんが、実際には、コードベースで作業する時間が長ければ長いほど、それを基に構築する速度が速まります。AIは素早いプロトタイプ作成ではまだ速いですが、深く真の理解には代えられないため、私も自分でそれらを構築していることに気づきました。
私はその理解を利用して仕事で非常に価値のある存在となり、長年にわたって複数の昇進と表彰を受けました。しかし、同僚には私がAIなしでコーディングしていることを言わないでください。彼らはそれを不公平なアドバンテージと見るかもしれません。
2. 動作するソフトウェア
世界は実際には機能しないソフトウェアに対する巨大な需要があります。正直、少し努力すれば、機能しないソフトウェアを手書きすることもできます。しかし、ほとんどの場合、私のAIフリーのコードは少しのテストと調整でかなりうまく動作します。そして、何か神秘的な効果により、時間が経つにつれてより良く動作します。私のコードの多くは、そのまま放置しても何ヶ月も何年も動作し続けます。冗談ではありません。私は、常に捨てて再生成する必要がないコードを持つという、禁断の秘密を発見した気分です。
コードにバグがあるとき(正直に言うと、AIを使っても使わなくてもバグは常にあります)、私はそれらを修正する自信がずっと高まっています。チャットボットと何度もやり取りして、誤った解決策をいくつか作り出し、最終的に問題を覆い隠すコードを書くのではなく、バグの原因を徐々に絞り込むデバッグ技術を使い、確実に場所を特定してから高い自信を持って修正します。修正がたった一行のコードであることもあります。信じられますか?
私はついに、自分の服を縫ったり家具を作ったりする人々を理解できたと思います。それは単に品質の高い結果です。何度か着てもばらばらにならないTシャツを想像してみてください!確かに初期の労力は大きいですが、品質に文句は言えません。
3. よりシンプルなコード
気づいていないかもしれませんが、AIはしばしば単純なタスクを複雑にします。必要なのはif/elseブロックだけなのに、3ページにもわたるデータ構造とアルゴリズムを書くことがあります。手でコードを書くことで、複雑さを負債と見なし、できるだけシンプルに保つことを学びました。
AIなしでコーディングするときは、自然とボトムアップで、必要なことだけを行うシンプルなコードから始まります。後で拡張して構築することはいつでもできますが、後から簡略化するのははるかに難しいです。
時々、私のAIフリーのコードは非常に単純で、プログラマーでない人にも理解できることがあります。彼らがChatGPTに入力しているのではなく、読んで何をするのか理解しているのです。信じられないかもしれませんが、コードは本当にそれほどシンプルになり得ます。
コードがシンプルかどうかがなぜ重要なのでしょうか?一つには、シンプルなコードは予測しやすく、デバッグしやすいです。AIなしでコードを書くと、後でAIに説明してもらう必要がなく、すぐに戻って記憶を呼び起こし、更新できます。もう一つには、シンプルなコードはそもそも壊れる頻度が低いです。壊れる可能性のあるコード行がそれほど多くありません。
直感に反しますが、今ではAIなしのコーディングの追加の摩擦をwin-winと見ています。それは私をより良いプログラマーにします。物事をシンプルに保つように促します。価値のないことに対してノーと言う助けになります。
AIを使った方が速いと思うかもしれませんが、それがポイントではありません。ウェイトリフターはウェイトなしでより速く動くでしょう。冷水浴は水が温かければより快適でしょう。起業は顧客の期待が低ければ容易でしょう。何かを挑戦的にするものが、それを価値あるものにすることもあります。
4. より速い納品
時々、AIなしでコーディングしていると言うと、人々は心配そうな顔をします。機能のリリースが遅すぎて常にトラブルになっているのではないかと心配するのです。実際にはより速くリリースしていると伝えたときの彼らの驚きを想像してみてください。
コーディングは、AIを使っていたときでもワークフローの中で最も速い部分であり、今もそうです。コーディングは実際にはそれほどボトルネックではないことがわかりました。ほとんどの時間を費やすのは他のことです:要件の理解、曖昧さの解消、フィードバック待ち、テストと検証、他のチームとの調整、ミーティング、プロジェクト計画などです。遅いのはコンピューターのことではなく、人のことなのです。
だから、なぜ私が遅くないのか説明がつきます。しかし、なぜ速いのでしょうか?
一つには、手動でコーディングするとき、その過程で決断を下さざるを得ません。曖昧なコードを書くことは不可能です。正しい決断がわからないときは、コーディングを止めて答えを探さなければなりません。初期は遅くなりますが、コードが完成する頃には、意図したことを行ったと確信できます。曖昧さと未解決の質問はプロセスの早い段階で解決され、コードのリリースよりずっと前です。これが長期的に時間を節約します。
そして、これまでに述べた他の要素もあります。速度と専門知識は時間とともに成長します。コードはシンプルです。より良く動作します。これらすべてが迅速な納品に貢献します。確かに、AIは私より速くタイプできます。しかし、振り返ってみると、タイピング速度が問題だと思っていたことが信じられません。
5. コスト削減
礼儀に欠けるかもしれませんが、AI企業は常にもっとお金を稼ごうとしているように感じます。チャットボットのアップデートのたびに、より多くのトークンを消費させるために設計されているように思えます。
あなたが何を考えているかわかります。「AIなしのコーディングはトークンをいくつ使うの?」答えは驚くほど単純です:まったく使いません。
私は、トークンに一銭も払うことなく、複数の完全なアプリケーションをリリースしてきました。法的にグレーな無料トライアルスキームを実行しているわけでもありません。トークンを一切使わずにそれらのアプリケーションをリリースしました。誰の許可も得ずにソフトウェアを書くことができます。インターネット接続なしでLinux上のオープンソーステキストエディタを使ってソフトウェアを書くことができます。解放感があります。
正直、チャットボットの代わりに普通の脳を使うことで節約している金額はすごいです。無料でコーディングできます。実質的に借金はありません。そして私は比較的穏やかなケースです。私の同僚の中には、私の住宅ローンよりもトークンに多くお金を使っている人もいます。
6. 高い仕事の満足度
先ほど、自分の服を縫ったり家具を作ったりする人々の話をしましたが、もう一つ気づいたのは、彼らはそれを楽しんでいるということです。彼らにとってそれは楽しく、やりがいがあります。衣料品工場で働く人がそう言うのを聞いたことはありません。
AIコーディングは世界で最悪の仕事ではありませんが、満足できるものでは決してありません。工場労働です。退屈な作業です。時には、創造的な仕事というよりも、補習クラスを教えているように感じます。AIの作業を常にレビューし、AIが犯す種類の間違いに注意し、正しくなるまで最初からやり直すように指示します。少なくとも教育では、生徒は学び、向上することができ、彼らと意味のある関係を築くことができます。AIはただ…AIであり続けます。
AIなしのコーディングは魔法のように感じます。プロセスには創造的な喜びがあり、達成感と所有感があります。それは芸術であり科学でもあります。上司を満足させるためだけにコードを量産しているのではなく、有用なものを作っています。そして、それに誇りを持っています。その誇りが、より良くするため、壊れたときに直すため、仕事外でも考えるために私を動機づけます。
ビジネス志向でハッスル文化を持つことは一つのことです。自分の仕事を愛することは別のことです。そして、私は自分の仕事を愛していることを恥じません。
7. AI関連疾患のリスク低減
誰もがAI精神病とAI燃え尽き症候群を生活の事実として受け入れているようです。チャットボットと深夜まで過ごした後に入院したことのない人がいるでしょうか?AI関連の認知機能低下の初期報告もあまり注目されていません。
私は、そうである必要はないと考えます。私の小さなAIなしコーダーコミュニティでの逸話によれば、AIを使わなければ、AI関連の病気や傷害のリスクはゼロになると確信しています。異常な主張には異常な証拠が必要であり、科学的な研究が必要ですが、数学的には成り立ちます。
繰り返しますが、私はここで辺境にいることを認識しています。しかし、AIを避けることは、私たちがよく知る他のリスク回避戦略とそれほど変わりません。私はタバコを吸いません。対向車に突っ込むような運転はしません。野菜を食べます。AI禁欲は、健康を守る別の方法です。
AI使用のリスクは小さいかもしれません。ほとんどの喫煙者は肺がんになりません。ほとんどのAIユーザーは精神病を発症しません。しかし、少しずつ積み重なります。健康に値段はつけられません。
次は何?
私の友人の一部は、AIなしのコーディングを滑りやすい坂道と見ています。次は何?IDEなしのコーディング?低水準プログラミング言語でのコーディング?紙とペンでのコーディング?
実際のところ、私にはわかりません。AIが流行らなくなった場合、私が人生を築いてきたキャリアに何が起こるかは言えません。人々が自分でコードを書けるようになれば、世界はプログラマーを必要としなくなるのでしょうか?
[AIコスト抑制のため省略]