プログラミングの壁

この記事は約3分で読めます。

この時間までお仕事。Javaのプログラムだ。GUIは無い。
Javaを始めたのは今年の5月から。今までで一番大きなプログラムを作っている。
いろいろと壁にぶつかりながら、なんとか実用までこぎつけた。
プログラムの提供先(社内の別部署)の担当者は、もちろんJavaを知らないから、動作している実物を評価してプログラムの満足度を判断する。
この担当者レベルで、先週合格点をいただいた。

それで喜んでいられたのも束の間、自分の先輩(Javaのプロフェッショナル)の簡単なレビューを受け、一気に天国から地獄へ。
簡潔に言えば、以下の通り。
・オブジェクト指向になっていない。
・メンテナンス性が悪すぎる。他の人が修正や機能追加するのが難しい。
・構造がとにかく変。
・再利用性が低い。
言われて見れば、その通りなので何も言えない。
動いているんだからいいじゃん、とは間違っても言えないのだ。
とくにこのプログラムは、今後機能拡張されまくる予定のものだから、汎用性が無いということは致命的なのだ。
このプログラムを書いてきて、同時に自分もJavaの理解を深めてきたような経緯があるので、最初の頃に書いたコードは、自分で見直して見ても不満足なものが多い。
はっきりいって、理解が足りないし、知っていることが少なすぎて、経験も少なすぎたのだ。
それは今でもそうなのだが。
とにかく、自分が駄目なプログラマであることを再認識したのだ。

ちょっと前まで「自分はプログラムが本職ではないから」みたいな気持ちが、心の片隅にあったように思う。正直言って、自分の本分はネットワークで、プログラムが書けるのはおまけだと思っていた。
でもよく考えて見よう。
ネットワークに関する技術だって、人に自慢できるほどのものか?
いや、そんなことはない。
確かにそれで食ってきたこともあるが、現場の第一線でやっている人と、第一線を引いて別のことをやっている自分とでは差があるはずだ。
そうなると、何事も中途半端になってしまうじゃないか。

もうひとつ。
とあるロケット設計の権威である技術者が、若い頃突然、会社の受付係に任命されてしまった話を思い出した。
その技術者は、今まで「世界一のロケット技術者になってやる」という気概でずっと研究してきたものをすべてきれいに捨てて、今度は「世界一の受付になってやる」と気持ちを切り替えて、見事大成したそうだ。
そしてその後、また技術畑に戻り、すごい人になったらしい。
人にきいた話だけど、本当の話らしい。

この話を思い出すたびに、自分の甘さを恥ずかしく思う。
自分は今、プログラマなのだ。へたくそでも技術が無くても、プログラマなのだ。
大学を中退して家を追い出され、明日の食べ物にも命を張っていた若い頃、やっと見つけた技術の仕事、そこで自分は何をしたか思い出せ。
あの頃は、「この職をなくしたらもう後が無い」、背水の陣だったが、それ以上に、ずっと夢に見ていた「技術職」にやっと就くことができて、この職を手放したくなかった。
毎日仕事が終わると、社長の了承を得て、毎晩深夜の2時か3時まで、会社で勉強させてもらった。もちろん勉強時間は無給で。
当時住んでいたアパートから会社まで自転車で5分という恵まれた環境だったせいもあって、ときには1週間ちかく家で眠らないこともあった。(風呂に入るためにちょっと帰るだけ)

その次の会社は、社員が5人しかいないところだった。
社長の片腕として、働きまくった。
勉強する時間は前よりも減ってしまったが、それでも、電車の中でもトイレでも風呂でもいつも参考書や本を読んでいた。
勉強のために徹夜することは稀になったが、仕事のために1週間ほど家に帰れないのは当たり前という毎日だった。
労働基準法なんてどこへいったのか、月に400時間勤務なんてこともあった。

そう、あの頃を思い出せ、自分。
決して今に満足してはいけない。
くじけようが何しようが、前に進め。

コメント