プログラミングこうやって覚えた

プログラミングどうやって覚えたんですか?って聞かれて、そういう情報少ない気がしたので書く。
チラシの裏みたいな長文だらだら書くの、はてなブログでも1回やってみたかった。

最初は、大学のサークルみたいなやつで先輩がRailsをつかってて、Railsっていうサイト作るためのフレームワーク(?)っていうのがあるから覚えようって聞かされて、MVCみたいな話をされた。サッパリだった。それ自体の概念もサッパリだったが、それを使う理由も分からなくてメタサッパリもあった。3時間くらい教えてもらったけど、サッパリだった。その後そこでは結局Railsを使うことはなかった。並行してRubyというものも教えてもらって、irbというのがあってそこで色々試すということをした。面白いなー会話してるみたいだなーと思って教えてもらっているときは少し弄っていたけど、使う理由も分からなかったので使わなくなった。ちなみにWindowsで、One-click-installerというのでRubyを入れて、EmEditorというエディタでコードを書いて、コマンドプロンプトで実行していた。

後日Railsの本を貸してもらっていたのを思い出して、適当に1ページ目から読み始めてサンプルみたいなのを作っていった。本に書いてあることしか書かなかった。できたやつは動かなかったけど、微妙にスペルが間違ってるとかで、ちゃんと直したら動いた。動いた。ここで動かなかったらプログラミング続けてなかった可能性がある。でも動いた。

その後、twitterからデータ集めてくるみたいなのができるっていうのを知って、twitterを触るためのライブラリをググッて調べた。それまではRailsのジェネレータが全部作ってくれていたものを上書きしていただけだったから、そこで初めて、自分でhoge.rbみたいなRubyのファイルを作成するということをした。時代を感じますね。いや、感じないけど、感じるだろうことだけ分かる、死にます。それで、twitterのつぶやき取得するみたいなのができて、楽しんでた。次はMechanizeっていうのがあるって知って、twitterじゃなくてもサイトからデータ集めてこられるって知った。これもよくわからないまま楽しんでた。電車の時刻表とってくるとか、講義の休講情報とってくるとか。プログラミング便利、という感覚はここで初めて得た。

あるときこういうサイトつくってほしいって知り合いの先生に言われて、twitterのつぶやき集めて地図に表示するみたいなやつだったから、ああもしかしたら今までやってきたことでできるかもしれないと思って引き受けた。ここでRailsを改めて学習して、MVCなるほど〜ってなって、Railsすげーってなった。デプロイの方法とか分からなくて、それ以前にWindows以外分からなくて、先生に教えて貰って初めてUbuntuを触った。デプロイという名の、Railsに標準で付いてるサーバをPort80番で起動するだけ、っていう作業を執り行った。1日で1万件くらいアクセス来て死んだのを覚えてる。ここらへんでMacを買って、CotEditorっていうエディタでコード書きながら、ターミナルでruby hoge.rbとか何回もやってputsで値の内容見ながらコードの修正繰り返すみたいなことをしてた。

そうこうしてる内にH社のインターンに何故か応募していて、Perlを必死で覚えた。JSも必死で覚えた。高校受験以降勉強してなかったし、そもそも高校受験も勉強してないような気がしたし、試験系のものも毎回実質2時間くらいしか勉強してなかったので、初めて必死で勉強した気がした。サイとかチョウとかアルパカとかラクダとかが書いてある本を1週間ぐらいで読んだ。インターンで初めて、エンジニアらしき人達と会った。これまで会った人とは何か明らかに違う人達だったけど、変な人かつ良い人が多い印象を受けた。インターン参加してからだいぶ開発環境が変わった。エディタははこべさんが.vimrcについて語ってるの見て顔が楽しそうだったからvimになったし、自分の書いたコードを人様に公開する恐ろしさからgit使うようになったし、zshこそ最強bashは情弱とか見るからに情強そうな人が語っていたのでzshにしたし、ひだまりスケッチおすすめされてプロンプトはゆのっちになった。

twitterクライアントみたいなのも作りたくなってたので、人のコードを真似しながら独自に違う機能を付けるみたいなことをした。自分から真面目に人のコード読んだ機会はこれが最初。Railsもしばらくやっていて興味を持っていたので、C社のインターンにも参加した。ものつくる前に考えるという感じで、考えずにつくってたんだなということが分かった。インターンで東京に来てたので、RubyKaigiにも出られた。良かった。言語にコード以外のものを感じた。

Ruby合宿っていうのに参加した。まともにRubyを学ぶ初めての機会だった。クラスとかよく分かってなかった。Ruby合宿には高校生とか大学生が沢山いて、自分より年下の人がプログラム書いてるのを初めて見た。人に説明する機会が結構あって、Rubyがちょっと好きになっていた故にうまく分かってほしすぎて緊張した。本気で分かってもらえるように説明することで、理解深まるのを感じた。

今は研究でRuby書いてる。バイトでPerlも書いてる。どっちも好き。憂と唯ぐらい好き。でも比べるものでもない。違う道みたいなのがあるだけで、全部あずにゃんに通じてるみたいなイメージ。あれ。言ってることはおかしいが伝わっていると信じたい。あ、今日はけいおん映画版公開の日ですね!