実務ノート ・ 2026-03-03 ・ 4 min read
高校時代のC言語を再コンパイル。「ハノイの塔」から再確認した基礎の大切さ
この記事について
PC内の古いファイルを整理していたところ、懐かしいものを見つけました。高校時代のプログラミング実習で書いた、C言語のソースコードです。
題材は、再帰関数の理解に欠かせない 「ハノイの塔」。当時は理解するのに必死だったコードを、十数年ぶりに動かしてみることにしました。
最新環境ではそのまま通らない
いざコンパイルを試みると、いくつかエラーに直面しました。原因は主に次の2つです。
- 当時は許容されていた 古い記述 が、現在のコンパイラでは警告・エラーになる
- 必要な ヘッダの読み込みが不足 している(暗黙の関数宣言が通らなくなっている)
当時の環境では動いていたコードが動かない、というのは、言語仕様とコンパイラが積み重ねてきた変化をそのまま体感する作業でした。最新の仕様を調べつつ、自力でデバッグを繰り返します。
一つひとつエラーを潰し、無事にプログラムが動いて円盤が画面上を移動していく様子を見たとき、当時の達成感が鮮明に蘇ってきました。
実際に動かしたものはこちらにまとめています: https://tech-blog.enprocode.com/lean/hanoi
C言語は今も「本質を学ぶ最良の教材」
今回の経験で改めて気づいたのは、C言語はプログラミングの本質を学ぶための最良の教材である ということです。
最近のモダンな言語は高度に抽象化されており、非常に便利です。書きたいことをそのまま書けば、裏側の仕組みを知らなくても動きます。
一方でC言語は、メモリ管理やスタックの動きなど、コンピュータが「どう動いているか」をダイレクトに意識させてくれます。 ハノイの塔のような再帰処理は、まさにスタックが積まれていく様子をコードで追体験する題材です。
エラーと格闘しながら論理を組み立てるプロセスは、どんなに技術が進歩しても変わらない 「エンジニアとしての地力」 を養ってくれるものだと痛感しました。
効率化の時代だからこそ
「動けばいい」だけでなく、その裏側にあるロジックを理解すること。
生成AIによってコードを書く速度が上がった今、価値が移っているのは 出てきたコードが正しいかを判断できる力 のほうです。その判断を支えるのは、結局のところ基礎知識にほかなりません。
効率化が求められる現代だからこそ、こうした「基礎」に立ち返る時間は、仕事の質を高めるための貴重な投資になると感じています。