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

なにやら中高生対象といわれつつ、大学生の皆さんも書かれているので便乗してみる。

PCをはじめたきっかけ

えーっとPCをはじめたのは小5のときです。母親が内職でHTMLを始めるということで、PCから回線から一式買ったところから始まりました。
当時から機械ものに興味があった私だったので、当然食いついたわけですが、しばらくするとWindows95の某NECの98のノートを頂いてHTMLをいじり始めました。ちなみに、このとき内職用に調達したマシンはMeで回線は田舎だったのでダイアルアップでした。

OSASKコミュニティに出会うまで

中1くらいまではひたすらHTML書いたり、隠しページ探し(リンクを探したりするやつ)をやったり探したりしていました。またネトゲにもはまった時期ですw
中2くらいから平行してhspやCに触り始めたのですが、Cはポインタで躓いて某ポインタ本などを買ったりしましたがなかなか進めずふらふらしていました。

OSASK

中3のはじめに、hspからおそらくあっきぃさんのページをたどってOSASKというOSのコミュニティ、IRCへ行き着きます。ここで川合さんと出会いました。某OS本の著者の方です。
このとき、OSを作りたい!と行ったのですが、ここでたまたまほかにOSを作りたいといってきたうっちゃんさんとIPLの書き方などを教わっていました。そのときはアセンブリを一週間で教わったのですが川合さん、本当に教え方がうまいです。その後Cの基本的なところを3日程度でまとめました。アセンブリからやったのでポインタがすごい簡単で驚きました。
そして、たまたまこのときOS本の執筆を始めるタイミングで、その後1年OS本の校正という名の本をタダで読ませていただくありがたい立場に立たせてもらい、プログラミングを学びました。ちなみにこの1年アセンブリにこだわり、その後フルアセンブリでOSを書くとかいってたのもこの辺の時期です。FPGAなどに触れたりCPUの創りかたを読んだ(というか頂いた)のもこの辺ですね。

高専

翌年、当然のごとく国立高専に落ち、某私立高専へ。そこで黙々とハードとOSの開発をやるつもりが(自己紹介でかなり浮いた)ロボコン部へなぜか入ることに。ちなみに回線の都合でこのころからOSASKコミュニティから離れていきます。
その後2年間アナログ回路や組み込みのコードを書きます。毎日オシロの前に座っていました。また、結局FPGAは挑戦しようとしてなかなかできなった時期でもあります。
このとき、平行して画像解析やニューラルネットワークなどに関しても調べたりします。教員に書籍を借りたりして簡単な画像解析プログラムを書いたりしていました。また、現筑波大の某CPUつくってるひとにいわれてアセンブラをCで書いたりもしました。ええ、文字列処理系の関数を使って4重ポインタとかになってましたw今思うといろいろおかしいポインタ厨でした。LLとかは一切触れませんでした。

大学

高専3年、浪人と2年ブランクをあけて大学1年からTwitterに影響されプログラミングを再開しました。といっても浪人末期にFPGAボードを買ってアナログディスプレイになんか写したり、某CPUの人にイベントドリブンなプロセッサのアセンブラ(とは呼べないなにか)を書かされたりはしていましたが。いろいろライブラリや新しい言語、勉強会などに参加し始めたのもこのあたりです。
如何に自分がおろかだったか思い知らされました。世には多くの便利なライブラリや便利な言語があり、完全にCの基本文法+標準ライブラリで書いていた私にはまったく驚きの世界でした。秋にWinPhone7のバイトでC#Pythonを始め、その後今年の初めにJavaScriptをはじめて今に至ります。

まとめ

えーっと独学期間長すぎです。大体バカですね。もっと情報あつめとけと。最近はLLもCも適所適材ということで積極的に新しい言語に手を出そうとしつつ仕事で時間がががといった感じです。Rubyとかやりたいですね。あとF#も気になってます。
また、いろいろ学んだ今言うのですが、プログラミング始めるならいまならC#ですね。昔アセンブリを進めていた時代が私にもありましたw@pi8027さんごめんなさい>_< ただ、がっつり組み込み的なCもやるならアセンブリ、やっといて損はないと思います。いまだに嫌いじゃないです。

触った言語

  1. x86asm じつはMMXとか使えません(ぁ。1年位のめりこみました。ゲーム作ったり。ただしOSASKAPIで。
  2. x86機械語 CPUの創りかた読んだ後に少し調べた程度
  3. ARM機械語 GBAで少し触った程度
  4. PICasm わが部の主力マイコンだったので2年がっつりやりました。もうやりません。
  5. AVRasm PICの代わりに導入したかった。結局自分だけでつかって電源逆刺しして8個まとめて焼いた石
  6. C 2年くらい主力でやってた。といってもC++のクラスとか導入してBetterCで使っていましたが。
  7. C++ 継承とかちゃんと調べたのは去年。StringとかVectorとかいいですよね。でも闇の軍団こわいです(ぁ
  8. Python 最近の主力。DjangoといっしょにWebのバックエンドでつかってます。出会いは某むりなバイトでGAEと。
  9. C# 某無理なバイトで使いました。ただ、C系のようでCじゃないこれ!というインパクトはすごかったです。実は自分の常識を破るのに一役かった子。そろそろ何か書いてあげたい
  10. Javascript 最近仕事でがりがり書いてる子。3ヶ月くらいこの子しか書いてない。思いのほかできるけど、重たい。というかまさかこんなにいろいろできると思ってなかった。
  11. Java Android開発で触った。

さいごに

まともなプログラムは最近書き始めた私ですが、いまはWebサービスを作るお仕事をしています。そのうち発表しますが、やっぱりプログラミング楽しいですw
ただ、やはり多くの方と触れ合いながらやったほうが楽しいし、さまざまな情報も集まるので、自分みたいに組み込みの世界の人とか、独学の人もひとまず勉強会にふらふら行ってみたりすると新しい世界が見えるかもしれません。