学生のうちにプログラムを書き始めると言うこと

最近、といってもずいぶん昔からだが、プログラマは使い捨てという概念がある。35歳定年説ってやつだ。まさに使い捨てである。定年って事は、それ以上進まないって事を意味している。つまり、プログラマはどんなにがんばったって35歳までしか仕事が無い事になる。コンパイラがどのように動いているかの知識は必要なく、どのようにメモリ上でロードされているか分からなく、OS層の事なんかぜんぜん理解していない、とかいった人たちが世間一般で言われているプログラマである。人海戦術として手作業のみこなすといった、きわめて単純作業のみの仕事に限定されているらしい。そもそも、計算機として捉えたコンピュータの内部でどのような流れ(OSとの連携といった大きい面から、スタック(関数の呼び出しの順番)に積まれた変数といった小さな面まで)で動いているかは知るべきである。知っていなければ、ある一定以上の規模になってくると扱うことが難しくなる。

どうも手作業で人海戦術といったアプローチが必要なのが腑に落ちない。デバッガによる支援無しで、エディタとコンパイラで作業するなんて、慣れていなければ相当難しいはずなのに。三つ子の魂百まで、といったことわざがあるように、人間というものは最初に学んだツールの使い方をいつまで経っても貫き通すらしい。初めにエディタとコンパイラのみでプログラム構築をした人間が、統合開発環境なんてツールを使っている場面なんかほとんど見たことが無い。統合開発環境を使うメリットがどれだけのものか分からないのか、単に使い方が分からないのか。

そういったことを考えているうちに、学生のうちにプログラムを書き始めるならば、最初から統合開発環境でプログラムを書いていくといった事をおぼえておくべきなんじゃないかなと思えてくる。リファクタリングやステップ実行など、エディタのみで作業をしていたら絶対にできない事が統合開発環境を使えば簡単にできる。それでもやっぱり初めは見慣れないツールなので、使いこなすのが難しい。買ってきたソフトウェアには、書籍でのマニュアルもない。ワープロ表計算ソフトと違って、使いこなせるまでに結構時間がかかる。でも、使いこなすことができれば、スタックや変数の移り変わりなども一目で分かる。そういうツールの活用こそ、単純作業とか少しは楽になるんじゃないかなと思った。