プログラマ遍歴

一応職業的にはウェブデザイナということにしているが、学生の頃はがっつり情報系の道を歩んでおり、デザインよりもプログラムを組んでいる方が得意だったりするわけだが、自己紹介がてらそんなプログラマ遍歴的な何かをナニすることにする。

小中学生時代

あれが小学生だったのか中学生だったのかはもう覚えていないが、当時不登校児だった俺は、そういう子供のためのスクールに通っていた。日夜「スネーク」という、徐々に伸びていく線を壁や自分自身に当たらない様に操って高得点を目指すゲームに精を出し、そのゲームが高得点を出しすぎるとイラストの女の子が脱ぐものだという事実がわかった途端、スクールの先生に消されるという事件もありつつ、そのかたわら、亀のアイコンの日本語プログラミングのアレ(名前忘れた)で、なんか単純なゲームを作って遊んでいた覚えがある。
また、父が会社でいらなくなったPC98機を家に持って帰ってきてからは、Basicでランダムに縁を描くだけの、なんかビデオカードベンチマークテストでよくありそうなアレを作って遊んでいた。中学の技術科の授業もBasicだったため、あまり楽しくなく、平行して関係ないプログラム組んでは怒られてた気がする。
そういえば、母が従兄弟からもらってきたポケコンでもBasicを組んでたような気もする。ちなみにその頃からGOTO文に違和感を感じていた。

高専時代

高専に入ってからは、授業でC言語を教わるようになり、でもやっぱ大人数向けの授業は面白くなく、勝手にコードをカスタマイズする日々が続いたり続かなかったりラジバンダリ。そうかと思えば、少し高度な話になるとついていけず、いわゆる自称中級者の位置をウロウロしてる状態だった。
VisualC++とかが全く理解できず、なぜかCUIで双六ゲームを作ったのもいい思い出。
唯一誇れるところといえば、ポインタを理解するために努力しまくったため、そこそこポインタには強いし、なんというか、あれ楽しいよね?今ではもう忘れてるけど。

大学生時代

高専から大学の3年次に編入し、インドア派な自分を変えようと学園祭実行委員になり、ポスターのデザインしたり、学園祭室に入り浸ったり、結局準インドア派から逸脱できずに一年を過ごしたのち、開発系研究室に配属。そこでは衝撃的な出会いがまっており、自分の中ではその出会いがプログラマとしての道も選べるようになったキッカケなんじゃないかと思えるほど。その出会った相手というのがJavaオブジェクト指向という考え方にいたく感動したのだ。ちなみに念のためいっておくが、JavaScriptなんて軟弱なものではなくオブジェクト指向としてのJavaですのであしからず。
高専時代に一度Javaを触ってはいたのだが、オブジェクト指向という考え方が全くわからず、担当教官もプログラマじゃないので、わからないことをわからないまま卒業してしまい、その未来にイマイチ実感が持てなかった。しかしここでは周りがみなプログラマだし、いい書籍も読み放題だったので、サクッとCoreJavaを読み干し、Javaマンセー状態になった俺は、docomoiアプリとしてライフゲームを作ってたり、なんかよくわからないものを作ってみたりしていた。ちなみにiアプリで使えるJavaには確かコレクションクラス?が実装されておらず、その際必要だった最低限の機能を持つなんちゃってコレクションクラスを実装したりして、悦に浸ってた。
ちなみに、Linuxに夢を感じたのもこの時代。

大学院時代

最終的には修士課程を半年延長して、結局中退したという、ダメ人間真っ盛りだった院生時代。精を出した事といえば、写真部で写真撮りまくったこと。悔いが残ることといえば、リア充生産サークルの異名を持つこの写真部でも彼女ができなかったこと。マジこの恵まれた環境で彼女できないとか、ある種の「一生独身宣告」と考えてもいいレベル。
そんなことはともかく、中退したとはいえ、多少は研究も行なっており、そこで主に組んでいたのが再びきましたC言語。しかも、複数のARMデバイス上で分散的に実行するため、クロスコンパイルやらネットワークプログラミングなどを習得していった。また、そのARMデバイスが、組み込み用途のMontaVistaLinuxを搭載したマイコンだったために、普通のLinuxにはあるコマンドやCライブラリなどがなく、ソースからカスタマイズしてビルドすることも覚えた。本気でLinux自宅サーバーを立て始めたのもこの頃。ちなみに、MPIは未だによくわかりません。

