今Ruby on Railsに入門するならこの教材と進め方が最短!

Macとコーヒー

Ruby on Railsを比較的最近始めた私がやる価値のあると感じた教材を紹介していきます。また、それらの教材の最短の進め方についても触れられたらと思います。

Railsができて10年以上経つため、ベテランの方も多いです。ただ、そういった方は入門者の気持ちを忘れている可能性があるし、当時の教材を紹介されても今は古くなってしまっているでしょう。

ここ1、2年でRailsに入門した私は、今教材を紹介するのにちょうどいい時期にいるのではないかと思い、この記事を書くことにしました。

なお、この記事は基礎的なHTMLとCSSを理解できる方以上を対象にしています。

  1. おすすめの入門教材
    1. Coffee-Cup
    2. Ruby on Rails チュートリアル
    3. たのしいRuby 第5版
    4. Code SchoolのRailsコース
    5. Ruby on Rails 5 アプリケーションプログラミング
    6. Ruby on Rails ガイド
    7. 入門レベル卒業の基準
  2. 中級者におすすめの教材
    1. RailsによるアジャイルWebアプリケーション開発 第4版
    2. パーフェクト Ruby on Rails
    3. Everyday Rails - RSpecによるRailsテスト入門
    4. Mastodon(マストドン)
  3. 3倍速でプロレベルになる方法
    1. 勉強会に参加する
    2. スクールを利用する

おすすめの入門教材

Coffee-Cup

Coffe-Cup

Coffee-Cup

こちらは、とある入門者の方がRailsのスクールに通った際に、カリキュラムがわかりづらくはがゆく感じた経験を活かして丁寧に書かれた教材です。

なので、専門用語はプログラミング未経験者向けに噛み砕かれて説明されています。例えば、データベースのことを「Excelの表みたいなもの」と言い切って説明していたりします。このような説明は、ある程度経験を積んだ人だと、「データベースはExcelじゃない!」とツッコミを受けるのが怖いので、なかなか教材には書けません。

ですが、この教材は入門者の方が書いているため、入門者にとってわかりやすい表現で説明することができています。なので、プログラミング経験がない方には最適な教材です。今ならメールで質問すると作者の方が無料で答えてくれます。

多少プログラミング経験があって、簡単過ぎると感じる方は、スキップして次に紹介するRuby on Rails チュートリアルに進んでもらってもよいと思います。

逆にこの教材でも難しすぎると感じる方は、おそらくRubyというプログラミング言語の仕組みから学習したほうがよいかもしれません。そのような方は、後述するたのしいRuby 第5版を先にやってみてください。

Ruby on Rails チュートリアル

Railsチュートリアルのイメージ

Ruby on Rails チュートリアル

Ruby on Rails チュートリアル(通称「Railsチュートリアル」)はRails入門者のためのバイブルと言えるくらいの存在になっています。ブラウザで見る分には無料です。どのRails勉強会に行っても、まずこれをやりましょう、と言われるのではないでしょうか。Twitterのようなマイクロブログをハンズオン形式で(実際にコードを書いて)作っていくというチュートリアルになっています。実際の開発に必要な、開発環境、バージョン管理、テストなどの作業も含まれています。なので、単なるRailsの使い方ではなく、実際に開発で使える作業フローの練習にもなります。

プログラミングの経験(Rubyじゃなくても)がある方は、いきなりこれを始めるのがよいと思います。 (プログラミング経験自体がない方は次の教材を見てください。)

とはいえ、いきなり開発フローを実践していくため、途中でハマる人がほとんどだと思います。 ハマった時点で、次以降の教材を参考にしてみてください。

※「ハマる」:難しくて独力で進められなくなる状態

この記事では、この教材を迷いなくすすめられる状態が、入門レベルを卒業した状態だとします。というのは、この教材に書いてあることができる人なら、一緒のプロジェクトにいても問題ない、と個人的に感じるからです。

たのしいRuby 第5版

高橋 征義 (著), 後藤 裕蔵 (著), まつもと ゆきひろ (監修) SBクリエイティブ; 5版 (2016/2/26)

プログラミング未経験者の方、Railsチュートリアルで言語的な難しさからハマった方は、一度このRubyというプログラミング言語自体の入門書をやることをおすすめします。オンラインや書籍のRuby教材をいくつか試したましたが、これが一番力がつきます。

