プログラミングを始めたきっかけ

「僕がプログラミングをはじめたきっかけ」とかいうのに便乗している友人数名見掛けたので、僕もそろそろ 23 歳になってしまうがサクッと書いていきたい。

  • Ruby
    • もう 2 年くらい書いていなかったのだけれど、 FacebookIrcGateway という物を作り始めてしまったせいで結構書いてる。
  • Perl
    • 大昔に KENT さんという方のウェブページを見て BBS 作ったりしてました。懐しいですね。
  • HTML/CSS
    • こんにちはこんにちはみたいな知識しかない。
  • JavaScript
    • prototype.js が流行ったころに遊んだりしていた、もう知らない。 jQuery すごそうですね
  • Java
    • 本当の意味での Java はほとんど書いたこと無いかも。仕事で J2ME とか J2ME とか J2ME を書いたりしてた。
  • Dalvik(not Java)
    • Dalvik 言語は Java(TM) では無いので注意しましょう。現職がこれです。 Eclipse が自動生成してくれるのでほとんど書いてない。
  • C
    • 一概に C って言っていいのか分かんないけど、言語仕様超簡単だし純粋なアルゴリズムやデータ構造を学ぶのには最適だと思う。仕事では使わない方が良い。
  • C++
    • 実は使ったことない。いんくるーどあいおーすとりーむってやればいいんでしょ?
  • Objective-C
    • 実は使ったことない。なんかキモい。
  • PHP
    • PHP とはコピペで動く偉大な言語。
  • Python
    • 実は使ったことない。 Ruby つかっちゃう。
  • C#
    • 昔書いてた(.NET1.1 くらいの頃)。 これから WP7 とかで使うことになるんだろうなぁと思いつつ放置。 LINQ って凄いんですか?
  • Delphi
    • 昔書いてた。コンポーネントをペタペタ貼って作れる素晴しい言語で、当時の Visual ナントカよりよっぽどビジュアルっぽい言語だった。
  • HSP
    • 昔書いてた。 HSP でスレッドが使いたくなって Delphi 覚えた。
  • ひまわり
    • 懐しいですね。
  • /bin/sh
    • とても便利。よく使います。

はじめてのぱそこん

小学生のころ、 PC9821 のデスクトップ PC が我が家にやってきた。スペックは覚えていないけど MMX Pentium とかで Windows 95 で、 98 ランチという素晴しいソフトウェアが起動していた。あの頃はシステムドライブが A:\ だった。

その当時、バンドルされてた謎のクイズソフトのバグ技を見付けて全問正解しまくったりしてた。

いんたーねっと時代とうらい

ぼくがインターネットを始めたのがたぶん 1999 年だか 2000 年だかで、なにをやっていたかというと Infoseek という素晴しい会社が運営していた isWeb というホームページ作成サービスで遊んだりしてた。
このころ HTML でテーブルレイアウトや font タグを使ったりしていた、古き良き?ウェブページを作ったりしていた。

はじめてのプログラミング

isWeb の、簡単ベンリ自動ホームページ作成ツールみたいなのではすぐに不満が出てきた僕は HTML を書くようになり、 HTML を書くなら isWeb じゃなくてもいいので FTP とかでアップロードできるようなホスティングサービスをさがして、そういうところだと CGI (Perl) とか PHP とかが動くとか動かないとかで KENT-WEB という偉大なサイトからソースコードを落としてきて動かしたりしていた。そこで Perl を改造したりしていたのが始めてのプログラミングなのかもしれない。

CGI 時代とうらい

BBS だけでは面白くもなんともないので、 FFAdventure (懐しいですね) という CGI ゲームを設置したり動かしたり改造したりプラグインをいれたりウェブ上に散乱しているパッチをあてたりしていて、僕だけのさいきょう FFAdventure を作ったりしていた。
一度戦闘をすると N 秒待たないと次の戦闘ができない、とかそういうバトルシステムだったんだけど、バトルページに直接リクエストを送ると問答無用でバトルが始まるので、友達が戦闘ページで F5 を押しまくってレベル上げしてた。
挙句負荷があがりすぎてサーバ管理人から BAN されたりとか、なつかしいですね。

高専にはいった

なんだかんだで技術者向いてるんだろうなーとか中学生ごころに思っていたので高専にいった。本格的にプログラミングという物を学び始めたのはその頃が始めてだった。

