独学で習得するRubyOnRailsプログラミング学習手順ガイド

こんにちは!テクトレブログ編集部です!
今回は、自分の力でRuby on Railsを学ぶためには、どの教材をどの順番で学んでいくと挫折せず効果的にRuby on Railsを学ぶことができるかについて、書いていきたいと思います。
この記事の対象者
はじめに、この記事は次のような人に向けて書かれています。
- Webエンジニアを目指していて、これからRubyやRailsを習得したい
- RubyやRailsを使ってオリジナルWebアプリを作って運用してみたい
Webアプリを制作できる言語はRubyに限りませんが、Rubyは日本人が開発した言語ということもあり、日本語のドキュメントや教材が充実しているなど、学習しやすい環境が整っています。
裏を返すと、学習コンテンツが多すぎて、どれを使って学習したらよいのか戸惑ってしまいそうです。
そこでこの記事では、プログラミング初心者がRubyやRailsを習得するために、どの教材をどのような点に意識して学習していけば効率的に学習できるのか解説していきます。
この記事で扱わないこと
この記事では、RubyやRails以外に必要な知識の習得方法や手順については解説しません。
Webアプリを開発するためには、RubyやRailsの知識のほかにも、HTML、CSS、JavaScript、さらには言語だけでなく、HTTPやデータベースなどのWebアプリを支える仕組みに関する知識が必要です。
Webアプリを開発する際に知っておきたい、言語やフレームワーク以外の知識や教材については、以下の記事で紹介しています。
あわせてご覧ください。
Web開発者を目指すなら知っておきたい基礎知識とおすすめ教材(前編)
Web開発者になるなら欠かせない最低限のIT知識とおすすめ教材(後編)
Rails学習者のエンジニア転職で必要なスキル
教材に沿ってサンプルアプリを作るだけでは足りない
一通り教材をなぞってサンプルアプリを作っただけでは、エンジニアに転職することは難しいでしょう。
職場では当然のことながらサンプルがないので、自分でロジックを組み立ててコードを書かなければなりません。
ですので、サンプルアプリに機能を追加したり、シンプルでも構わないのでオリジナルアプリを作ってみることをおすすめします。