なお、章末についている練習問題もしっかりやりましょう。わからなくても解答をすぐに見ずに、未完成でもいいので自分なりのコードを書いてみてください。

Code SchoolのRailsコース

Code Schoolのイメージ

Code SchoolのRailsコース

Railsチュートリアルをやっていて、Rubyの言語はわかるが、Railsの使い方についてわかっていないのでハマってしまう、という状態になった場合は、このオンライン教材がおすすめです。

最初にビデオでレクチャーがあり、その後ゲームによる問題、のセットが何セットかあります。ゲームは、ゾンビ等の敵が出てきて問題を出してきます。ブラウザ上のエディターで回答することにより、敵を倒していくという、とても楽しい教材になっています。自分も時間を忘れてこの教材は取り組めました。

この教材は、1月29ドルと有料ですが、無料で見れるレクチャーもあるので、一度見てみることをおすすめします。課金する場合は1ヶ月でRailsのレクチャーを全て終わらせれば29ドルですみます。(自分はそうしました。)

Ruby自体のレクチャーもありますが、とりあえずやるのはRailsだけで大丈夫です。

ひとつネックがあり、まだ日本語に対応していません。ただ、ビデオも英語字幕をつけられるので、リスニングできる必要はなく、高校卒業レベルのリーディングができれば進められます。図やイラストが豊富で、講師も表情豊なので、英語の「書籍」よりはずっとわかりやすいので、最近英語に触れてないなーと思う方もこの機会に是非挑戦してみて下さい。

なお、Railsの教材は良いものでも英語にしかない、といったケースが多いです。なので、少しずつ英語のリーディングに慣れていきましょう。

Ruby on Rails 5 アプリケーションプログラミング

Railsチュートリアルでハマったけど、英語が苦手でCode Schoolをやるのはちょっと厳しいというかたには、この書籍がおすすめです。Railsの参考書は、ある程度のスキルレベルを前提に書かれているものが多いのですが、この本は比較的入門者の視点にたって書かれています。

Code Schoolをやった人はこちらはやる必要はないです。

Ruby on Rails ガイド

Railsガイドのイメージ

Ruby on Rails ガイド

手を動かしてアプリを作っていくRailsチュートリアルとは対照的に、Ruby on Rails ガイド(通称「Railsガイド」)は体系的にRailsの使い方が説明されています。様々な項目ごとにしっかり整理された辞書のようなドキュメントで、WEBから無料で見ることができます。

入門レベルのうちは、Railsチュートリアルで出てきたわからないことなどについて、辞書的に調べるために使いましょう。非常に高度な内容も含まれているため、この段階で全て通読するのは効率的ではないです。

ただ、入門レベルを卒業されて、自分のアプリを一つ作ってみた後あたりに、一度このドキュメントを通読することをお勧めします。全て完全に理解できなくても、悩んだ時に「あー、この問題はRailsガイドのあの章に出てたな。」と頭の中にインデックスができるだけでも、問題解決のスピードが違ってきます。

入門レベル卒業の基準

以上の教材を使い、最終的にRailsチュートリアルを迷いなくすすめられる状態になれば入門レベルは完了です。逆に言えば、その状態になるなら、全ての教材をやる必要はなく、必要に応じてスキップしてOKです。 なので、基準となるRailsチュートリアルを最初にハマりながらもやってみることが効率的な学習の進め方になります。

中級者におすすめの教材

Railsチュートリアルを迷いなく進められる状態になった方に、私がつい最近取り組んだ教材で、Railsへの理解や開発効率の向上に役立った教材を紹介します。

RailsによるアジャイルWebアプリケーション開発 第4版

Sam Ruby (著), Dave Thomas (著), David Heinemeier Hansson (著), 前田 修吾 (翻訳) オーム社 第4版 (2011/12/1)

こちらはRailsチュートリアルに立ち位置としては近く、実際に手を動かして作っていくというスタイルの本です。ただ、顧客とのやりとりなども含まれていたり、よりAgileというスタイルにこだわって開発していく本になっています。また、Railsの創始者のDHHがところどころでコメントを書いており、DHHの開発思想により近い内容になっています。
Railsチュートリアルをやっていれば、こちらは難しく感じないはずです。レベル的には入門用にしてもよいくらいですが、Railsチュートリアルと多少立ち位置が近かったので、ここで紹介しました。

