logo

アルパカログ

エンジニアになるまでの成り行きを書いてみる

なぜ自分がエンジニアになったのかを考えることは自己分析の上で役立つし、こういうことを文章にしておけば他のエンジニアを目指している人にとって一つの参考例になると思うので書いてみる。

Movable Type

Movable Typeをご存知だろうか?

Movable TypeはブログのためのCMSで、WordPressよりも歴史が古い。

私にとってのMovable Typeは、学生の頃好きだった絵描きさんのブログだった。

当時すでにブログは存在したが、基本的にはレンタルのものが多かった。

Movable Typeのように自分でサーバーを用意する代わりに、テンプレートをフルでカスタマイズできるブログは珍しかったのだ。

四苦八苦しながらレンタルサーバーを契約し、Movable Typeをインストールしてデザインを似せようとあれこれ試した。

テンプレートにはなにやらコードが書かれていたが、知識がなかったのでエラーになるばかりだった。

Perlも、CSSも、HTMLもわからず、Movable Typeは諦めてしまった。

Microsoft FrontPage

Microsoft Officeの一つにFrontPageというものがあった。

WordのようなUIで、視覚的にホームページをデザインできるソフトだ。

FrontPage の良かったところは、GUIとソースコード(HTML)画面がタブで簡単に切り替えられるところだった。

おかげでGUIで書いた内容がHTMLでどんな表現になるのかすぐにわかった。

夢中で使っているうちにHTMLが書けるようになっていった。

契約したレンタルサーバーにFFFTPでHTMLファイルをアップロードし、ホームページを公開した。

アクセスカウンターやキリ番、アクセス解析(忍者ツールズ)などを置いて、バナーを作って、オンラインゲームで知り合った人とサイトを相互リンクして遊んだ。

プログラミングの授業

情報系ではなかったが、高専に通っていたので学年が上がってプログラミングの授業が始まった。

プログラミングの授業ではC言語を使って基礎を学習した後、ソートや探索などのアルゴリズム、そしてソケット通信がカリキュラムとしてあったようだ。

「あったようだ」というのは、当時の私はプログラミングの授業にはまったく興味が湧かず、試験の点数も赤点ギリギリなくらいで内容をほとんど覚えていないからだ。

自己紹介カード生成ツール

プログラミングやその他の授業を放って何をしていたかというと、オンラインゲームにどっぷりとハマっていた。

絵を描くのが好きで、思いつきでゲームの自己紹介カードを作ってゲーム内の知り合いに見せたら好評だったことから、ゲーム内で知り合ったプログラマーのSさんと自己紹介カードを生成するWebツールを作ることになった。

Sさんがプログラム担当、私がイラスト(ドット絵)担当という分担だった。

ツールが完成して公開するととても好評で、知り合いだけにとどまらず同じゲームを遊んでいる知らない人まで使ってくれるようになった。

それが嬉しくてオンラインゲームで新しい装備が追加されるたびに新しいドット絵を描いた。

学生の私は時間が有り余っていたが、社会人のSさんはそうではなかった。

次第に時間が取れなくなり、ツールに新しいドット絵を追加することができなくなってしまった。

Sさんに聞くと、ツールはPHPというプログラミング言語で作られているということだったが、C言語しか知らなかった(そして授業も聞いていなかった)私にとってはあまりにもハードルが高かった。

オセロゲーム

ドット絵の資産があったので、それを使ってゲームを作ろうと思い立った。

もう名前は覚えていないが、C++のゲーム用のライブラリを使ってオセロゲームを作り、ダウンロード版として知り合いに配布した。

このときたくさんのことを学んだ。

ゲームで使われる画像は効率化のためにスプライトとしてファイルを用意しておくこと、オセロのAIにMin-Max法が使われているといったことだ。

オセロのAIはなかなか上手くできていて、オンラインの知り合いの一人が当時あったいくつかのオセロゲームと対戦させたところ、一番強いAIには勝てなかったが、それ以外には勝ててしまったということだった(名前は覚えてない)。

