俺のプログラミング遍歴

programming

小学校

日本でパーソナルコンピュータ(PC)が爆発的に普及し始めたきっかけとなったのは、Windows 95だったかWindows 98だったか。そのWindows 95が発売されるかされないかの頃に、我が家にPCが導入された。一般家庭としては、比較的早い方だったと思う。

技術職でも何でも無い両親が何故早々にPCなどを買ったのか?今から考えてみると良くわからない。多分、年賀状でも作ろうと思ったのだろう。もしかしたら、理科系の科目の成績が良かった俺の才能を伸ばそうと考えたのかもしれない。俺にはあまり定かではない。

「プログラミング」などという言葉は分からない。両親も教えてくれない。そういうものがある、ということすら知らないまま、ただPCに付属していたゲームで遊んでいた。マウスとキーボードの操作に慣れていった。ソリティアやマインスイーパは、小学生なりのスコアでクリアした。麻雀のゲームは良くわからなかった。闘技場みたいな場所でレベルを上げて敵を倒すゲームを良くプレイした。

小学校にもPCが導入された。学習用のソフトがたくさんあって、端からクリアしていった。ソフト自体は面白くなかったが、クリアすること自体が面白かったように思う。

中学校

中学の間は特に何もなかった気がする。

高校

高校生になると、行動範囲が広がり、ひとりで書店に行くようになった。自宅の近くには書店などなく、ひとりでふらっと行くような場所ではなかった。高校はバス通学だったので、途中下車して書店などに寄るようになったのだ。高校の近くにも、ツタヤのような、CD、雑誌、書籍などを売っている店があった。運動部に所属してはいたが、その実態は帰宅部に近かったのでフラフラと寄り道しながら帰るのが日課だった。

とにかく、そうやってフラフラしている時に書店で色々な本を読んだ。そのうちに、インターネットというものがある、ということを知った。自宅にあったパソコンを、勝手にダイヤルアップでインターネットにつないだ。つないだはいいが、何をしたら良いのかわからなかった。

そんなある日、友人のF田君が「侍魂というホームページが面白いよ」と言ってきた。帰宅してアクセスした。先行者というやつだ。面白かった。色々なページを読んだ。俺もホームページを作りたいと思った。書店でホームページの作り方を書いている本を買った。フリーメールのアドレスを作ったり、無料でフリーのホスティングサービスにページを作ったりした。ホームページの背景は黒。黒歴史である。

大学

懲りずにホームページを作っていた。HTMLとCSSの基本的な知識はこの頃に独学で覚えた。CSSは良く分からないまま書いていた。苦労してCSSを書いていたが、結局、あまり身につかなかったようだ。その他に、ホームページ用のメールフォームとか掲示板とかのスクリプトをほぼコピペで使っていた記憶がある。その言語は何か?と思い出そうとしても思い出せない。プログミング言語、という言葉すら知らなかったかもしれない。CGIというものはこう書けば動く、というくらいの理解しかなかったように思う。

MovableTypeや、今は亡きSerena Bech(?)とかいうブログシステムみたいなものを触り始めたのもこの頃だった。WordPressはまだ無かったか、あったとしてもMovableTypeが主流だった。プログラミングの知識がなくて手に余った。HTML手打ちが心地良かった。

研究室

就職が決まった後、「C言語のe本」「Javaのe本」を読んでプログラミングの勉強をした。CとJavaを選んだ理由は忘れた。試しに無限ループを作ってみよう!と思って無限ループを作ったら止め方が分からず、研究室の先輩に聞いたら「ctrl+Cを押すんだよ」と優しく教えてくれた。本棚を探したらまだ2冊とも手元に合った。あとで読もう。

新卒

入社して数ヶ月間、構造解析や流体解析の仕事を行った。その後、2週間ほどC++の研修を受けて、流体解析を使って鋳造プロセスの最適化を行うGUIのソフトウェアを作るジョブにアサインされた。1ヶ月くらいプロマネと2人でプロジェクトを進めていたが、途中でプロマネが辞めた。そのプロマネの上司だった中国人の管理職の方との2人体制になった直後、中国人の方がクビになった。C++歴1ヶ月の新卒ひとりでなんとかシステムを動くようにして、某自動車メーカーに納品した。その後のフォローアップもひとりでやっていたが、背中から味方がバンバン撃ってくるので「もうダメだ」と思って辞めた。

2社目

Perlでスクリプトを書いてデータ処理をすることが時々あったが、それ以外でコードを書くことはほとんど無かった。

プライベートでは、WordPressでブログを作ったり消したりというのを断続的にやっていた。WordPressは、大学時代に触っていたMovableTypeよりわかりやすい、という印象を持った。

暗黒時代

いろいろあって退職した後、Pythonを勉強し始めた。金融データの分析に興味があったのだ(2社目在籍中に大学院で修士号をとった時、そういうことを研究していた)。2社目でPerlのスクリプトを書いてデータ処理をしていた経験が役に立った。PythonはPerlよりも書きやすかった。そのうち、金融データの分析よりもプログラミングそのものに興味が移っていった。

この頃、Raspberry Piが流行り始めていた。秋葉原の近くに住んでいたし、仕事もしていなかったので、自転車で秋葉原まで行ってパーツを買っては動かして楽しんでいた。Raspberry PiはPythonが動くのが良かった。Raspberry Piでは飽き足らず、Arduinoにも手を出し始めた。どちらかというとArduinoの方が楽しくなった。

スマートフォンアプリが盛り上がっていたので、自分でも試しに作ってみようと思った。スマートフォンは、iPhone 3GS(iOS)、HTC Aria(Android)、Experia Z(Android)の順に買い換えていた。当時はExperia Zを使っていたので、実機のあるAndroidのアプリを開発することになる。Javaだ。

開発環境としてAndroid Studioが既に世に出ていたのは良かった。Android Studioではなく、Eclipseを使うことになっていたら、どこかで挫折していたと思う。ひとつ目のアプリをリリースするところまでなんとか漕ぎ付ける。ただ、JavaよりPythonを書いていた方が楽しかったこと、唯一ついたレビューがひどくて心が折れたこと、などからしばらくAndroidアプリの開発から遠ざかる。

会社を辞めた頃に始めたブログにそこそこアクセスがつくようになり、サーバーを借りて、ブログをWordPressに移行した。WordPressの中身はPHPだ。プログラミングの知識が多少なりともついていたので、MovableTypeで挫折した時とは違っていた。WordPressの中身も多少は理解できたし、自分でプラグインを公開することもできるようになっていた。

この頃、プログラミングを仕事にしたいと思い始めた。

現在

縁あって、受託開発をメインにしている会社で働き始めた。今は主にAndroidアプリの開発をしている。スタートが人より遅れた分、貪欲にいろいろなものを吸収していきたい。

このあたりの話についてはブログに書いたので、もしこれからブログラミングを仕事にしたいと考えている人がいれば、読んで欲しい。