少し古い本なので、Railsのバージョンが3系となっています。3系で動かすことはできるので、考え方自体は学ぶことは十分できます。

英語版でよければ、Rails4系に対応しているものがもう出ています。英語に抵抗がないかたはこちらがおすすめです。

Sam Ruby (著), Dave Thomas (著), David Heinemeier Hansson (著) Pragmatic Bookshelf; 4th Revised版 (2013/10/11)

パーフェクト Ruby on Rails

すがわら まさのり (著), 前島 真一 (著), 近藤 宇智朗 (著), 橋立 友宏 (著) 技術評論社 (2014/6/6)

Railsで自分のアプリ作っていると、Rails自体の使い方はそこまでわからないことはないが、どういう設計で作ればいいのかと悩むことがでてきます。よく言われるのは、ファットコントローラーやファットモデルなど、一部分のコードが肥大化してしまって、管理しずらくなったり再利用性がなくなってしまったりします。

そのような設計面の悩みがでてきたタイミングでおすすめなのがこの本です。特に9章は色々な設計パターンが紹介されていて、管理しやすい設計をするのに非常に参考になります。

また、開発を楽にする最新のツール群も紹介されているので、より開発を効率化したい人におすすめです。

Everyday Rails - RSpecによるRailsテスト入門

Everyday Railsのイメージ

Everyday Rails - RSpecによるRailsテスト入門

Railsでよく使われるテストのフレームワークとして、RSpecとMinitestがあります。個人的にRSpecの書き方が好きなので、RSpecの本をご紹介します。

少し前までのRSpecのバイブルは「The RSpec Book」だったと思いますが、こちらはCucumberというちょっと個人的にはやりすぎだと思う領域にまで踏み込んでいるので、Everyday Railsのほうがおすすめです。

David Chelimsky (著), Dave Astels (著), Zach Dennis (著), 角谷 信太郎 (監修), 豊田 祐司 (監修), & 1 その他 翔泳社 (2012/2/22)

RSpecを学習するなら

RSpecを学習するなら、先ほど紹介したCode SchoolのRSpecのレクチャーも是非やってみてください。

また、RailsチュートリアルはMinitestを採用していますが、以前はRSpecを採用していました。おそらく、DHHがMinitestを使っていることや、よりシンプルなテストフレームワークへの需要が高くなっているので、Minitestに変わったのだと思います。ですが、個人的な肌感覚として、Rails界隈ではRSpecの勢力の方が全然強いので、RSpecをおすすめします。とはいえ、Railsチュートリアルで一度Minitestを触ってみることはとてもいい勉強になるので、やってみてください。

RailsチュートリアルをRSpecでやってみたいというかたは、古いバージョンのRailsチュートリアルを見ることもできるので、それでやってみるといいと思います。

Ruby on Rails チュートリアル version 4 第2版

以上がRailsの教材についてです。

こんなにも多くの教材があるのか、とびっくりされた方もいるかもしれません。でも、基本はRailsチュートリアルがサクサク進められさえすれば、他の本は面白いように理解できてくると思います。なので、まずは上で紹介した「入門レベル」の卒業を目指してみてください。

Mastodon(マストドン)

これは教材というより勉強方法です。Mastodonってご存知ですか?最近話題のRailsで作られたオープンソースの分散型SNSです。

マストドンはだれでもサーバーにインスタンスを立てて運営することができます。

Railsの他に、この手のサービスで使われる技術がたくさん使われているので、インスタンスを運営するだけでも非常に勉強になりますよ。

最初はどのようにコードを書いて、どんな技術を組み合わせてシステムを構築すればいいか、なかなかわからないものです。でも、Mastodonのコードや構成を見ていくと、お手本になるくらいしっかり作られているので、実際のサービスはどういう実装になっているのかが分かります。

インフラだったりフロントエンドの知識もつくので、中級者以上の方にはオススメの勉強方法です。

一番メジャーなクラウドサービスのAWSを使ってマストドンを構築する手順を作成したので、まずは手始めにやってみてはいかがでしょうか。

