4月は出発のシーズンで、新入学、新社会人のみなさんはさぞや張り切って毎日を過ごされていると思う。
でも5月病という言葉も聞くので、そろそろへばっていることだろうか。
いずれにしてもがんばってください。

ということで今日は、ぼくが新社会人だった頃の思い出というか、経験談というか、教訓というか、グチというか、そういうものを書いて見ようと思う。
若い方は参考になさってください。


ぼくはいわゆる就活と言うものはしなかった。
とにかくお金に困っていたので、最初はバイトでソフトハウスにもぐりこんだ。
当時はバブル景気で、コンピューター業界はとにかく忙しくて、どのソフトハウスも人を欲しがっていた。

何を隠そう、最初はCOBOLを使っていた。
今も、別にCOBOLは嫌いじゃない。
でも、会社でいきなり教えられたので、最初は少々難渋した。
まあとりあえずコンピューターとか、理屈っぽいことは嫌いじゃなかったので、一生懸命勉強した。

最初は教室のようなところで、フローチャートの描き方から習った。
いま考えると笑ってしまうが、最初はフローチャートというのがその会社の方針だった。
で、いろいろ考えて最小ステップのフローチャートを考えて提出すると、講師のAさんと言う人が「このフローチャートはプログラミングの手を抜くためのもので『本当の』構造化ではない!」と赤字で大書して、再提出を要求された。
そのあと再提出したのか、結局ウヤムヤになったのか、覚えていない。
ただ、会社っていうのは、こんなに人のやることをガッと正面切って批判するものなんだ、と、少々びっくりしたことは覚えている。

まあショックだった。
なにしろ22歳の若造が、初めて社会と対峙して、お前のやっていることは「『本当の』○○」ではない、と言われれば、誰だってショックを受けるだろう。

おかげさまで、「『本当の』構造化」について、夜ひとりで考えることになった。
考えれば考えるほど、「このフローチャートはプログラミングの手を抜くためのもので『本当の』構造化ではない」という物言いの意味が分からなくなった。

構造化プログラミングとは、ダイクストラが教育用言語Pascalとともに提唱したもので、順接、分岐、反復という3つの制御構造を使って大きなプログラムを段階的に抽象化する手法を言う。
で、なぜダイクストラがそんなことを考えたのか。
それは、分かりやすいプログラムを簡単に書くためだ。
要するに、プログラミングの手を抜くためである。
「このフローチャートはプログラミングの手を抜くためのもので『本当の』構造化ではない」と言うのは、「このチーズバーガーは空腹を満たすためのもので『本当の』食べ物ではない」と言うのと一緒だ。
もっと詳しく言ってくれないとわけが分からないよ、Aさん!

さて、そんな傷も癒えたある日、ぼくはマシン室にこもってプログラミングの練習をしていた。
当時のソフトハウスは、誰かしら一人泊まりこんでいたし、特にマシン室は「夜バッチ」のために不夜城の様相を呈していた。
ぼくはその中で一人、ジョブ制御用のコンソールを使ってプログラミングをやっていたのだ。

すると、泣く子も黙るB部長がやってきた。
このB部長という人が、見た目は優しそうなおじいちゃんなのだが死ぬほど怖い人で、いつも社内を巡回してはサボっている社員がいないか目を光らせていた。
で、B部長はコンソールに映し出されたぼくのCOBOLのプログラムを見て、あるDISPLAY命令を指差して「これは何だ!」と言った。

DISPLAY命令は文字列や変数の内容をコンソールに表示させる命令である。
Perlで言えばwarn関数でプログラムの途中経過を標準エラー出力に書き出すようなもので、要はこのとき、ぼくはプログラムのバグがうまく取れないので、ある状態の変数を途中報告するためにDISPLAY命令をはさんでいた。
これはよくやる手法であって、いわゆるdebug writeである。
ここでB部長は「こういうのはやっちゃダメだ!『自分の頭で考える』ことをしなくなる!」と言った。

ぼくはオタオタ震えながらDISPLAY命令を削除した。
B部長はそんなぼくの様子に満足げに頷くと、マシン室を出て行った。

この文章を書いていて思うのだが、20代の自分は本当に情けない。
明らかに自分よりも劣った考えの人に小突き回されて、オタオタ思い悩んでいるのである。
逆説的なようだが、こんなヘタレな姿勢では、会社の先輩にバカにされて当然であろう。

それにしても「『自分の頭で考える』ことをしなくなる!」とはどういうことだろうか。
そもそもコンピューターを導入するというのは、自分の頭で考える手間を省くために(Aさんの言葉を借りれば「手を抜く」ために)横着して機械を導入するということだ。
『自分の頭で考える』ことが大切であれば、コンピューターなんか導入しないで暗算で暮らせばよい。

いったんコンピューターを使い始めたのであれば、極限まで手間を省くべきだ。
いかにして手間を省けるか、ギリギリまで知恵を絞るのが、エンジニアの仕事であると、ぼくは若い頃から思っているし、今も思っている。
確信は年を追うごとに強まっているのだ。

上のエピソードからぼくが自分自身のために、そして若いみなさんのために提案したいことは、「本当の○○」とか、「自分の頭で考える」とか、会社の先輩のよく分からないスローガンにだまされるなと言うことだ。

コンピューター業界で有名なワインバーグの本に出てくる言葉で「スローガンは思考の代用品」という言葉がある。
思考を代用してくれるのだから、スローガンは便利なものである。
実際「人は右、車は左」などと言うのは、いちいち考えていたら危険である。
しかしながら、スローガンに疑問を持ったら、「会社の先輩の言うことは聞こう」とか「上司の言うことは従おう」と思うだけではなくて、どちらの意見が正しいのか検討を重ねるべきだと思う。

別にムキになって逆らう必要はない。
会社の先輩の方が正しいことを言うことぐらいいくらでもあるだろう。
それに、年長者を気持ち良く立ててあげるのも若い者の責務の一つである。
タテ社会の中で、いい意味での政治性を持つことも大切だ。
しかし、それとは別に、スローガンに流されずに、自分なりの主張を持ち続けることは、はるかに大切なはずだ。

まあ、これだけのことを考えさせてくれた、会社の先輩には感謝している。

Subscribe with livedoor Reader
Add to Google
RSS
このエントリーをはてなブックマークに追加