この記事は Ruby on Rails を独学で勉強する人のために、一通り Ruby の本を買って読んでみた自分が、本当に良かった本を紹介します。
自分も色々と失敗したので、同じ失敗をしないようにすることで、お金を節約できるでしょう。
まず 1 冊目は Ruby の本です。
プロを目指す人のための Ruby 入門 言語仕様からテスト駆動開発・デバッグ技法まで(伊藤 淳一 著)
Ruby を志す人は必ず、最初に伊藤淳一さんの本を読みましょう。
伊藤淳一さんの本はとにかく解説が親切です。どれくらい親切かは、ご本人のQiitaを眺めるとなんとなく伝わってくるでしょう。
本の前書きに「初心者向けではありません」みたいなことが書いてあった気がしますが、どの初心者向けの本より親切なので、まずは プロを目指す人のための Ruby 入門から始めるで OK です。
Ruby という言語についての学習はまずこの 1 冊で OK です。
次に Rails チュートリアルを...と言いたいところですが、その前に RSpec をやりましょう。
Everyday Rails - RSpec による Rails テスト入門
Everyday Rails - RSpec による Rails テスト入門 という本で、RSpec の基礎を学びます。 Rails チュートリアルでは RSpec が使われていなかったのですが、現場ではほぼ間違いなく RSpec でテストが書かれています。
RSpec の知識がないと、現場に出てから困ります。
Ruby には型情報がない分、テストを書いて動作を担保しようとする文化があります。 なので、RSpec が書けないと、現場で Pull Request が出せません。
ここで RSpec を勉強しておいて、Rails チュートリアルのテストは RSpec で書きましょう。
Ruby on Rails チュートリアル
Ruby on Rails チュートリアルは、Rails を学ぶ初心者に非常に人気があります。
一昔前は「Rails チュートリアル をやれば一人前」みたいに言われていましたが、今はそんなに甘くないです。
Rails チュートリアル 3 周しても現場で通用するとは言い難いでしょう。とはいえ、Rails チュートリアルは避けては通れません。
ツイッターのクローンアプリを Rails MVC で作ったような記憶があります。今どきは Rails は単なる API として使われるケースが多いので、知識が 5 年古い感じもありますが、それでも Rails の勉強の初手はこれしかないです。
Effective Testing with RSpec 3: Build Ruby Apps with Confidence (English Edition)
Rails の基礎を学んだら、さらに RSpec を詳しく勉強しておきましょう。
Ruby の現場ではとにかく テストを書きます。
テストは RSpec で書きます。
なので、RSpec を知らないと非常に困ります。
そして RSpec の日本語書籍は 2 冊しかない上に、1 冊は出版が 2012 年と古いです。
「Everyday Rails - RSpec による Rails テスト入門」は基礎としては十分ですが、ちょっとした応用レベルに達するためには「Effective Testing with RSpec 3」までやる必要があります。
Effective Testing with RSpec 3: Build Ruby Apps with Confidenceは出版年が 2017 年ですが、2023 年でも普通に使えます。
評価も高く、学べばすぐに現場で活かせるレベルの知識が習得できます。
メタプログラミング Ruby
ここまできたら、「メタプログラミング」について学んでも良いでしょう。
Rails でもメタプログラミングが多用されています。 現場でもメタプログラミングが使われているでしょう。
それゆえに読みづらく、コードが追いづらく、IDE の補助もないので Ruby 自体が嫌いになったのですが、それでもメタプログラミングで書かれたコードは動き続けます。
現場に残っている以上、読めなければ仕事になりません。そしてメタプログラミングを勉強できる本はこれしかないです。 ここまで読まないと、ある程度年季の入った Rails プロジェクトではても足も出ないでしょう。
基礎知識がないと、Ruby on Rails のコードは読めないのです。 本当に、仕方ないんです。泣きながら読みましょう。
Rails 6 以降の学習方法
ここ数年、Ruby 関連の本はほとんど出ていません。 Rails 6 以降の書籍は 2 冊ほどありました。
決して悪い本ではなかったのですが、読んだからといって現場で活かせる感じではなかったです。
Rails6 以降の勉強をしたいなら、動画で学ぶしかないと思います。 書籍は全く出てないです。洋書でもほとんど出版されていません。
Udemy を使いましょう。動画は書籍に比べて学習効率が落ちることもあるので、1 つだけ見れば OK です。ついでに英語の勉強もできる、という意味で英語の動画がおすすめです。
The Complete Ruby on Rails Developer Course
公式ドキュメントを読みまくる
基礎知識はここまでで十分です。あとは自分で手を動かして、何か作ってみて、壁にぶつかるたびに公式ドキュメントを読みまくりましょう。 座学で勉強ばかりしても、結局うまくいかないことが多いです。
自分で作って、悩んで、ググりまくってやっと、コードが書けるようになります。 現場でコードを書くときは、公式ドキュメントがバイブルになります。
Stackoverflow がヒットすることも多いでしょう。英語は読めるようになっておいてください。
また 2023 年以降のプログラミングでは GitHub Copilot は必須です。型がよくわからない Ruby の場合は特に、Copilot の助けが必要です。
小さな出費をケチる人間に優秀な人はいません。 Copilot を駆使して、コーディングを補助してもらいましょう。
また、何か迷ったときは ChatGPT に聞くのも良いです。 ChatGPT Plus にも課金して、GPT4 にアドバイスしてもらってください。