MastodonをAWSに構築するチュートリアル

3倍速でプロレベルになる方法

ここまで紹介した教材をこなすことで、独学で仕事で使えるレベルになることは可能だと思っています。

でも、人によっては1年、2年かかってしまう場合もあるかもしれません。一人だとわけのわからないエラーのために、1週間つぶす、ということもよくあることです。教材にエラー一つ一つについて対処法が書かれているわけではないですからね。

なので、全くのプログラミング未経験者が3ヶ月〜6ヶ月で仕事で使うレベルになるには、経験者から教わることがやはり必要かと思います。

経験者に教えてもらう手段としては二つあると考えています。

勉強会に参加する

日本全国大抵の都市であれば、Rails、あるいはRubyの勉強会が毎日のように行われています。

そのような場所に通うことで、ハマった時に相談できる人と繋がっておくのはエンジニアとして非常に重要です。

Rubyのコミュニティは基本的に、初心者に親切と知られています。これはRubyの創始者のMatz(まつもとゆきひろ)氏の性格をコミュニティ全体が受け継いでいるためと言われています。これはMINASWAN(Matz is nice so we are nice)という標語としてよく語られます。

勉強会はconnpassという勉強会サイトでたくさんみつかります。

connpassで”rails”と検索した結果

また、各地域にRubyのコミュニティは大抵あります。うちの近くならYokohama.rbkawasaki.rbがあります。

きっとあなたの地域にもあるはずです。下のページに全国のRubyの地域コミュニティがまとまっているので探してみてください。

地域Rubyの会

勉強会は基本的に有志で行われているので、費用は会場費程度です。ただ、いくらRubyコミュニティが初心者に親切だとはいえ、基本的に他の人も自分の勉強をしに来ているので、ずっとべったり教えてもらえる、ということはないです。空気を読みながら、聞きたいことを絞って質問する、ということにはなると思います。

ちなみに、自分は横浜で時々Railsの勉強会に出ているのですが、その様子は下の記事に書いています。

第14回ベイサイドRuby on Rails勉強会@マスマスに参加しました

スクールを利用する

プログラミング未経験の方は、有料のスクールを利用して、経験者に質問しまくるのもアリだと思っています。

プログラマーの職場で、先輩に質問すると、

ググれカス!

と罵倒されることがあります。(実際はもう少し柔らかい言い方ですが)

人に聞く前にまず検索して調べろ、ということですね。

私はこれは業界の悪弊だと思っています。

調べるスキルをつけることは大切ですが、あまりにそれを重視し過ぎると、現場の人しか知らないノウハウが共有されないという事態が発生してしまいます。

なので、上級者はあまりケチケチせずに教えるべきだし、初心者はどんどん聞いていくべきです。なので、「調べるスキルが重要だから独学でやらなきゃダメ!」というこだわりは捨てても良いのでは、と思います。

また、この業界は非常に技術の流行り廃りが速いです。数年かけてRailsを習得したとしても、その時にRailsが世の中的に求められていない可能性もあります。なので、なるべく時間をかけずに習得したほうがいいのです。

有料である程度期間が区切られているので、元をとるためにその期間はしっかり集中してやるというモチベーションにもなります。お金をかけずにやるのも良いのですが、時間を決めずにダラダラやっていると、結局Railsを習得できず仕事にもありつけず、結果的に経済的に損をするということになりかねません。

逆に、Railsの技術者の給与が高騰している今、すぐに習得して仕事を開始すれば、スクールの費用は一瞬で取り戻すことが可能です。

Railsのコースに強みを持つスクールはいくつかあるのですが、下のページが良くまとまっています。どれがいいか決められない場合は、いくつか体験レッスンを受けてみてフィーリンングで決めてもいいと思います。

優良Ruby on Railsスクール厳選5選!

個人的には、オンラインで質問し放題で現役のエンジニアが教えてくれるテックアカデミーがいいと思います。他のスクールは普通に学生とかが講師やってます。。。

どのようにレッスンが進むか、無料体験レッスンを受ける、もしくは、無料説明会動画を視聴するとよくわかるので、興味がある方はそれだけでもやってみるといいかもしれません。

プロから学び放題でRailsを最速マスターする