社会人時代1

小さいプロダクションに紙ベースのデザインを行う予定で就職し、なまじウェブに強いもんだからとウェブ全般の制作担当のママ、倒産まで居つづけた時代。
Flashは使えたが、簡単なAS2しか経験がなく、いろいろ試行錯誤しつつ、二年ほどかけてAS2を習得する。本職はウェブデザイナなので、習得ペースが遅いのはご愛嬌。

社会人時代2

前社が倒産によりなくなった際、その社長が昔勤めていたプロダクションに手を差し伸べてもらい、会社ごと吸収されるような形で実質転職を行なったのだが、結局吸収なので、仕事内容とかまったく変わらず、もんもんとした日々を過ごす。あまりに変わりばえがなく、しかしウェブ制作担当が一人になってしまったこともあり、効率と暇つぶしから、AS3の勉強に乗り出す。はじめは当時流行り出したAIRで、当時流行り出した複数のTwitterミニブログクロスポストをする「Shout」というアプリケーションを開発し、数名のユーザーを得るも、飽きたという理由で開発を終了。その後、仕事で汎用性のあるFlashを作らねばならず、これは好機とばかりにAS3で実装。しかし、AS3向けのデザインパターンを学んでいない俺は、あまりに冗長な、もう管理も面倒臭くなるくらいにクラスファイルの多いコーディングをしてしまう。ちなみに、FlashPlayer10で動作させることを前提に作ったはいいが、依頼者の環境がFP8だったため、作り直せとクレームを受け、「FP10のシェアは97%を超えており、一般的に閲覧に問題はありません。しかもFP8とかセキュリティ的にも問題があるので、つい最近会社的に制作は行わない方針になりました。(ぶっちゃけ、作り直すのめんどいから、FP8対応にしたかったら時間と金くれ)」という話にして、回避したのもいい思い出。
ウェブ制作担当が俺しかいないという成長のしようがない環境にうんざりし、颯爽と転職を決意する。

現在

大企業とか、なんか制限ばかりで面白くなさそうなので今まで避けてたけど、小さなプロダクションはピンキリが激しすぎて、ハズレひくと時間の無駄にしかならないことに気づき、試しに大企業への転職を成功させる。ウェブデザイナとして。
しかし、新設部署であるため、小さなプロダクションと大差なく、大企業の制限もついてきてて、それどころかウェブデザインすらやらせてもらえてない環境が続く中、とりあえずストレス発散のために取り掛かったのが、AIRでのアプリケーション開発とJavaScriptの勉強である。頑なに避けてきたJavaScriptではあるが、GoogleウェブサービスのほとんどがJS前提となっていたり、ナウいブラウザのほとんどがJSの実行速度の速さに気を使っていたりして、JSが一般に受け入れられつつあることに気づくや否や、jQueryをベースにJavaScriptの可能性を探るようになった。特に、ajaxによる動的なページ生成には夢を感じており、もうなんでもかんでもXMLにデータ書き込んで、それ読み込んで表示してれば良くない? って境地に達しつつある。
また、仕事で大量の既存ページを一括処理しないといけない事例があり、某Hachioji.pmの参加者でもあることから、Perlの勉強も始めた。簡単なものはサクッとスクリプトくんで処理する日々が続いている。

まとめ

そんなわけで、ここ十数年のうちに

といった言語を学んできたことになる。身についているのはごく一部だが、正直ウェブデザイナにしては多い方だと思う。あたりまえか、元プログラマ系学生なんだし。あくまでウェブデザイナとして、あまりシステムよりのことは避けてきたつもりではあるが、やはり今後のことを考えると、PerlPHPなどのサーバーサイド言語もちゃんと勉強しておくべきな気がしている。
いつか自分でサービス考えて、自分でウェブデザインして、自分でコード書いて、一人でぼろ儲けすることを夢見て(ぇ