Ruby on Railsの前にRubyの基礎をしっかりと

最近のRuby on RailsブームでRubyが一気に注目されている。おそらく今Rubyを始める人のほとんどがRuby on Railsがきっかけであろう。
巷にはRuby初心者向けのRails解説書が多く、Rubyを解説しながらRailsを解説している。だけどちょっと待ってほしい。Ruby on RailsRubyがベースとなったフレームワークだ。Rubyそのものもそれなりの複雑さを持った言語だ。その前にRubyの基礎をしっかり身に付けるべきじゃないのか。Railsはとても巨大で、しかもRubyの高度な機能をふんだんに使った複雑怪奇なものだ。そのおかげであの生産性がある。それに、Rakeあり、YAMLあり、Test::Unitあり、データベースあり、eRubyあり、これまでのRubyの技術の集大成となっている。
その複雑怪奇なフレームワークとたくさんの技術の結晶に、オブジェクト指向Rubyの文法すら理解しきってない人が挑むのは無謀ではないのか。この状態だと、疑問点が出てきてしまったらあっさり挫折するに決まっている。いってみれば、レベル1の勇者が鋼鉄の剣を持って魔王バラモスに挑むようなものじゃないか。せめてレベル25まで上げて、店で良い装備を整えてから戦いに挑まなくちゃな。

幸いRubyにはirbという手軽に試せるツールが標準添付してある。Ruby慣れしてない人はirbを使ってリファレンスマニュアル片手に文法と基本的なクラスを一通り学習してみよう。Numeric、Integer、String、Array、Hash、Regexp、Enumerable、Symbolあたりの基本的なクラスの使い方を身に付けよう。
そして、Rubyの思想を学ぶ。たとえばブロックがなぜあるのか、その美しさを知る。ブロックがあると、こんなにカッコよく記述できるんだと学ぶ。attr*によるアクセサの良さを知る。メタプログラミングにも少し触れないとRailsが裏で何をやっているのか想像できない。
その後、Rake等の技術をひとつひとつ学ぶ。技術の働きだけではなく、なぜその技術があるのか、その技術があると何が良くなるのかを知る。そこまでやって初めてRailsに挑もう。ActiveRecordにしたって、ハッシュの使い方を理解してこそActiveRecordの良さがわかるってものだ。
遠回りのように見えても、実はそれが一番の近道だと俺は思うね。地力がついてこそ、問題を素早く解決できる。何事も基礎が大事。そもそもRuby on Railsを習得するのは時間はかかる。