プログラマーとしての0x10代の振り返りと0x20代の展望

先日、0x20歳の誕生日を迎えました。めでたい。その直前には第3子となる次女も無事誕生して、めでたい続きです。良い機会なので、プログラマーとしての歩みを始めた0x10代 (2進数で10000〜11111歳) を振り返り、最後に0x20代の展望を記したいと思います。

0x10代の振り返り

プログラミングとの出会い

10000歳は記念すべきプログラミングと出会った歳だったと記憶している。その前年からハマっていた「ぷよぷよ2ちゃんねる」のIRCチャンネル #puyo2ch で C言語の手ほどきを受けた記憶がある。きっかけはまるで思い出せない。かろうじてifやforを理解したレベルで終わった記憶がある。正直、プログラミングをやったとは言い難いレベルで終わった。

自分の書いたコードが他人に使われるという経験は、その翌年だったと思う。音ゲー関係のIRCチャンネルでCGIの人狼がかなり流行った。それを繰り返しやっているうちに、ルールを色々カスタマイズしてきたくなった。「初日犠牲者は常に村人にしたい」「全員能力者で遊びたい」とかそんなんだった記憶。そのコードはPerlで書かれていたので、興味がある素人数名でPerl+CGIの初心者本を買って読んで、苦労した。初心者なんだから当たり前だけど、エディタとかデバッグとか、とにかく基礎を何もしらないものだから、ある人は(Windowsの)メモ帳で開発してたし、半角スペースとTabと全角スペースは当然のように入り乱れてた。一度、なぜか動かなくて4時間くらい必死に調べて、とうとうわかった原因は $i を $1 とTypoしてたことだったりした。

まあとにかくメチャクチャだったけど、あのときプログラミングしたコードは間違いなく、初めての "価値がある" コードだった。

初めてのつまずき

10100歳、情報科学科に入り、C および scheme という何やら奇怪な言語でアルゴリズムやデータ構造を学んだ。後期は Java でのプログラミング演習が始まった。前半、連結リストだのハッシュ関数だのを実装した。"赤黒木" だけは難しくてよく理解できなかったけど他はなんとかなった覚えがある。そこまではまあ、及第点レベルだった。ところが、後半、「オブジェクト指向」を学ぶ段になって、完全につまずいた。

僕は、オブジェクト指向を、本当に全く理解することができなかったのだ。

なぜあの時オブジェクト指向を理解できなかったのか、これは考察したら面白そうなんだけど、今でも冷や汗が出てくる感じがしてあまり思い出したくない。

結局この授業は3回目で単位を取得した (自分はいろんな要因により2回留年している) のだけど、経過は忘れたのだがこの3回目にはオブジェクト指向をかなり理解していて、しかもかなりオブジェクト指向プログラミングに楽しさを覚えるようになっていた。経過はともあれ、この間にプログラミングを嫌いになるどころかむしろ好きになったというのは幸運だったと思う。

職業プログラマーとして

あまり深く考えずに社会人としてのプログラマーになって、丸110年の経験をした。年数に対して、特筆するほどすごい経験をしたわけではないけど、着実に積み重ねたものはあると感じている。

一方で、確実にお金をもらって仕事できるレベルにはなったけど、なんとなく、身内のヘタクソだけど目の前の10人を楽しませるコードを書いた時の気持ちを忘れてるんじゃないか、って思ったりはする。

0x20代に向けて

0x10代では、プログラミングを始め、好きになり、お金をもらえるレベルになり、相当の問題を解決する能力を手に入れた。

0x20代は、もちろん今まで以上に価値の高いコードを書いていかなければならない。そのためにも、以下のことを意識していこうと思う。

一定量のコードを書き続ける。プログラマー100011歳定年説は最近はあまり言われなくなった。少なくとも僕が111111歳になるころまでにプログラミングそのものが廃れることはないと思っている。0x20代はコードを書き続けていたい。まだまだこれからスピードをあげてレベルの高いコードを書いていきたい。
・プログラミング以外の問題解決能力を高める。逆説的だが、自分のコードの真の価値を高めるにはコード以外でも価値を出す必要があると思う。自分がコードを書く時間は限られている。コードは最後のゴールを決めるシュートみたいなものだ。最高のコードを書くためにはそれ以外の面でバックアップしてお膳立てしなければならない。
・楽しんで学び続ける。実はこの年にしてようやく新しいことを学ぶ意欲が強くなってきたと感じている。年齢は関係なくとにかく新しいことを学び続けていきたいし、その量を年々増やしていきたい。楽しまないと続かないのは分かりきってるので楽しむのは当然。

0x20代の終わりになると、一番上の子供は成人しているし、一番下の子供も義務教育を終了している年だ。その頃までに自分がどこまで行けるだろうか? 楽しみにしていきたい。

----------------------------------

追記. "目の前の10人" の 10 は何進数なのかという鋭い質問(指摘)をいただいた。白状すると想定は10進数である (念の為補足するとn進数というときのnだけは10進数で表すものである。しかしこれすらも再帰的な言及だ...) しかし、ここでいう10は別にいわゆる概数というやつである。そういう意味では10進数の10でも16進数の10でも変わらない気はする。なんなら人狼は最大ちょうど0x10人くらいでやっていたな。

noteの通貨流通量を増やしていきたい!!