テストコードも追加できるとより良い
教材に載っているサンプルアプリに自分で機能を追加したり、オリジナルアプリを作るにあたってテストコードも書けると、エンジニア転職をする際などに有利に働くでしょう。
テストコードとは?
テストコードとは、書いたコードが想定通りに動作するか検査するコードのことです。
テストというと、ブラウザを開いてフォームにメールアドレスを入力して、送信ボタンを押して...と手作業で確認することを想像するかもしれません。
この作業を自動化してくれるのがテストコードです。自動テストとも言われます。
なぜテストコードが書けると良いのか
テストコードを書くことによって、アプリの品質を担保することができます。
職場で扱うコードは規模が大きく、ロジックも複雑なことが多いです。
アプリをリリースしたら、保守していかなければなりませんし、サービス改善のために仕様を変更することも考えられます。
もしテストコードを書かないと、どういうリスクがあるでしょう?
仕様変更のためにコードを書き換えた場合、想定していない箇所にまで影響が及んで、今まで問題なく動いていた機能が使えなくなってしまうこともあり得ますよね。
テストコードを書いていれば、コードの変更が意図しない箇所への影響し一部の機能が使えなくなってしまっても、その部分に対するテストがパスしなくなるので見落としがなくなるのです。
Railsのバージョンと学び方
学習にあたって、教材のRailsのバージョンを確認しておきましょう。
2019年8月現在の最新版は、8月15日にリリースされたばかりのRails6です。
ただ、リリース直後なので基本的にはRails5を使って開発しているところが多いです。
また、Rails4を使用している職場もあるので、Rails4を扱っている教材を使って学習しても良いでしょう。
用意する開発環境について
プログラミングの開発環境といえば、まずはパソコン選びですよね!
テクトレの連載漫画「東雲すみれのWeb開発」の主人公すみれも、パソコン選びからプログラミングの第一歩を踏み出しています。
プログラミング初心者がRubyやRailsを使ってプログラミングを始めるならば、MacとWindowsどちらを使って学習すべきなのでしょう?
おすすめは環境構築がより簡単なMac
初心者がRuby on Railsを使ってプログラミング学習を始めるならば、Macをおすすめします。
その理由は、開発環境構築の手間が少ないからです。
MacにはRubyが予めインストールされているため、Windowsよりも簡単に開発環境が構築できます。
学習の敷居の低さから考えてMacとWindowsどちらか一つを選ぶとすればMacが良いでしょう。
プログラミング初心者にMacをオススメする理由としては、こちらの記事も併せてご覧ください。
初心者のプログラミング学習にMacの開発環境がオススメされる理由
もちろん、「とりあえず手元にあるWindowsで開発したい」という場合は、RubyInstallerを使いRubyをインストールする、またはWSL(Windows Subsystems for Linux)という機能を使いWindows上でLinux環境を構築してRubyをインストールするなどして開発環境を構築することもできます。
しかし、Macで環境構築をする場合より煩雑な手順を踏む必要があります。
また、RubyやRailsで開発をしている人はMacを使っている人が多く、質問投稿サイトなどでもMac前提の回答が多く見られることも、Macをおすすめする理由のひとつです。
学習教材(入門)
それでは、どのような学習教材を使うとスムーズにステップアップしていけるのかを紹介していきたいと思います。
まだRubyやRailsに触れたことがない初心者の方は、次に紹介する教材で学習してみましょう。
RailsアプリはRubyを使って書かれているので、最初にRubyの基礎文法を学んでから、Railsの学習を進めるという順番がおすすめです。
Rubyのおすすめ教材
まずは、ProgateまたはドットインストールでRubyの基礎文法を学習しましょう。
Progateは環境構築が不要ですぐに学習を始めることができるので、とりあえず触れてみたい場合におすすめです。
ただ、有料会員に登録しないと、基礎文法全部を網羅できないので、Progateで基礎文法を完結させたい場合は有料登録をする必要があります。
Progateはスライドが見やすくてオススメですが、どうしても無料で学習したい方はドットインストールで学習するということもできます。
ドットインストールの Ruby入門は、1テーマにつき3分ほどの動画講義をみていくことで文法の基礎知識を網羅できます。
こちらは、基本的には無料で学ぶことができますが、動画講義で紹介されているソースコードをテキストで閲覧したい場合などはプレミアム会員へ登録する必要があります。
ドットインストールはProgateとは異なり開発環境の構築が必要になりますが、構築方法もドットインストールで学習することができます。
Progate | Ruby
https://prog-8.com/languages/ruby

ドットインストール | Ruby入門
https://dotinstall.com/lessons/basic_ruby_v3