今思えば結構すごいことのように思うが、当時の私にとってそれよりも印象に残ったのは、自分が作ったもので人が喜んでくれたということだった。

続・自己紹介カード生成ツール

オセロゲームでプログラミングに少し自信が付いた私は、一度は諦めた自己紹介カード生成ツールをC言語を使って作り直すことにした。

調べてみると、C#を使えばGUIツールが作れるとのことだったので、C#を調べながらツールを作って配布した。

このときに「ボタンを押したら○○する」「ツールが起動したら○○する」といったイベント駆動のプログラミングを初めて学んだ。

ツールを使ってくれた人はみんな喜んでくれたが、以前Web上で使えたときよりも使ってくれる人は少なかった。

理由は明白だった。素材が追加されるたびにダウンロードして使うのは面倒だからだ。

続々・自己紹介カード生成ツール

やはりWeb上で使えなければ不便だということで、意を決してPHPに入門することにした。

当時の多くのレンタルサーバーではPHPが動かせなかったが、XREAというレンタルサーバーではPHPが動かせるらしいということを知った。

PHPを有効にするための設定や文字コードの設定に苦戦した(UTF-8って何?という状態)が、なんとかPHPが動くようになった。

その後、ImageMagickというライブラリを使えば画像を合成できるということを知り、なんとかWeb版の自己紹介カード生成ツールを公開することができた。

どのくらいの期間がかかったか覚えていないが、寝る間も惜しむほど楽しくてのめり込んだことは覚えている。

学生起業チームへの誘い

オンラインゲームやプログラミングに時間を溶かしているうちに、気付けば就職活動をしなければならない年齢になっていた。

当時はFacebookにカッコいいプロフィールを書いて就職活動するのが流行っていたので自分もそうした。

就職試験は箸にも棒にもかからなかったが、ある日Facebookメッセージで学生起業を目指しているという人からエンジニアとして手伝ってくれないかと誘いを受け、おもしろそうだったので参加することにした。

チームでは学生向けSNSを作っているということだった。

ここで初めてWebアプリケーションフレームワークとデータベースに触れることになる。

どちらも未知の領域だったが、徹夜したり就職活動の新幹線の中でも開発したりするほどのめり込んだ。

東京のいくつかの会社から内定をいただいたが、学生チームでの活動の方がおもしろかったので全部断って腹を括ったが、卒業間近となって学生チームとは物別れし新卒無職となった。

上京・就職

修士まで出て無職となった息子に親は心配していただろう。割と楽観的な自分でもこの時期はさすがに焦りを覚えていた。

収入がないにもかかわらず一人暮らしを続けていたので、すぐに職を決めなければいけなかった。

学生チームで一緒だったエンジニアのUさんが仕事を紹介してくれた。

ここではiOSアプリとWebの両方を開発した。

iOSアプリは初めてで、Objective-Cで開発するとのことだったので急いで黒本と呼ばれるテキストを読み込んだ。

Objective-Cの文法は特殊で新鮮だった。

上京して半年ほどUさんと一緒に働き、Uさんは大手に転職していった。

毎月収入があるのはありがたかったものの、徹夜は当たり前、夜中の3時に進捗確認の電話がかかってくるような状態だったので、自分もUさんに続いて仕事をやめて転職した。

ミクシィ

大学院時代の同級生が働いていたということもあり、ミクシィに転職した。

3年経ったらやめて次に行こうと思っていたが、気付いたら10年経ってしまった。

あとは 少し前にも書いた 通り、この冬からまた新しい会社で働く予定だ。

easy-notion-blog

最後に触れておきたいのが、私がOSSとして開発しているブログ easy-notion-blog についてだ。

ここまで読んでくれた人は、私のブログ好きがMovable Typeから来ていることに気付いてくれたと思う。

Movable Typeのときはまったくコードがわからなかったが、それでもブログは魅力的だった。

結局、あれから10年以上経ち、巡り巡ってブログを開発しているということ、なんだかおもしろく感じてしまう。

参考になればと思って書いたが、書き終わってみると「これは参考にならねぇな・・・」という感想だ。

まあ、そんなこともあるわな。