なんか学内のイントラウェブとかが正しく整備されていなかったのだけれど、学生個人に割り当てられている共有フォルダに public_html ってフォルダがあって、中学生時代の経験からなんとなく index.html というものをおいて http://がくないぺーじ/~学籍番号/ とかいう URL からアクセスできるのを知った。

学内ウェブ時代とうらい

当時の僕は学内ウェブでの活動をかなりしていた(のでインターネットの世界ではほぼ活動していなかった)。
学内ウェブならアテンションがすぐ貰えてモチベーションが下がりにくいというのと、学校が田舎の山奥の僻地の監獄だったのでやることが無かったというのがあると思う。
学内ウェブは静的 HTML しか置けないので、 MovableType をローカルの PC で動かし publish される HTML だけを学内ウェブに置くとか、そういうことしてた。

ブログをやっていた

最初は HTML と CSS を書いて、学校の Photoshop で画像を作って、サイトデザインをし、みたいなことをいろいろやっていたけど、後からはブログを作って更新していた。
ローカルで LAMP な環境を動かし、 MovableType を動作させ、 publish した HTML を学内ウェブに置くというような仕組みだった。(まあこれは教授がやっていた手法を真似ただけなのだけれど)

検索ソフトをつくった

学内ウェブはだれがページを作っているかとか全く分からなかったのだけれど、 URL は http://がくないぺーじ/~学籍番号/ というものだし、学籍番号は法則性があるのでウェブページをさがすために HTTP HEAD や GET をひたすら打ち続けるというソフトを延々作っていた。 (名前は WebSiteChecker だったっけな?)

まず HSP とかいうのでカンタンに作って、その内高速化したいとか思って Delphi でスレッドを使い始め、最終的には C# とかで作ったりしてた。
後々、インターネットの世界で prototype.js が流行り、 Ajax でやれば良いじゃ〜んということで JavaScript でかいたりもした。(学内ウェブは同じドメイン下だったので実現できた)
いま思えばスレッドたてまくって凄い勢いでウェブサーバにアクセスしまくっていたし、サーバを管理している教授陣の方々には大変ご迷惑をお掛けしました。

学内ウェブが流行った

僕がいろいろ活動を続けた結果、いろんな学生がウェブページを作り始め、争いが起き、学内ウェブは閉鎖された。大変ご迷惑をお掛けしました。

学校の勉強

学校では C や C や C の勉強をしていた。
当時、プログラミングの授業を担当していた教授の信念のようなものがあって、 C でアルゴリズムやデータ構造を学ばずに LL とか OOP とか他の言語をやったらダメだ、みたいなものがあって授業では C 、趣味ではその他の言語をやったりしてた。
たしかに基礎を学ばずに LL やってよくわかんないことになっていたのが中学生の僕だったし、 C を基礎で学ぶという信念はとても素晴しいものだと思ったし、いまの僕はあのころ C をやっていて本当によかったと思う。
(まあ CUI プログラミングは黒い画面に文字が流れてくるだけで面白味に欠けるし、このアルゴリズムがいったい何の役に立つのか当時はさっぱり意味不明だったけど)

インターネットでの活動

学内ウェブが閉鎖されたりして楽しみを失なってしまったのと、 Twitter というサービスを知りインターネットでの活動をしはじめた。
インターネット上に公開したソフトウェアは特に無い気がするけど、 Ruby のコードとかはブログに貼ったり CodeRepos に上げたりしてた。

あと、そのころから IRC を割とするようになり、 IRC Bot を作るために Ruby を勉強していた。当時は Ruby しか書いてなかった気がする。

就職した

当時 Ruby が大好きで、その次に C が使えて、 Java はとても大嫌いだったのだけれど、結果的に Java の会社に入った。
Java の会社で「 Ruby が好きです」といったら「次の面談では Java って言っておきなよ、この会社は Java だから」みたいなことを言われたことを今思い出した。

結果的に Java の会社で延々 C を書き続け、ポエムを書き続け、いまは Dalvik を書くようになった。

プログラミングを始めたきっかけを書こうと思ったら、ぼくの人生について書いてしまったし、ここまで読んだ人おつかれさまでした。

次人生やりなおすとしたら、また Ruby 書きたいですね。