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

手作業でコードを書くことに幸せを感じる

概要

  • LLMによるコード生成 は便利だが、 自己の思考力や幸福感 に影響を与える可能性
  • 自分でコードを書く行為 が問題理解や成長に不可欠
  • Vibe coding (AI任せのコーディング)は思考停止を招きやすい
  • ツールの使い方 次第で、仕事の充実度や成果が大きく変化
  • 幸福を最優先 にした働き方の選択が重要

LLMとコーディング体験の葛藤

  • Claude-code などのLLMを使うたびに、 抑うつ感や無気力 が忍び寄る実感
  • LLMが「 正しそうなコード」を生成しても、 自分の時間の価値 に疑問
  • 何度もLLMを試しては削除 し、最終的に「 自分でコードを書く楽しさ」を再発見
  • コーディングは ソフトウェアエンジニアリングの本質 ではないが、 問題空間の理解 には不可欠なプロセス
  • APIの痛みや使いづらさ は、 実際に使って初めて体感 できるもの
  • コードを書くことで、 初期アイデアの誤りや思考の深化 を経験
  • Vibe coding (AI任せのコーディング)は、 思考プロセスを阻害 する要因

書くことで深まる思考と正確性

  • Leslie Lamport の「 書かずに考えるのは、考えているつもりなだけ」という言葉の実感
  • 自分で書いたコード の方が、 正しさの検証や文脈の把握 が容易
  • LLMに依存すると、 問題領域の内面化プロセスを省略 してしまう危険性
  • 生成コードの正確性担保 が難しくなり、 責任感や安心感 の低下

Vibe codingの中毒性と受動性

  • 指示を出すだけでコードが生成 される快感と ドーパミンの刺激
  • あと一回のプロンプトで正解が出るはず」という期待感の連鎖
  • 受動的な変更受け入れ が習慣化し、 自分で考える力の鈍化
  • 単純作業すらAIに依頼 し、 作業効率の低下自己効力感の喪失
  • 大量のコード生成後 も、 最終的なレビューと理解 が自分の責任

ツールが思考を形作る危険性

  • ツールは単なる道具」という見方への疑問
  • ツールの選択ワークフローや思考プロセス に与える影響
  • 深い思考を妨げるツール は、知的労働者にとって リスク
  • 思考力こそが知的労働者のコアコンピタンス

LLM活用の最適解と幸福の追求

  • 完全自動生成 ではなく、 必要なコンテキストだけをLLMに提供 する運用
    • 変更範囲を限定 し、 巨大なdiffや複雑な変更 を避ける
    • 自分でコードベースを把握 しながらAIを活用
    • コード生成を能動的かつ意図的な行為 に変換
    • 思考の流れやフロー状態 を維持しやすい
  • 幸福感と生産性のバランス を重視する働き方
    • 全自動化による生産性向上 が、 長期的には幸福や成長を損なう可能性
    • 自分に合ったツール活用法の選択 の重要性
    • 他人のやり方に縛られず、自分の幸福を最優先 する姿勢

まとめ:自分らしい働き方の選択

  • AIやツールの進化 に流されるのではなく、 自分の思考や幸福感 を大切にした選択
  • 自分で考え、書く行為 の価値の再確認
  • 自分の責任でコードを理解し、納得して出荷 する意識
  • 最適なツール活用法 は人それぞれ
  • 長期的な幸福と成長 を見据えた働き方の模索

Hackerたちの意見

これは大工仕事と同じだよね。確かに、今は全ての家具が機械で作れるけど、手作りを選ぶ人もいる。だからって、彼らが生産性が低いわけじゃないよね。ビジネスで手作りの家具を作ることはないだろうけど、木を扱う楽しみはまだ味わえる。手作業でコーディングしたいなら、やればいいじゃん!誰も止めてないよ。でも、プロとしてそれを続けられるとは思わない方がいい。

家具のカットだけが自動化されてるだけだよ。デザインや組み立ては人間がやってる。ソファを自動で作る機械なんてないからね。

手作業でコーディングしたいなら、やればいいじゃん!誰も止めてないよ。でも、プロとしてそれを続けられるとは思わない方がいい。もし手作業でコーディングできなくなったら、何をしてお金をもらうの?LLMに仕様を持っていくの?LLMがやらなくていいように顧客とやり取りするの?

手書きでコーディングしたいなら、やればいいじゃん!誰も止めてないよ。楽しくて価値のあるスキルって少ないからさ。それが価値を失うと、私的にできてもがっかりするよね。 > でも、プロとしてそれを続けられるとは思わない方がいいよ。私はそんなこと思ってない。ただ悲しいだけ。

