トラック1・📜プログラムとは何か

なぜ最初にC言語なのか

読む目安 約12分・ゴール:AI時代にC言語を最初に学ぶ意味を、自分なりの理由として持てるようになる

アプリでこのトピックを学ぶ(無料・登録不要)

このトピックの要点

「最初はPythonのほうが簡単だと聞いたのですが」——もっともな疑問です。正面から答えます。

結論から言えば、簡単さで選ぶならPython、理解の深さで選ぶならCです。そしてこのポータルは、後者の道を選びました。理由は3つあります。

理由1: Cは仕組みを隠さない

多くの新しい言語は、面倒な部分を親切に肩代わりしてくれます。メモリの確保も解放も、型の変換も自動です。ありがたいのですが、裏返せば何が起きているか見えないということでもあります。

Cは肩代わりしてくれません。メモリを自分で確保し、自分で返す。数値の大きさも自分で決める。手間はかかりますが、コンピュータの動き方が全部見えます。遠回りに見えて、実は近道なのです。他の言語を後から学ぶとき、多くの人がつまずく「参照とコピーの違い」「型の話」を、あなたは既に体で知っていることになります。

理由2: AIの土台はCでできている

意外に思われるかもしれませんが、AIブームの足元を支えているのはC/C++です。

Pythonは操縦席、Cはエンジンルームです。操縦だけを覚えるのか、エンジンの仕組みも知るのか。どちらが長く効くかは、考える価値があります。

理由3: これからの人間の仕事は「書く」より「見抜く」

コードを書く速さでは、もう人間はAIに勝てません。

アイワタシは1秒で100行書けマス。……でも、それが正しいかを決めるのはアナタです。

AIが出したコードを読み、危ないところを見抜き、責任をもって世に出す。これがこれからの人間の役割です。そして見抜く力は、機械が何をしているかを知っている人にしか身につきません。

Cは、隠しごとのない言語です。ここで「機械の気持ち」が分かるようになれば、どんな言語のAI生成コードを見せられても、怪しい箇所の匂いが分かるようになります。第6部では、実際にAIの書いたコードを採点する訓練をします。

ビット安心して。この道場は、いきなり難所には行かないよ。まずは考え方から、ゆっくりね。

心配しなくてよいこと

「Cはメモリの扱いが難しくて挫折する」という話をよく聞きます。これは半分本当で、半分は教え方の問題です。準備なしで難所に放り込まれるから折れるのです。このポータルでは、まず機械の仕組みを見て、次に思考の道具を持ち、メモリは図で1歩ずつ確かめてからプログラムを書きます。順番さえ守れば、あの難所は「ちょっと変わった郵便の仕組み」くらいの話になります。

もちろん、Cがすべての場面で最良の言語というわけではありません。用途によってはPythonやRustのほうが適切です。ここで学ぶのは1つ目の言語としてのC、つまり土台としての価値です。

アプリでこのトピックを学ぶ(無料・登録不要)

確認問題

確認問題 1

本文が挙げる「Cは仕組みを隠さない」ことの利点として、最も適切なものはどれでしょう。

  1. メモリを自分で確保して自分で返すぶん手間はかかるが、コンピュータの動き方が全部見える。他の言語で多くの人がつまずく「参照とコピーの違い」や型の話を、先に体で知ることになる
  2. 隠していないぶんコードが短くなり、他のどの言語よりも速く書き上げられる
  3. 隠していないので、書き方を間違えてもコンパイラが必ず自動で直してくれる
  4. メモリを自分で管理しなくてよいので、事故がまったく起きない
答えを見る

正解:A(メモリを自分で確保して自分で返すぶん手間はかかるが、コンピュータの動き方が全部見える。他の言語で多くの人がつまずく「参照とコピーの違い」や型の話を、先に体で知ることになる)

Cの利点は「遠回りに見えて実は近道」という点にあります。手間を肩代わりしてもらえないぶん、何が起きているかが全部見えるからです。Cのコードはむしろ長くなりがちなので2つめは誤りです。コンパイラは誤りを指摘することはあっても意図をくみ取って直してはくれません。そしてメモリを自分で管理するのがCなので、最後の選択肢は説明が逆さまです(だからこそ事故を防ぐ作法を学びます)。

確認問題 2

「AIの土台はCでできている」と本文が述べる根拠として、挙げられているものはどれでしょう。

  1. Pythonの機械学習ライブラリの計算部分、GPUを動かすCUDA、手元でモデルを動かす llama.cpp、電池で動く機器のエッジAI
  2. AIの学習に使う文章データが、すべてC言語で書かれているから
  3. AIはC言語のコードしか出力できないから
  4. PythonのプログラムはAIが1行ずつ翻訳して実行しているから
答えを見る

正解:A(Pythonの機械学習ライブラリの計算部分、GPUを動かすCUDA、手元でモデルを動かす llama.cpp、電池で動く機器のエッジAI)

本文は「Pythonは操縦席、Cはエンジンルーム」という比喩で、AIブームの足元を支えているのがC/C++であることを4つの例で示しています。学習データは自然言語や画像であってC言語ではありません。AIは多くの言語のコードを出せますし、Pythonを実行しているのはAIではなくインタプリタです。

「プログラムとは何か」の目次

  1. コンピュータは何をする機械か
  2. プログラムとは「手順書」である
  3. ソースコードから機械語へ——コンパイルの旅
  4. CPUとメモリの模式図
  5. 命令実行サイクル(Fetch-Decode-Execute)
  6. プログラミング言語の地図とCの位置
  7. なぜ最初にC言語なのか
  8. 0と1ですべてを表す——2進数の入口

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版の販売ページは準備中です。

ほかのトラック

📚 姉妹教材:手を動かして覚える Linux 教材 — Linuxとインフラの仕組みを地図で学ぶ

Web版