プログラマはどうやって修行するべきか? | それゆけ西表島

プログラマはどうやって修行するべきか?

以前ならいざしらず、今の企業は新卒採用も中途採用もどんどん採用基準がいっしょになってきている。採用基準がいっしょということは、その後の待遇も同じということを意味する。極端に言うと、新人教育しなくなるということだ。大手の一部は新人をみっちり研修して囲い込もうとするが、それ以外の企業は即戦力だけを求めるようになっている。


新人教育しないのであれば、プログラムやシステムについての一般的な教養を学ぶ機会は、専門学校や大学に託すということになる。だが大学もコンピュータのエクセルやワードの使い方以上の、システム寄りのことを教える学科は少ないし、専門学校でビジネス系ソフトウェアの作り方のカリキュラムというのはあまり聞いたことがない。


そもそも、大学も専門学校も、教える先生自身がどこまでソフトウェア開発に関わったことがあるのかというと、それほど経験がない場合が多い。だいたい一人でプログラムを組ませて終わりである。あまり仕事向きの教育とはいえない。


さて、企業はもう教育してくれない、という前提にたつと、プログラマになりたい人はどうすればいいのか。OJTという言葉が今でも流行っているらしいが、意味は「職場で仕事しながら自己研鑽してください。でもそんな暇あったら上司の命令を聞いて手を動かしてね」ということなので、職場で違うことするのは無理である。


プログラマがどうやって自分を鍛えるのかというと、やはり会社以外の場所で修行をするしかない。Javaの仕事につきたければ、Javaのプログラムを自分で書いて修行するしかないのである。転職する時、次の派遣先に行く時に、自分のスキルシートにどう書いてあれば相手の企業に受け入れてもらえるか、を逆算して修行に励むのだ。


修行の基本は時間の確保である。時間がないと何もできないので、どうやって時間を確保するかをまず考えないといけない。そう考えると残業でずっと張り付きという状況はなによりもまずいのである。時間さえ確保してしまえば、修行自体はどういうやり方でも構わない。自分で全部やるもよし、他人を巻き込むもよし、オープンソースコミュニティに参加するもよし、別の仕事を自分で受けるもよしである。


修行の目的は、ソフトウェアを完成させること、ではない。あくまでもそれは副次的な要素である。一番重要なのは、新しいことに挑戦して、できるだけ多くの失敗をすることである。新しいことをやって失敗せずにソフトウェアが完成したとしたら、何も新しい発見がないということである。発見は失敗からしか生まれない。失敗するというのは、思ったことをやってみたらうまくいかなかったということだ。これを繰り返すことで、その技術についての限界や特徴が掴めるのである。


会社が教えてくれないから、いつまでたってもスキルがあがらないと嘆いていても始まらない。自分で修行した分だけ将来的に返ってくると考えて、修行に励むのがこれからのプログラマとしての生き方のように思う。人材不足→時間不足→負担増→人が辞める→人材不足・・の悪循環は、企業が解消するしかないのだが・・。