このメタファーは前に聞いたことがあるけど、あまりうまくいかないと思う。まず、バンドソーのような電動工具はケンタウロス技術だと思う。私、人間がケンタウロスの上半身。工具が私の指示で動いて、作業を早く(あるいは場合によっては全く)手伝ってくれる。GenAIツールは逆ケンタウロス技術だね。アルゴリズムがほとんどの作業をやってくれる。私はケンタウロスの下半身になって、機械が動き回ってコードを生産するのを手伝ってる。だから、大工仕事で手工具を使うことを選ぶことはあっても、電動工具を使うことに罪悪感は感じないよ。上司が私を電動工具に置き換えようとしているとも思わないし、電動工具があるからといってチームの半分を解雇されるとも思わない。ちょっと違うんだよね。

この比較はちょっと違うと思うな。大工仕事の欠点は、作るものが一つしかできないことだよね。工場の木工は、手作りではできないように同じものを何個も作れるから。出力には限界があって、出力が売上に直結するんだ。でも、コードはそんな感じじゃない。手書きのコードもAIが書いたコードも、スケールするからね。プロジェクトによってはコードを書く速さが制限になることもあるけど、もっと多いのは要件を集めることが進捗を制限するってこと。ソフトウェアは一度作ったら終わりってことはあまりないし、既存の製品を改良していくものだから。家具ではそんなことは起こらないよね。

自分で羊毛を紡いだり、布を織ったり、服を縫ったりする人もいるよね。中には、自分のアート作品を売って生計を立てている人もいるし、いいことだと思う!好きなことで生計を立てられるのは素晴らしいよね。でも、羊毛の紡ぎや布の織りは自動化されているし、服は大量生産されている。手作業でやる熟練の職人もいるけど、テキスタイル生産の良い仕事の大半はデザインや機械・工場の管理、営業や流通にあるんだ。

ねえ、家具がどうやってデザインされて作られるか知ってる?ソフトウェアがどうやってデザインされて作られるかも知ってる?このコメント、どこから来てるの?それに、みんなこれに賛同してるの?友達が「AIはもうすぐ人間の手を借りずに自分を改善する!」って言ってるのをリポストしてたんだけど、LLMがどうやってチップをデザインして製造し、そのチップを使うコンピュータを作り、さらにそのコンピュータを何千台も収容するデータセンターを作るか想像できるか友達に聞いてみたけど、全然返事がなかった。みんな視野が狭いのに、次々と大胆な主張をしてるよね。これがバブルの兆候じゃないなら、何がバブルなんだろう。

生産性についてはまだよくわからないな。前回LLMにライブラリを生成してもらったとき、数秒でできたけど、その結果をレビューして修正するのに一日かかった。同じくらいの時間がかかったよ、ゼロから書くのと。

仕事に合ったツールを使ってるなら、LLMはちょっとしたオートフィリングやクイックなスクリプトを書く以外ではあまり役に立たない気がする。仕事ではLLMをたくさん使ってるけど、半分はJavaみたいな面倒なツールや、パフォーマンスの理由もないのにC++でウェブバックエンドを書くことを強いられてるからなんだ。

このアナロジーが成り立たない理由は、ツールは通常一つのことを極めて得意に、そして非常に信頼性高く行うからだよね。テーブルソーを使うとき、あの板をこの場所で正確に二つに切るって分かってるし、毎回同じように切れるって確信してる。AIに一つのことだけをやらせて、それを極めて得意に、かつ信頼性高くやらせることはできないんだ。いろんな意見があるけど、AIが本当に解決している問題があるかどうかは非常に議論の余地があるよね。コーディングが本当にボトルネックだったのか?盛り上がりはすごいし、導入も急増してるけど、実際に生産性や品質が向上している証拠は一切ないんだ。むしろ、研究が進むにつれて、AIを使うことでスピードや品質が下がるって結果が出続けてる。

俺は、長期的に見て最も良い結果を出せる方法を選ぶよ。5~10年のスパンでね。それは主にneovimを使って手作業でやること。コードを打つプロセスが、プロジェクトへの理解を深めて、未来の機能をより早く提供できるようにしてくれるんだ。プロジェクトを深く理解することに投資すれば、長期的には主にLLMプロジェクトを超えるスピードが得られると確信してる。学びや深い理解に繋がらないタスクはLLMに任せるつもりだし、そういうタスクはめちゃくちゃ多いから、LLMの使用頻度はすごく高いよ。

Hacker Newsで議論の続きを見る