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

コーディングを学ぶことは今でも価値がある

概要

AI時代 においても プログラミング学習 は依然として価値がある 職業的メリット だけでなく 教育的意義 が重要 メタスキル創造性 の獲得が可能 コード は現代社会の基盤であり 表現手段 でもある 学ぶことで 世界を変える力楽しさ を得られる

コードを学ぶ意味と価値

  • AIやvibe coding の時代においても、 プログラミング学習 の意義は失われていない現状
  • 「learn to code」 というフレーズは 職業的成功の近道 としては語られなくなった現実
  • JavaScript などで簡単なコードを書けるだけでは 高収入保証 にはならない現状
  • 数学、文学、科学、リベラルアーツ と同様に、 教育的価値 が本質であること
  • プログラミング を通じて得られる メタスキル (デバッグ、構成力、論理的思考)の重要性
  • 何事も学べる という自己効力感の獲得
  • コンピュータサイエンス出身者 が多分野で活躍する理由の一端

Seymour PapertとMathlandの教訓

  • Seymour Papert による「 Mathland」という教育思想
  • LOGO言語 を使い、子供が 探索的に数学 を学べる環境の構築
  • 母語習得 と同様に、 自然な学びの場 で成長できる仕組み
  • プログラミング を通じて 数学嫌い が克服できた体験談

コードは創造的表現手段

  • コーディング文学や音楽 に匹敵する 豊かな創造的活動
  • 数学的厳密さ即時フィードバック が組み合わさった 独自の楽しさ
  • 魔法の呪文 のように、 思考を正確な言語 に落とし込み現実化できる点
  • 法学 と同様、 コード は社会の基盤であり、 一行で世界を変える力 を持つ
  • e=mc2 や「 we hold these truths to be self-evident」のような 精緻な言語 の力

プログラミングの楽しさと普及の夢

  • プログラミング は単純に 楽しい活動 であり 喜び をもたらす
  • 普遍的なコードリテラシー の夢は AI時代 でも生き続けている現状
  • 学びたい人 への積極的なサポート姿勢
  • LLM(大規模言語モデル) の登場後も、 人文学 同様に コードの意義 は不変
  • コードを学ぶこと で得られる 自己表現力世界を変える可能性

Hackerたちの意見

コードは文学や音楽と同じくらい豊かな創造的表現の美しい形だよ。今やってることは、何かを作ることなんだけど、LLMを使ってコードを書くのは避けてる。相談には使うけどね。Dota2のトーナメントマッチを集約するアグリゲーターをElixirで作ってるんだ。トーナメントのストリームを取り込んで、時系列で整理して、連続して見るのが楽になる形式にしてる。YouTubeでシリーズの動画を取り込むのが難しいからさ。作ってる理由は…プログラミングが好きだから。何かを作るのが好きなんだ。LLMを使うと知的に怠けてしまう気がして、そうやって作るのは満たされない。作りたいんだ。作りたいというのは人間らしいことだよね。

作りたいんだ。作りたいというのは人間らしいことだよね。人間が感じることはすべて人間らしい。作ることでも作らないことでも、どっちでもいいんだよね。作り方には好みがあるし、みんなそれぞれで全然問題ないと思う。プログラミングは結局、すごくクリエイティブな取り組みだってことを多くの人が忘れがちだよね。ちょっと物議を醸したいなら、プログラムを作ることは橋を作るよりも絵を描くことに近いと思うよ、良い面も悪い面も含めて。

Dota2でstratzやopendotaを使ってマッチ集計をたくさんやったよ。めっちゃ楽しいし、データがたくさんあるからプログラマーとしても成長できるよ。

コードを学ぶってのは、問題を理解して、それを小さくて管理しやすい部分に分解して、また全部を組み立て直すことだよ。デバッグもね。より良い指標に向けて反復していくこととか。これらは他の「問題解決」の分野にも応用できる、すごく価値のあるスキルや考え方だと思う。

スティーブ・ジョブズは、誰もがプログラミングを学ぶべきだと言ってた。なぜなら、それが考え方を教えてくれるから。

そうだよね。コーディングを知らないなら、ただプロンプトを知ってるだけで、良い解決策とそうでないものの区別がつかない。できるのはモデルに解決させることだけ。良いAPIを設計する方法や、システムをモジュールに分ける方法も分からないしね。問題は、多くのマネージャーが良いプログラマーと「雰囲気コーダー」の違いを本当に見分けられないことだと思う。雰囲気コーダーはたくさんのPRを出すけど、彼ら自身も雰囲気コーディングしたPRを出してるかもしれない。プログラマーが自分たちよりも優れているかもしれないという考えが嫌いなんだよね。

これだね。LLMが登場する前から、プログラムを自分で書かない限り、本当に理解することはできないってことはよく知られていたよ。これにはショートカットはないんだ。

噂だけど、LLM以前に特に優れた開発者じゃなかった人たちが、今でもフラッグシップモデルを使っても悪いコードを生み出してるみたい。良いアーキテクチャや一般的なプラクティスのしっかりした知識や理解が重要だと思うし、今当たり前に思ってる基礎知識や直感が、実は経験が少ない頃に多くの時間と努力をかけて学んだものだってことを忘れがちだよね。

これ、100%同意だわ。いつも観察してるけど、LLMは力を倍増させるけど、正しい質問をしない人やニュアンスを理解してない人は、結局悪いコードを生み出しちゃうんだよね。それがただ増幅されるだけ。今のモデルはそれを避けられないと思う、特に人間が生成したデータに基づいてるから。

もし間違ってたら教えてほしいんだけど、AIエージェントって主に開発の外側の層で行われているコーディングを置き換えてるんじゃない?つまり、エンドユーザー向けのアプリケーション、アプリ、ダッシュボード、ビジネスアプリケーションとか?この「外側の層」では、99%の精度や膨れたコードでも許容できるかもしれない。雰囲気で作られたアプリは「十分良い」と言えるかもしれない。(それでも、AI導入後のMicrosoftアプリの惨状を見てみて。)でも、重要なコンパイラやフレームワーク、ツール、ライブラリでは、みんなLLMから距離を置いてるよね。本当に頼りにするためには、99%の精度や膨れたコードの上に構築したくないし、AIがコーディングしたウェブブラウザも使いたくない。良い建材を作るには、自分でコードを書いて、何をしているかを理解する必要がある。そんな重要な分野で、誰がコーディングをフェーズアウトしようとしてるの?

最近のブンの論争は、別のストーリーを語ってるんじゃない?

この手のコメントは、過去に書かれた人間のコードに、今まで持っていなかった質を与えてるよね。「99%の精度や膨れたコードの上に構築したくない」って、友達、Windows使ったことある?

Hacker Newsで議論の続きを見る