#プログラミング原体験

blog.utgw.net

papix.hatenablog.com

小中高と家に家族共用のパソコンはあったのだけれど、プログラミングはしようと思っていなかった。 だいたいPCでやることは、近所の本屋のPCコーナーに売ってある「サルでもわかるDVDコピー」とか、PSPエミュレーターの動かし方、PSPの改造の方法を調べるのと、Flashゲームをやりつつエロサイトを見ることだった。

プログラミングをしようと思っていなかった原因はいろいろあり、当時は電気工事士になりたかったこと*1や、プログラムはコンピュータも含めて人間が作ったものだから、人間が理解出来るという中2的な発想があったことなどがある。それより大きかったのは、「そもそもプログラミングは高度に教育を受けた研究者がなんか火花をちらしている研究室で、めちゃくちゃ高い機械で行っている」という印象があったため。近所の本屋でもPCコーナーに売ってるのはプログラミングの本ではなくて、DVDコピーとかWinnyの本だらけだった。今だと検索すればいいじゃんで終わるが、そもそも検索しても出てこないと思っていたので検索しようという発想がなかった。

高校自体はいろいろつらく*2、文転して民俗学を勉強したかったが、学校のクラス的に文転ができず、理系で興味がゆいつあった情報工学科がある琉大に進学した。ここでMacBookを指定で買い、講義を受けることになる。

初めてやった課題は谷口先生のC言語のReport1で、*を使って好きな図形を書きましょうというのだった。 大学初年度と言えど精神年齢が小5から進化していないので、💩のAAを作って喜んでいた覚えがある。

このときのレポートは紙に印刷して提出だった。そういえば筆記体の練習とかもした気がする。

後半ではfor文とか鬼門のポインタとかやっていた。ポインタはよくわからんかったが、for文では尊師マーチを出力するプログラムを書いて喜んでいた覚えがある。

後期は山田先生のJavaだったのだが、課題という課題もなかったのでRobocodeを動かした覚えしか無い。よくわからんが壁伝いのWallロボットが最強だった気がする。Javaのコードが全然読めなくてパラメーターを変えただけだったっぽい。

この時期はなんか自分で母国語みたいなのが欲しくてScalaをやってみようとしていた。冷静に考えるとJavaも関数型もオブジェクト指向もわからんこの段階でScalaは完全に失敗だった気がする。

2年生になるとプログラミングの講義自体は無いが、プログラミングを要求される課題がいくつか増える。 実験といういろいろな先生が持ち回りで1,2週担当する講義があって、ここのnal先生の担当のシェルスクリプトプログラミングがめちゃくちゃ面白かった。 今までCとかしか書いたことなかったので、なんか書きやすくて面白かった。特にcurl/wgetでwebの情報を撮ってこれるというのは自分の中で革命的だった。nal先生は冗談が通じると個人的に思っていたので、DMMのグラビアアイドルカテゴリからランキングを取得するシェルスクリプトを書いた。当時の実験受講者でトップだったのでレポートが公開されたのは思い出に残っている。

今みたらGitHubに上がっていた。 github.com

後期には河野先生が担当しているOSという講義があって、なかなか難易度が高い講義として知られている。 この講義でPerlを使うということを聞いていて、たまたま琉大でPerl入学式を開催するという話を聞いたのでそこに参加した。東京からきたやばいエンジニアがいるということで、恐る恐るid:papixさんに懇親会で話しかけたのが思い出深い。

Okinawa.pmでPerlを母国語にしたいと宣言してからはや数年、なんとなく日常会話は出来るようになった気がする。

C言語は得意でもなく苦手でもなかったが、2年生のコンピュータシステムとかコンピュータアーキテクチャとかで、アセンブラやCPUって結構面白いなぁとか思っていた。 そして2年生後期でOSを受けて、そのOSの中にあった「Linuxのkernelをデバッグビルドしてコードを読む課題」がめちゃくちゃ面白くて、当時のクリスマスはひたすらLinux のKernelをビルドしていた。これは小学生の頃から持ち続けていた「OSって高い機械でバチバチしながら開発している」とイメージしていたものが、手元のMacBookで見れるようになったというのが大きい気がする。

コンパイラに興味を持ったのは、これも河野先生の講義があったB3からなのだけど、OSと同様にわけわかんない存在だったのが以外とコードが読めるというのが楽しくて、以降は触っていた。当時はいろいろあったので、周辺の人々が触っていないニッチなところをやろうと思っていたのもあると思う。

後は低レイヤーとかPerlとかに興味を持って今に至る感じ。僕もpapixさんと同じで大学に入って始めた口なので、小中とかでやってる人を見るとすげーっと思ったりするけど、まぁ今も十分楽しいのでいいかなぁと最近思っています。

*1:父の職業に憧れがあった

*2:3年間同じクラスで同じ担任だったが、全てに置いてうまく行かなかった