Railsのおすすめ教材
Rubyの基礎文法を学習したら、Railsを学んでいきましょう!
Railsの学習は、教材に沿ってサンプルアプリを作ることで学習すると良いでしょう。
Railsでアプリを作る場合には、いくつものコマンドを使用します。
Railsのコマンドは便利なのですが、眺めていてもなかなか覚えられません。
そこで、教材に沿ってコマンドなどを打ち込んで、実際に動かせるRailsアプリを作っていくことで楽しく覚えていくことをおすすめします。
ProgateはRubyの場合と同じように、有料会員にならなければコースの途中までしか学習できませんので、Progateで一通りRailsの主要機能を学習したい方は有料会員になると良いでしょう。
Progateは環境構築不要ですぐに試せたり、スライドが多くわかりやすいなど、初心者に親切な機能がたくさんあるのでおすすめです。
ドットインストールは無料で一通りの主要機能を試しながらアプリを作ることができます。
こちらは、無料で使えますが、ソースコードをテキストで閲覧したい場合などは有料会員登録をする必要があります。
Progate Ruby on Rails 5
https://prog-8.com/languages/rails5
ドットインストール Ruby on Rails 5入門
https://dotinstall.com/lessons/basic_rails_v3
はじめてRailsを触る場合は、まず教材のサンプルを実際に打ち込みつつRailsの使いかたを学んでいくことが重要です。
書籍を読んだり、動画を視聴するだけではなく実際に手を動かして、動くアプリを作ってみましょう!
他の教材も使ってステップアップ
Progateやドットインストールは非常にわかりやすく、簡単なアプリを作りながら楽しく学べるため入門者にうってつけの教材ですが、わかりやすくするために紹介する機能や観点を絞っています。
そのため、より本格的なアプリを作ろうと思った場合、Progateやドットインストールでは足りない観点が出てくるでしょう。
そこで、Progateまたはドットインストールを一通り終えたら、入門教材として以下の2冊に取り組んで、不足している観点を補っていくことをおすすめします。
基礎Ruby on Rails
https://www.amazon.co.jp/dp/429500460X/
出版社: インプレス; 改訂4版 (2018/9/7)

目標
- モデルの関連付けを習得しよう
- 画像ファイルのアップロードを習得しよう
- 管理ページの作り方を習得しよう
ポイント
『基礎Ruby on Rails』では、架空の草野球チームのサイトを作りながら学習します。
会員制のブログ投稿サイトを作りながら、各種機能を実装していくアウトプットを想定した内容になっています。
また、それぞれのChapterの最後に練習問題があるので、しっかり取り組むとエッセンスが身につきやすいでしょう。
この本では特に、モデルの関連付け・画像アップロード・管理ページの作り方について習得することを心がけると良いでしょう。
現場で使える Ruby on Rails 5 速習実践ガイド
https://www.amazon.co.jp/dp/4839962227
出版社: マイナビ出版 (2018/10/19)

目標
- テンプレートをSlimで書けるようになろう
- RSpecの基本的な書き方を習得しよう
ポイント
『現場で使える Ruby on Rails 5 速習実践ガイド』では、タスク管理アプリを作りながらRailsの実践的な開発テクニックについて学んでいきます。
入門レベルから実践レベルまで幅広い知識を扱っていますが、初心者でもつまづかないように丁寧に解説されているところがポイントです。
「入門編」「レベルアップ編」「発展編」に大きく分かれていますが、「発展編」は難しく感じると思うので、レベルアップ編までで一度止めておくのも良いでしょう。
処理の流れや用語の解説をするイラストも多く理解しやすいです。
Progateやドットインストールでは、デフォルトのテンプレートエンジンであるERBを使用していますが、この教材ではSlimと呼ばれるHTMLをより簡潔に表現できる記法を採用しています。
開発現場ではよく使用されるので、この本を使って学んでおくと後に役に立つでしょう。
また、RSpecという自動テストフレームワークについても解説されているので、基本的な書き方を学んでおきましょう。
学習教材(発展)
入門教材を終えたら、RubyとRailsをさらに詳しく学んで、知識を深めていきましょう。
プロを目指す人のためのRuby入門

目標
- 自信を持ってRubyを読み書きできる
- より効率的なコードを書けるようになる
ポイント
タイトルに「入門」と書かれてはいますが、プログラミング初心者向けではありません。
他の言語をすでに習得している人や、ある程度Rubyを学んだ人がさらにRubyのプロとしてステップアップしていくための「入門」です。
Rubyの本ですがRailsの使用を意識して書かれており、Railsを扱うなら押さえておきたいRubyのポイントについては特に詳しく説明されています。
分厚い本ですが、分厚い=難しい、ではありません。
それだけ解説が詳しく、細かな理解がしやすい本ということでもあります。
入門教材で学んだ知識をさらに発展させ、実践的な知識を身に付けるために活用しましょう。
Ruby on Rails Tutorial

