なんだか友達にプログラミング (Ruby) を教えることになった。

情報系の専門学校に通っている友達に、文系のおれがプログラミングを教える (プログラミングは学校で習っているはずなのに…) というのもなんだか変な話だ。

こういう言い方をすると、友達が、まるで情報系の専門学校に通っているのにプログラミングができない不勉強な学生だという印象だけど、彼は特別に不勉強ではない。コンピュータ関連にはハード・ソフト関わらず興味を示すほうだし、やる気もプログラミングの素養も十分あるとおもう。彼に足りていないのは、「プログラミングが楽しい」という認識なんだとおもう。

おれがプログラミングを教える、という話になったのも、「CとかCOBOLとかやったけど、おまえ (おれ) みたいにブログにプログラミングのこととか書く気にならないよ」とか言っていて、日頃から話を聞く限り、およそ楽しそうにプログラミングをやっていなさそうだったので、「楽しくプログラミングしよう」みたいなかんじで教えることに。

べつにRubyじゃなくても、(もちろんCやCOBOLでも) 楽しくプログラミングはできるだろうけど、おれが今のところ、楽しくプログラミング (っていうほどでもないけど) できるのはRubyだし、Rubyだったらチュートリアル程度のことは大体頭に入っているし、いいかなあ、とおもった。わりとRubyは流行っているし、やり始めてわからないことに出会っても書籍やWeb上での情報に、およそ不満がなさそうだし、なにより「楽しくプログラミングしたいな」っていう気持ちが友達にはあるし、たぶん、大丈夫。

どうやらはじめて人様にプログラミングを教えることになるようで、いままでは適当にコード書いて、たまにブログやGistに載せて、「わかんないですー」と言っていれば済む話だったんだけど、友達にとってはおれが「先生」なわけで、「わかんないですー」と逃げることもできないし、逃げ腰だと教えられる側も不安で仕方がないとおもう。

おれはRubyでクロージャとかイテレータOOPなどを理解したんだけど、コードを読んだり書いたりしているうちに、「え、これがイテレータなの?」みたいなかんじだったので、あまり「イテレータがどうのこうの」みたいな話はしたくない。EnumerableとかOOPRubyの中でも (おれの知っている範囲で) かなり楽しい部分だとおもうので、あまり小難しくならないように気をつけながら紹介していきたいとおもう。

ところで、プログラミングをやるわけだし、改行コードとか文字コードを問題なく扱えるエディタが必要なわけで、できればインデントとかはよしなにしてくれると嬉しい。となると、サクラエディタとか、EmEditorになるのかなあ。いきなりVimを勧めても、まず覚えることが増えてぜんぜん楽しくないし、ヒかれるだけだ…。ちゃんと考えておこう。