「最初はPythonのほうが簡単だと聞いたのですが」——もっともな疑問です。正面から答えます。
結論から言えば、簡単さで選ぶならPython、理解の深さで選ぶならCです。そしてこのポータルは、後者の道を選びました。理由は3つあります。
理由1: Cは仕組みを隠さない
多くの新しい言語は、面倒な部分を親切に肩代わりしてくれます。メモリの確保も解放も、型の変換も自動です。ありがたいのですが、裏返せば何が起きているか見えないということでもあります。
Cは肩代わりしてくれません。メモリを自分で確保し、自分で返す。数値の大きさも自分で決める。手間はかかりますが、コンピュータの動き方が全部見えます。遠回りに見えて、実は近道なのです。他の言語を後から学ぶとき、多くの人がつまずく「参照とコピーの違い」「型の話」を、あなたは既に体で知っていることになります。
理由2: AIの土台はCでできている
意外に思われるかもしれませんが、AIブームの足元を支えているのはC/C++です。
- Pythonの機械学習ライブラリの計算部分は、ほぼC/C++で書かれている
- GPUを動かすCUDAはC言語の拡張
- 手元のPCで大規模言語モデルを動かす llama.cpp は、名前のとおりC++製
- 電池で動く小さな機器にAIを載せる「エッジAI」の現場は、今もCが主役
Pythonは操縦席、Cはエンジンルームです。操縦だけを覚えるのか、エンジンの仕組みも知るのか。どちらが長く効くかは、考える価値があります。
理由3: これからの人間の仕事は「書く」より「見抜く」
コードを書く速さでは、もう人間はAIに勝てません。
AIが出したコードを読み、危ないところを見抜き、責任をもって世に出す。これがこれからの人間の役割です。そして見抜く力は、機械が何をしているかを知っている人にしか身につきません。
Cは、隠しごとのない言語です。ここで「機械の気持ち」が分かるようになれば、どんな言語のAI生成コードを見せられても、怪しい箇所の匂いが分かるようになります。第6部では、実際にAIの書いたコードを採点する訓練をします。
心配しなくてよいこと
「Cはメモリの扱いが難しくて挫折する」という話をよく聞きます。これは半分本当で、半分は教え方の問題です。準備なしで難所に放り込まれるから折れるのです。このポータルでは、まず機械の仕組みを見て、次に思考の道具を持ち、メモリは図で1歩ずつ確かめてからプログラムを書きます。順番さえ守れば、あの難所は「ちょっと変わった郵便の仕組み」くらいの話になります。
もちろん、Cがすべての場面で最良の言語というわけではありません。用途によってはPythonやRustのほうが適切です。ここで学ぶのは1つ目の言語としてのC、つまり土台としての価値です。