目標
- Gitによるバージョン管理に慣れよう
- テストコードを書いてから実装するテスト駆動開発に慣れよう
ポイント
『Ruby on Railsチュートリアル』は、非常に優れたRails学習書である『Ruby on Rails Tutorial』を翻訳したもので、YassLab株式会社によって運営されています。
Ruby on Railsチュートリアルでは、TwitterのようなSNSアプリを開発し、デプロイするところまで学ぶことができます。
また、開発はGitというバージョン管理システムを使いながら行うので、Gitによるバージョン管理にも慣れることができます。
開発環境にはAWSのCloud9を使うので、環境構築でつまづいてしまう可能性は少ないと思いますが、力試しとして自分のローカルに環境構築をして開発するのも良いでしょう。
後半は難しく感じると思いますが、「一度で全てを理解できなくてもいい」という心構えで学習しましょう。
EveryDayRails Rspec入門
https://leanpub.com/everydayrailsrspec-jp
価格: 最低19ドル(サイトをご覧ください)
※電子書籍のみ

目標
- 実際にテストを書いて、できればCIも動かしてみよう
ポイント
『EveryDayRails Rspec入門』では、テストコードをどう書いていくかについてテクニックを学んでいきます。
RSpecによる自動テストについて知識を深め、バグの少ないアプリ開発を目指しましょう。
余力があればCI(継続的インテグレーション)ツールとGitHubを連動させてみるのもおすすめです。
CIとはテストコードを任意のタイミングで実行する手法です。
例えば、コードをGitHubにプッシュした段階で、テストコードを実行できます。
このようにテストを自動化することで、バグの早期発見につながり修正することも容易になります。
オリジナルアプリを作ってみよう
以上で紹介した教材を使って学習すれば、RubyとRailsについてはアプリを開発する土台となる基本的な知識は身につくでしょう。
あとは知識を実践力にするために、オリジナルアプリを作ってみることが重要です。
自分の趣味と関連させたアプリであれば、転職面接時の話のタネにもなりますね。
作りたいアプリが思い浮かばないときは、学習した教材と似たアプリでもいいので、
- 登録・編集・削除機能
- 一覧・詳細表示機能
- 画像ファイルアップロード機能
- ユーザー登録
- ログイン機能
- テスト機能
など、重要な機能が一通り備わったアプリを作ってみましょう。
教材のようにサンプルがあるわけではないオリジナルアプリを実装することによって、やりたいことをコードに落とし込んだりする力がつきます。
現場でもサンプルコードはなく、自らコードを考えていくことになるので、この練習は必要不可欠でしょう。
まとめ
独学でRailsエンジニアに転職、あるいはRailsでオリジナルアプリを運用してみたいなら、
- ProgateまたはドットインストールでRuby→Railsの順に学習
- 『基礎 Ruby on Rails』『現場で使える Ruby on Rails 5 速習実践ガイド』で不足している観点を補う
- 『プロを目指す人のためのRuby入門』『Ruby on Rails Tutorial』でステップアップ
- 『EveryDayRails Rspec入門』で自動テストを習得
の順に学習し、そして最後にオリジナルアプリを作ってみましょう。
ただ、オリジナルアプリには正解のソースコードはないため、我流の実装になってしまうこともあるでしょう。
それが心配な方は、メンターと契約してコードレビューをしてもらったりすると良いかもしれません。
またテクトレでも、下記のようなコードレビュー主体の実践的トレーニングサービスを行なっております。
理解度に自信がない方へ
株式会社テクトレでは8月より、現役エンジニアによるコードレビューを中心としたRuby on Railsトレーニングプログラム「現場で迷惑をかけない為の Ruby on Rails 実務トレーニング」を提供しております。

「独学なのでどこまで理解していれば職場で迷惑をかけずに活躍できるのか不安」という方はぜひ一度こちらをチェックしてみてください。
8月中はキャンペーンを行なっておりますので、ぜひぜひ今のうちにご覧ください!
