僕がプログラミングを始めた理由とかきっかけとか(黒歴史の振り返り)

今回の記事では自分がプログラミングを始めたきっかけなどについて語って行こうと思います。同時に、どうして普通高校ではなく、高等専門学校に進学をしたのかということについても。とりあえず、小中学校について語ります・・・。
・PCとの出会い
小学校1年生の時にWindows98がおうちにきて、遊んでました\(^o^)/ 親父の仕事する姿を後ろからよく見てた。
家の向かい側に、外国人なのですが幼馴染(女じゃないよ^^)の友達がいて、小さい頃からよく遊んでて、相手側の家にはMacBookがあり、よく使わせてもらってた。
・プログラミングとの出会い
小学校5年生の時点で、クラスメートで既にプログラミングをしている人がいました。フラッシュでActionScriptを使ってダンシングおにぎりというゲームを既に作っており、自分も見よう見真似でそういう系統をやってみたいなぁって、HSPという言語を始めると同時に、HTMLにも興味を持ち始めました。自宅にHTMLの方は本があって、意外と簡単に基本は習得できた。サーバーはGeocitiesを使ってたけど、満足しなかったので、Yahoo!メッセンジャーを通して知り合った人にサポートしてもらいながら、ルーターのポート開放をやって頂いた(savagesplain様)。そして、HSPのウェブリンクで知り合った方で当時高校生の(masakiさんhttp://masaki.mydns.jp)からも指導をアドバイスを頂きながら、自宅サーバーを開設しました。っていっても、常時稼動ではなくたまーに稼働っていう状況。masakiさんのお力を借りながら、FTPサーバー立てたり、メールサーバー立てたり色々挑戦していました。当時は、「すごいよ!FTPでC:\丸見え!」なんていう素晴らしい運営をしてました。今考えるとガクブルすぎる。

掲示板をホームページに設置したいなぁと思って、「掲示板のHTMLタグって何?」とかお恥ずかしい質問を周囲に投げまくってたわけですけど、掲示板とか動的なコンテンツはサーバーサイド側の言語(Perl/PHP等)をつかったCGIという仕組みがあることを知った。それと同時にJavaScriptなるものを知り、JavaScriptの本を購入した。
またJavaScriptで、本当はいけないんですけど、ブラクラを作ってよく友達を引っ掛けて遊んでました。それでもって、とあるブラクラ専門のHPの掲示板で、同い年でHSPをばりばりできる子とお友達になり、互いを刺激しながらプログラミングをやって行きました。ちなみに、その子(tomoki http://genine.web.fc2.com/)は後に自分が高専に誘ったので同じ学校になり、同じ人工衛星の開発チームでシステム系(バス開発の部署)で相棒やっています

CGIのお話ですが、Perl/PHPは当時の自分にとっては難しかったのであまり手を出さず、SSIのexecとHSPで作ったプログラムを組み合わせて、携帯電話からPCを遠隔シャットダウンなんて事をやっていました(小6中期ぐらい)。
HSPのhspsockというネットワーク関連のプラグインでチャットのサンプルプログラムと音声関連の命令を組み合わせて、遠隔操作で大爆音がなるといういたずらプログラムを作ってました。WinXP機を自分が使い、古いWin98を妹が使っていたので、妹のPCに設置して遠隔操作で大爆音ブヒィwwってやってました。
この頃、自作PCというものを知り、本を購入....

小学校の時に、既にプログラミングとかホームページ作成とかやり始めてましたが、どれもサンプルプログラムをコピペしたり繋ぎあわせたりして、やってました。これとこれを組み合わせると、こーいう機能(結果)が得られるっていう論理的な思考力をここで鍛えていたのかもしれませんね。


・中学生のころ
(中学1年生〜2年生)
自分のお年玉でPC買った(DELLロープロファイルのやつ)。プログラミング言語HSPではなく、C言語というものを知った。(というかHSPプログラミング言語ではなくプログラミングツールって言われてますので、この頃から本格的にプログラミングについてやり始めたのかな)あとアニメ見始めた。ひぐらしBOINCという分散コンピューティングプロジェクトに参加し始めた。(ノートPCで無茶やったと思う)
この頃、噂のLinuxっていうやつを仮想PCにてご対面。あと、中学2年生の頃にPICマイコンに挑戦し始めた。(この時初めてアセンブリ言語というモノを知った。)自分のプログラミングの歴史はおかしいことに、HSPC言語アセンブリというどんどん高水準言語から低水準言語に落ちて行くという・・・。PICの方は残念ながら、PICライターの作成で撃沈してしまい、結局完成品を買った。
お年玉でグラフィックボードを購入(GeForce8400のやつ)。と思ったら、自分の知識不足でロープロファイル対応のものではなかったので、構体ボディっと放熱板がごっつんこ。m9(^Д^) それと、自宅サーバーが本格始動。24時間運営開始。
この頃、本で人の脳の仕組みについて知った。人間の脳の仕組み取りつかれて人工知能について考んがるようになった。意識って何だろう?とか、細胞の自己組織化とか、遺伝子の仕組みについても興味をひかれてた。この頃、認知工学とかニューラルネットワークとかそっち方面に興味が出た。情報系の人間として人間の体ほど身近ですごいシステムは無いと感じた。
→現在、医療福祉工学科コース専攻中。残念なことに脳の仕組みとか、生体工学がまだあんまり無いんだよなぁカリキュラムに。(´・ω・`)

当時の中二病がやばすぎてもう

(中学3年生) C言語に完全移行。自宅サーバーをLinux化。ついにLinuxで運営をし始めた。
中学3年生の間の夏休みの自由研究は全てプログラミングにした。中1の時は、当時習った一次関数の例である高度と気温の関係というモノを数学の先生のアドバイスで、高度を入力してボタンを押すとそこの高度での気温が計算できるというソフトを開発した。中2ではHSPで友達とRPG開発した。ちょーテキトーでネタゲーとかしてたけど、結構評判は良かったと思う。ちなみにキャラクターは絵を書くのがめんどかったので、文字の◯を動くように。中3では、C言語とDxライブラリーを使ってRPG作った。音楽から画像から全て素材を借りて作った。受験期の前の夏なのに気合入れてコード書いたら数千行にもなって、印刷したプログラムの紙の束が質量兵器になってた。金賞もらった。
中3の受験期に、PICでLEDをピカピカ光らせて遊んでいた。自分には電子回路や電気回路の詳しい知識がなく、トランジスタの使い方すら知らなかったのでここで限界。あと、”計算機の中身”についても興味が湧いてきたので、調べたところ、足し算は加算器っていうやつで構成されていることをしって、全加算器等の論理回路図を書いて友達に見せてCPUスゲーよってやってた。

・高校生(高専生)
高校1年生(高専1年生)でH8マイコンの制御技術を習得し、同時に電子回路の知識も得た。トランジスタなどの素子の使い方とか、センサーIC,オペアンプ等の使い方等。この時、人工衛星開発チームに入って研修を受けていた頃なので、先輩から色々と教わった。HSPのゲームと加速度センサーを組み合わせて、こんなゲームを完成させた。いわゆるwiiみたいに傾けると機体が動くやつ。高専祭(文化祭)で展示したら以外にも好評で子供がずっと遊んでくれてた。
http://l-raven.ddo.jp/index.php?p=3axis(なんか、プログラミングのお話の筈だったのに、ハードウェア入っちゃってますサーセン)研修で頂いたせっかくの知識をとんでもないことに活用もしました。(http://l-raven.ddo.jp/index.php?p=bakutiku_game) 非常に申し訳ない気持ちでいっぱいと共に当時を振り返ると、やっぱり遊びご頃で成長してきたんだなーって思った。この爆竹ゲーの爆竹への信号線をSSRに置換すると、AC100V機器を制御できちゃう便利な子になっちゃうんです(http://l-raven.ddo.jp/index.php?p=ac100v_control)。また、中3の時に興味あった加算器をつくってみよーと思って、トランジスタをからつくってみよーっていう謎企画を発動し、途中で挫折した(http://l-raven.ddo.jp/index.php?p=tr_level_cpu) 今気づいたんだけど、当時はセンサーICとかオペアンプとかコンパレーターとかセンシング系統のICしか使ったことがなく、論理演算用のICをあんまり使ってなかったから、トランジスタじゃなくてロジックIC使うといった発想がなかったんです。
それと、中学生の頃から興味あった人工生命をプログラミングしました。(http://l-raven.ddo.jp/index.php?p=als) これを学校の夏休みの課題として、みんなの前で発表したわけです。炭素に依存しない人工生命の開発研究を。
この人工生命のプログラムはC++で記述されてるのですが、クラスは使いこなせてないわ、継承とかオーバーロードとかC++の良さをオールキルしてまして、とっても恥ずかしいプログラムとなっています。(当時はCもC++もほとんど同じようなものだと思っていたんです。お恥ずかしながら)


詳しくは次回記述しますが、こんな感じで今まで過ごしてきました。たくさんの人に出会い、機会にであい、今は高校3年生(高専3年生)ですが、医療施設の検索システム開発の依頼(アルバイト)や、nyubuプロジェクトへの参加や、小型人工衛星開発チームへの参加等を通して様々な事を勉強しています。3.11の震災のあと、http://l-raven.ddo.jp/power/のような計画停電地域の検索サービスを立ち上げました。やっぱりプログラミングを自分の興味だけにしてしまうのではなく、実際に人の役に立てていきたいなと考えているこのごろでございます。(ぶっちゃけこれが高専にはいった理由なのですが...プログラマーとしては、まだまだの自分ですがこれからも人の役に立てるように頑張っていきたいですね。