読者です 読者をやめる 読者になる 読者になる

the industrial

都内で働くITエンジニアの日記

プログラマの作り方



先日の話。

会社にて打ち合わせをしているとき、「そういえばこれって個人情報的にどうなんでしょうね?」と、「個人情報保護士」の資格を持つ同僚に聞いた。

その方とは「個人情報保護士」の資格を取られる前から知っており、そして帰って来た答えには説得力があった。

そのとき初めて「あ、資格を取る前とは違って、専門家になったんだなあ」と、妙に関心してしまった。


2014年1月24日。
日付は既に変わってしまったが、ついに31歳になってしまった。

せっかく誕生日を迎えたので、今日は「専門家っていいな」という話も含めて、自分にまつわる事をぼやこうと思う。


最近、Scalaが本当に楽しい。

僕の職業はプログラマなのだが、幾数多のプログラマの例にもれず、初めはプログラムを描いて書いて動かすことが好きだったはずが、いつしかそれはただお金を稼ぐための商売道具になり下がっていた。

そんなことを、最近Scalaを初めてから振り返り、思えるようになってきたのだが、そういえばなぜプログラムを始めたのか、なぜ僕がプログラムをやっているのか、今まで振り返った事なかった。

当時17歳。

高校2年生の僕は、文系・理系・情報処理という3つの選択肢の内、迷わず情報処理コースを選んだ。迷わずの所に理由は特に無い。一つ理由を挙げるとすれば、パソコンを触れる授業があったくらいだ。
ただテレビゲームが好きな僕は、少し違うがそういったコンピューター関係に興味が有ったからと言えば、納得か。
初めて書いたプログラム言語はBASIC。”IF ~ THEN ~”という条件分岐を習い、なんとなく座標を指定して線や円を画面上に映すといった事を独自に調べて実行してみたりした。
(最近の高校生の情報処理授業ではJavaなんかをやっているのだろうか)

そして18歳。

家が貧乏で(と書けばただの言い訳なんだが)大学には受験をさせてもらえる機会さえなく、高校卒業後は途方に暮れていた。
とりあえず日雇いのアルバイトをして少ない給料をもらってはゲームばかり買い、とにかく何もしていなかった

それでも人は少なからずどこかに向上心があるようで
日雇いではダメだ→
ゲーム好きなら、ゲームセンターの店員なら続くんじゃない?→
アルバイトリーダーに任命された!→
もっとお金を稼ぎたいな!→
友達が働いている包装資材(お魚を乗せるトレイ等)の問屋さんで働こう!→
月3000万円の商品を動かせるようになったぞ!
と、それなりに成長をしてきた。

しかし、地元の小さな小さな会社で働いていた僕は、「もし、このままここでずーっと働いていると、将来どうなるのだろうか?ただのつまらない男で終わってしまうのではないか?」と、伊坂幸太郎の「砂漠」よろしく、ただ漠然とした不安を抱えてた。

そんな時、ふと、真っ暗な画面に浮かび上がる白い文字で、”IF ~ THEN ~”という高校の時にほんのちょっとだけならったBASICの事を思い出した。

これだ。
「IF もしこのままだと THEN つまらない男のまま」というプログラムに、「ELSE」を追加したわけだ。

IF   もしこのままだと
THEN つまらない男のまま
ELSE  でも、ここで少し頑張って起動をずらせば?

これが、プログラマとしての一歩だ。
プログラムを書いた分けでもなく、システム会社に入社した訳でもない。
「そう思った時に既に始まっていた」と、僕個人は思っている。

プログラミングはおろか、業界がどんなものかさえ知らない。パソコンなんてろくに扱ったことのない僕、いや、むしろパソコンさえ持っていなかった僕は、携帯電話のi-modeで転職サイトを見ては、未経験からでも何か出来ることはないかと必死に、プログラムについての"何か"を探したと思う。

それでも当時、泉岳寺にあった小さな小さなSI業を営む会社を見つけた。

忘れもしない、2006年4月13日。
当時23歳。

「未経験者歓迎!3か月のプログラム研修!」という今思えば、ブラック企業のにおいがプンプンするようなこの文句に惹かれて入社。
(しかし、3カ月勉強しながら給料ももらえるのは、今思えばとてもありがたいことだと思う)

4月1日入社ではないのは、1カ月ごとに数十人を雇うような会社だったので、4月の過渡期には月に2回の入社日があり、同じ月に入社したにも関わらず一年次上の先輩がいるという意味不明な会社だった。
(やはりブラックな臭いが漂う会社だ)

初めの2~3日はビジネスマナー研修であったと思う。メールのBCCさえ分からない僕にとっては、すべての事が新しく新鮮だ。

そしてついに始まるプログラム研修。

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

これが、当時初めてみたプログラム。よくあるJavaHello Worldだ。
こんな単純なプログラムさえまったく理解できなかったのが懐かしい。

「この}までちゃんと書かないといけないんですか?」と質問したことを鮮明に覚えている。
試しに、}を一つ削除してみた。

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");

}

非常に気持ち悪い。そう思えるほど、当時よりは成長している。

一文字一文字にちゃんと意味があり、一文字でも欠けたら動かないという、それはさながら工場マニアが工場のソレを想うがごとく、プログラムの美しさを知った。

それからの研修は、本当に自信を打ち砕かれるほど難しいことばかりで大変だった。
IEの使い方(フラッシュが動かない=インストールしてないから等)。
Javaのインストール。
パス・ディレクトリの概念。
などなど、覚えることが多すぎて、毎日が一瞬で終わっていたと思う。

研修も終わり、同期の仲間が次々と現場に入場(出向のようなもの)していっても、僕だけとりのこされては、自習の毎日。

やっと初めての現場に入場したかと思えば、PeopleSoftというJavaでさえ無いまったく未知のプログラム言語をやらされたり。

それが、今ここでこうしてブログを書いている人間の、プログラマとしての2つ目の始まりだ。

そして31歳現在。

相変わらずプログラムの腕は上達しないが、仕事自体はそこそこ出来ていると自負している。
それこそ、プログラムの事を知らない人から見ると、「専門家」になるんだろう。

プログラムの知識や経験などは上を見ればキリがない。
キリは無いが、Scalaとの出会いをきっかけに、プログラムを金儲けの道具だけに有らず、僕はその「専門家」として、今誇りを持ってScalaの勉強に取り組もうと思う。

最後に、将来に悩む人に言いたい。

「そう思った時には既に始まっているのだよ」