世界を動かす技術を、日本語で。

7歳の時にプログラミングを始めました。今は50歳で、私が愛していたものは変わりました。

概要

  • 7歳でプログラミングを始め、50歳になった今の率直な心境
  • コンピュータや開発文化の変遷と、それに伴う「ものづくり」の意味の変化
  • AI登場による開発体験の質的変化と喪失感
  • 経験やシステム思考の価値と、その実感の希薄化
  • 変化を受け入れつつ、今後の自分と開発の在り方を模索する心情

7歳で始めたプログラミング、50歳になった今

  • 1983年、BASIC を使い始めた幼少期の思い出
  • RAMや画面表示 など、機械の全てを把握できた時代の安心感
  • 意図から結果まで が直結する、純粋な「ものづくり」の体験
  • 現在の 圧倒的なハードウェア進化 と、「ものづくり」の意味の変容への戸惑い
  • これは AI批判や懐古主義 ではなく、長年の開発者が感じる率直な違和感の共有

かつてのコンピュータ時代の魅力

  • 8ビット~486DX2-66 までの時代に特有の個性
  • Sinclair SpectrumやCommodore 64、NES、初期PC など、個々のマシンの特徴
  • CPUアップグレード が劇的な変化をもたらす体験
  • IRQやDMA、CONFIG.SYS、AUTOEXEC.BAT など、システム理解が必須だった時代
  • id Software のような小規模チームが独自技術で限界に挑戦
  • 創造的制約 が生み出す独自性とエンジニアリングの冒険

プロフェッショナル化と変質

  • Plug and PlayやWindows の登場による抽象化と「野性味」の消失
  • 「道具」から「家電」 へと進化し、クラフト感が薄れる
  • コンピュータへの期待感 と、インターネット初期の平等性の高揚
  • 監視や搾取の道具 へと変質した現代のプラットフォーム
  • 「作り手精神」 の消失と、広告最適化への従属

変化への適応と積み重ね

  • CLIからGUI、デスクトップからWeb、Webからモバイル への多数の技術転換
  • 言語やプラットフォーム の変化に応じて、コアスキルを活かし続ける開発者の姿勢
  • システム全体の理解 を武器にする経験の価値
  • 業界の変化に合わせて積み重なる知識と判断力
  • 「変化しても理解は残る」 というベテラン開発者の暗黙の契約

AI時代の「違い」

  • AIによる変化 は「新しいプラットフォーム」ではなく、「良い開発者像」そのものの再定義
  • コーディングの面白み や「解決の快感」がAIに奪われていく実感
  • 人間の役割 が「指示・レビュー・修正」へと変化
  • 経験に裏打ちされた判断力 の価値は残るが、体験の質が異なる
  • 出力の表面上の類似性 によるクラフトの価値の見えにくさ

抽象化の積み重ねとAI

  • TypeScript→JavaScript→V8→C++→OSカーネル など、抽象化レイヤーの連鎖
  • AI登場以前から 「全体の理解」は失われつつあった現実
  • 「全てを理解していた時代」 を知るからこその喪失感
  • AIは抽象化の最終段階 であり、誤魔化しが効かなくなっただけ

それでも残るもの

  • システム思考やアーキテクチャ判断 など、AIに代替されにくい領域の価値
  • 複雑なシステム設計やパターン認識 は依然として人間の強み
  • AI時代は「何を求めるか」「全体を俯瞰する力」 がより重要
  • コーディング自体よりも、設計や判断の重み の変化
  • 「発見や驚き」の圧縮 による体験の変質と、そこに潜む喪失感

「休閑期」と向き合う

  • 50歳を迎えた今、自己のアイデンティティの揺らぎ
  • 「休閑期」 と呼ぶ、燃え尽きとは違う地盤沈下感
  • 「上位レイヤーへ登れ」「AIにできないことをやれ」 というアドバイスの空虚さ
  • 42年間積み上げたものが、違う形に変わったという戸惑い
  • 多くのベテラン開発者が言葉にしない共通感覚
  • 「時代遅れ」ではなく、「新しいものを受け入れつつ自分の立ち位置を探す」 現実
  • かつての「魔法」は変化したが、新しい魔法と向き合う覚悟
  • 「休閑期」もまた意味がある時間 として受け入れる姿勢

Hackerたちの意見

みんな、こういうツールに対して存在的なめまいを感じているなら、自信を持って自分を信じてほしい。AIが登場する前に賢い開発者だったなら、AIがあっても賢い開発者でい続ける可能性が高いよ。これまでの経験から言うと、AIを使って生成されるコードやソフトウェアの質は、そのツールを使う開発者の質に驚くほどよく対応している。経験の浅い悪い開発者は、やっぱりイマイチな結果を出すし、優れた開発者は素晴らしい結果を出せる。これらのツールを使う際の選択肢も、よく言われるほど単純じゃない。特にエージェントが普及してからはね。重要なコードをじっくり作り込む時間を確保しつつ、他のタスクでエージェントにバックグラウンドキューを流すこともできる。実際、AIツール革命で適応すべき最大の課題は、昔ながらの個人の時間管理だと思う。

