Ruby入門者から初心者になるためのオススメ本
最近はもっぱらパタヘネ本とはじめて読む486で、コンピュータアーキテクチャばかりを勉強しており、自分がどこに向かっているかよくわからない今日この頃のtakwakです。
さて、私もRailsエンジニアになって約8ヶ月が経ちました。8ヶ月経ってもわからないことだらけで、まだまだ勉強不足な自分ではありますが、入門者から初心者くらいにはなれてきたのかなと思います。
そんな初心者の自分が送る、入門者から初心者になるためのRuby勉強法をお伝えできればと思います。
Ruby入門の道筋
最近はプログラミングの入りとして、Rubyは非常に人気ですね。
Twitter上でもRubyやRails勉強中の方がたくさん増えているのをひしひしと感じますし、最近は勉強するだけでなくサービスも作るのが当たり前みたいになっていて、末恐ろしい限りです…
特にRubyは初学者向けには非常にレールが敷かれており、
↓
チェリー本(プロを目指す人のためのRuby入門)を読む
↓
Rails Tutorialをやりながら、チェリー本を参照する。
という流れが割と鉄板になっているように思います。
一方でそこから先の学習法というのはあまり語られず、色々な初学者のアカウントが就職して以来、ブログ更新やTwitter更新が途絶えるのを見てきました。(恐ろしい…)
という訳で、本日はようやく入門者を脱して、初心者くらいになった自分が考える、入門者から初学者になるための学習法をお伝えできたらと思います。
(以下、自分が所属しているような自社でwebサービスを運営している場合を想定しています。受託は経験したことがないのでわかりません。)
趣味と実務の違いは何か
まず趣味でやっている時と、就職してからの大きな違いは、コードを書くことと読むことの比率が大きく変わることだと思います。
趣味で勉強中の時は、自分の作りたいものがあって、そのために色々と調べたりはあるものの、基本はコードを書くというのが多いと思います。
一方で実務に入ると、既存の機能改善をする際はもちろん、新規機能開発であっても、既存のシステムとの兼ね合いがあるため、コードを読んで理解する時間が非常に多くなります。
またRailsの機能をちゃんと使いこなそうと思ったら、必然的にRailsのソースコードを読むことになりますし、gemもちゃんとReadmeが書いてなかったりすると、ソースコードを読んで理解する必要があります。
下手するとコードを読むだけで1日が終わることもあります。
ではその際に、現場やRails、gemが何で書かれているかというとRubyです。
そのため実務でやっていくにはRubyに対する、一定程度の理解がマストになります。
より深くRubyを理解するための2冊
タイトルにメタプログラミングとありますが、内容の多くはRubyを理解する上では極めて重要な、メソッドや定数の探索、ブロック、クラス定義、特異クラスなど、ソースコードを読む上ではマストと言える内容が比較的わかりやすく説明されています。
わかりやすいといってもある程度入門が終わっており、Rubyでコードをある程度書いた経験がないと難しいので、入門者にはオススメしません。
僕自身、既に3周くらいはしていますが、まだまだ理解が足りないところも多いです。しかし、これを読んだ後と前ではソースコードの読みやすさが格段に違います。これを読む前はRailsのソースコードは絶対に読むのは無理だと思っていましたが、少しくらいは読めるようになりました。
メタプログラミングRubyを読んで、ある程度理解した後に、オススメしたいのがRubyのしくみです。
Rubyがどのように実行されるのか?クラスやオブジェクトの中身は実際はどういうものなのか?などなど、メタプログラミングRubyで理解した、Rubyの中身がどうなっているかを非常にわかりやすく理解することができます。
僕もこちらはまだ1/3も理解できていないですが、Rubyに対する理解がさらに進みましたし、プログラムが実行される時にどういうことが起きるのかの端緒を掴めたような気がします。
そこから結局もっと下のレイヤで何が行われているか興味を持つようになって、今に至るのですが…
これらの本を読んだ後は?
これらの本をある程度理解できれば、Rubyのコードが読みやすくなってくると思います。
もちろん最初からスラスラとは行きませんし、なかなか理解できないところもあると思いますが、そういう時は本を読み直したり、周りの先輩に聞いたりして、少しずつ読めるようになっていくと思います。
そうなるとわからないことがあった時にも、qiitaやブログに書かれた適当な記事を読まずとも、Rails本体やRubyのリファレンスマニュアルなど、しっかりしたソースを読んで理解できるようになります。
(僕は某プログラミングスクールのRailsのとあるメソッドの記事を鵜呑みにして痛い目に合いました…適当な記事を読むだけでなく、公式ドキュメントをしっかり確認しましょう。)
Railsのメソッドを調べる時はこちらのサイトがオススメです。検索して、読んでわからなければgithubに飛んでソースを読むと良いです。
Rubyのメソッドはご存知るりまですね。
オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (Ruby 2.5.0)
こうやって少しずつ、公式ドキュメントを読む比率を上げていけば、入門から初心者くらいにはなれると思いますし、実務でも自分で調べて実装を進められるようになります。
終わりに
どうでしたでしょうか?入門者から初心者になれそうでしょうか?
もし他にもっとオススメの書籍等あれば、教えて頂けると幸いです。
最後までお読み頂きありがとうございます!