AIの前に賢い開発者だったなら、AIがあっても賢い開発者でいられる可能性が高いと思う。みんなが不満を持ってるのはそこじゃないと思うし、少なくとも私にとってはそうじゃない。私にとっては、コードを書くのが本当に楽しいことで、AIにそれを委任するのは地獄だよ。

経験豊富な開発者ほど、これらのツールを使うのに適している人はいないと思う。

僕にとって問題はシンプルだよ:AIの導入に関して、私たちはアクティブな囚人のジレンマにいる。正しい質問をしないことで、最適な人間の結果が得られず、結果的にみんなにとって悪化している。私たちはAIを自己中心的に使っていて、それが報酬をもたらすから。企業が公共の利益に対してコミットしていない限り、私たちのためにモデルを訓練することには大きなリスクがある。仕事が奪われて、AIに完全に置き換えられたら、私たちには何も返ってこないかもしれない。

そうだね、全くその通りだと思う。ソフトウェアを理解していない企業、ソフトウェアを評価しない企業、すべての技術が基本的に同じだと思っている企業は、常に安い選択肢を選び、優秀な人材を解雇するから、最終的には失敗するだろうと思う。そして、AIは実際に優れた開発者が良いソフトウェアをもっと早く作るための素晴らしい機会だと思う。

問題は、悪い開発者が見た目には十分良さそうな結果を出すスピードが速いせいで、既存の手順が圧倒されてしまうことだと思う。それに、管理側が「AIを使ってできるだけ早く進めろ」と言ってくるから、修正する時間がほとんどないんだよね。

質に関するコメントには同意だよ。AIによるコーディングの問題は、雑さというよりも、開発者がその雑さに気づかず、コードレビューでそれを動作する製品として通そうとすることだと思う。過去6ヶ月間にレビューしたものの中には、本当に目から鱗なものがあったよ。

6か7歳、今38歳だけど、めっちゃ楽しいよ。葬式みたいな雰囲気や集団での泣き会いばかりじゃないからね。ブログ記事に騙されないで、AIについての愚痴だよ。そうじゃなきゃ、過去30年間の業界の200回のパラダイムシフトについて文句を言ってたはずだから。確かに、ディルバート風のアジャイルやウォーターフォール、TDDのジョークはたくさん見せられたけど、ウォーターフォールモデルに自分のアイデンティティを奪われたなんてブログ記事はなかった。 >「それに対して、私が築いてきたアイデンティティを挑戦するような違いがあって、以前のようには満足できない。」みんなそれぞれ自分のやり方をすればいいけど、誰かがこの世界で一つの柱だけをアイデンティティの基盤にするのは危険だと思う。

プリンスって言葉を思い出させてくれてありがとう。著者に同意するけど、今の仕事はあんまり楽しくないし、興味も薄れてきた。やることは増えて成果も出てるけど、重要性は減ってる感じ。残念ながら、他のアイデンティティの定義があっても、私にはあんまり役立たない。逆に、他の自分の側面がこの仕事と比べてキャリアとして魅力的に見えるだけ。とはいえ、あなたが言うように、私が辞めることもできるし(実際に辞めるかもしれない)、適応もできる。だから、AIに対して特に恐れや不安は感じてない。ただ、なんとなく退屈を感じてるだけ。

でも、誰も「ウォーターフォールモデルにアイデンティティを奪われた」ってブログを書いてないよね。それはどうなんだろう。ウォーターフォールはブログが普及する前にほとんど死んでしまったけど、アジャイルの始まりの頃には、ちゃんとした設計がなくなって、何も完成しないし、仕様が何かもわからないっていう投稿がたくさんあったのを覚えてる。彼らは本当にエンジニアだったのに、今ではただの混沌だよ! 何も設計できなくなってしまったんだ!

著者が言ってるのは、開発者からチームリーダーやマネージャーにシフトするときの感覚でもあるよね。リーダーになると、コードが自分のやり方とは違うってことを受け入れて、気楽にならなきゃいけない。チームが作ったコードを見て、それを自分の技術で全部置き換えようとするのは、失敗するだけだよ。正しいアプローチは、コードじゃなくてチームを良くするために自分の知恵を使うことだと思う。AIを使ってコーディングする時にもこれが当てはまると思う。4月に50歳になるけど、AIコーディングアシスタントにワクワクしてる。やりたかった個人プロジェクトが実現可能になったから。

経験の浅いジュニアたちを管理するのは楽しいけど、結果が重要な時はストレスが増すよね(いわゆる個人プロジェクトのこと)。

Hacker Newsで議論の続きを見る