プログラミング初学者あるあるの学習手順として
- Progate
- Ruby on Railsチュートリアル
- ポートフォリオ作成
が挙げられますが、この中でも2の「Railsチュートリアル」は
内容が膨大で難しく、挫折率が高いと噂になっていますね。
実際にGoogleで調べてみても、「Railsチュートリアル 挫折」という予測キーワードが出るぐらい挫折者が多いようです。

そんなRailsチュートリアルですが、一体何がそんなに難しいのか気になる人も多いと思います。
そこで今回、Railsチュートリアルを2周したYUUKIが
・Railsチュートリアルの概要
・難しい理由
・挫折者が多い原因と解決策
この3点を解説したいと思います。
Railsチュートリアルとは?そもそも何ができるようになるの?
まず始めに、Railsチュートリアルって一体何なのか、理解せずにチュートリアルを始めようとしている方も多いと思うので、先に説明します。
Railsチュートリアルとは、
TwitterのようなWebアプリケーション製作を通して、Railsの基礎を学ぶネット上の無料学習教材
です。
「Webアプリケーション」と言うのは、Webブラウザ上(IEとかChrome)で使えるアプリのことです。
Railsチュートリアルでは、以下の機能が付いたWebアプリを製作します。
|
Railsチュートリアルを通じて学べる「Railsの基礎」は、主に以下の5つを指しています。
|
つまり、上記の機能を備えたWebアプリ製作を通して、Ruby on Railsの基礎を学ぶのがRailsチュートリアルです。
チュートリアルを最後までやり遂げると、このような成果物が完成します。

Railsチュートリアルを通して作ったWebアプリ
ID:example-2@railstutorial.org
password:password
↑でログイン出来ます。
ただ勉強するのではなくて、物を作りながら学ぶ為
知識を体系的に吸収しやすい
というのがRailsチュートリアルの特長です。
Railsチュートリアルが難しい理由
では、一体何故Railsチュートリアルが難しいと言われるのでしょうか?
その理由は、大きく分けて下記の4点だと思います。
|
順を追ってみていきましょう。
専門用語が多すぎる
Progateでは専門用語が登場する度に、図柄入りの分かりやすい説明がなされていて、初心者の方でも挫折せず進められたと思います。
しかし、Railsチュートリアルでは専門用語が解らない読者は置いてきぼりにされ、次々と新しい用語が登場します。
勿論、上記のような趣旨は1章に書かれているのですが、後半に掛けては(特に7章以降)専門用語のオンパレードとなります。
例えば、7章では`form_for`メソッドについて下記のような説明があります。
<%= form_for(@user) do |f| %>
.
.
.
<% end %>
do
キーワードは、form_for
が1つの変数を持つブロックを取ることを表します。この変数f
は “form” のfです。出典:7.2.2 フォームHTML
通常、Railsヘルパーを使っている場合、実装の詳細について知っておく必要はありません。ただしfというオブジェクトが何をするのかは知っておく
必要があります。このfオブジェクトは、HTMLフォーム要素 (テキストフィールド、ラジオボタン、パスワードフィールドなど) に対応するメソッドが呼び出されると、@userの属性を設定するために特別に設計されたHTMLを返します
form_forはビューで値を送信する時に使うRails独自のメソッドなのですが、上記の説明で何言ってんだコイツと思った人は僕だけじゃないでしょう。
ラジオボタン?パスワードフィールドってどれ?ってなったらチュートリアルのドロ沼にはまります。
解らない言葉が出る度にググって知識を身に付けることで、ググる力が身につくと言えばその通りですが、にしても用語の説明なしだとこれらの専門言葉を理解するのは大変ですよね。
説明が簡略化されすぎ
例えば7章の7.4.1でこのような構文が出現します。
def create
@user = User.new(user_params)
if @user.save
redirect_to @user
else
render 'new'
end
end
これはアカウント新規作成時に使われる「createアクション」の中身ですが、処理を見てみると、アカウント作成成功時に@userへredirectさせると指示していますね。
分岐処理(if-else)では、アカウント作成が完了したら(true)プロフィールページへ飛ぶように指示し、失敗したら(false)新規作成画面を再び描画するように指示しています。
さて、僕がここで説明が簡略化されていると思ったのは「redirect_to」の部分です。
「redirect_to」と言えば、ページ遷移時に使われるRails独自のメソッドですね。
ProgateではURLを引数に渡すことで、指定したページに転送していたと思います。
しかし、RailsチュートリアルではURLでもなく「@user」を引数に渡しています。
この説明について、Railsチュートリアルではこう書かれています。
ここで、
redirect_to @user
といった行がありますが、これは次のコードと等価になります。
redirect_to user_url(@user)出典:7.4.1 登録フォームの完成
これはredirect_to @user
というコードから (Railsエンジニアが)user_url(@user)
といったコードを実行したいということを、Railsが推察してくれた結果になります。
ちょ、ちょっと待って。
そもそも「user_url(@user)」って初めてみた書き方なのに、「〜といったコードを実行したいということを」何て言われて理解できるわけない笑
この部分に関しては、Qiitaに素晴らしいまとめを書いて下さった方がいるので、こちらを参考にするとスッキリします。
redirect_to @userが何を省略しているかわかりますか?〜挫折しないRailsチュートリアル7章〜
これだけの内容をRailsチュートリアルではたった7行で解説しています。
簡略化しすぎてて、初心者にはちょっと辛いものがあります。
上記の記事に出会えなければ挫折してしまうでしょう笑
テストが長い
Railsチュートリアルを実際にやると分かりますが、その内容の約3割がテストです。
テストとは、簡単に言うと誤った処理を見過ごさない為に行う確認工程のことです。
Railsチュートリアルでは先にテストを書いて、後にエラー箇所を直していく「テスト駆動開発」と言う手法が取り入れられているので、何か処理を書く度に、テストも追加していきます。
ただチュートリアルでは、このテストの量が膨大な為、躓きやすいんですよね。
また、テストは本来誤った処理を発見する為に書くものですが、これが初心者ですと
そもそもテストが間違っているせいでエラーが発生してしまうという矛盾が生じてしまいます。
(Railsチュートリアルあるある)
5 runs, 4 assertions, 0 failures, 1 errors, 0 skips
1 errorsとか出てきて、どこが間違ってるのか分からずに四苦八苦するんですね。
結果、単純な記述ミスであることが多くて「この一文字が原因かよ」と落胆すること多し。
これもテストが長いからこそ、やらかしてしまうミスだと思います。
本番環境でのエラー頻発
RailsチュートリアルではHerokuというサービスを使って、作ったアプリを本番環境で動かす(デプロイ)のですが、このデプロイ時にエラーが頻発してしまうのも難しい理由の1つです。
例えば僕の場合、13章のSendGrid(メール送信システム)でスパム判定を食らったせいで、Heroku上でどうしてもアカウント有効化メールが送れないと言う問題に直面し、かなり頭を抱えました。
他にも、CSSが適用されなかったり、DBのデータが反映されなかったりと本当に苦労しました。

今ではある程度デプロイにも慣れてきましたが、最初の頃は必死でしたね。
デプロイ時のエラーに関しては、もう環境依存の問題なのでとにかくググって解決するしかありません。頑張って原因を探りましょう。
挫折しない解決策
挫折者が多い理由については、先ほど挙げた4つの難しい理由と同じです。
簡単にまとめると以下の2点になります。
・内容が難しくて理解できない
・エラーが解決せず進まない
内容が難しくて理解できない場合は飛ばせばいいと思いますが、エラーが解決しない場合はどうしようもありませんよね。
そんな方には、Railsチュートリアルと連携しているプログラミングスクール「ポテパンキャンプ
」に通うことをオススメします。
いつまで経っても解決しないエラーに時間を割いては時間の無駄です。
ポテパンキャンプ
では、選抜クラスとオープンクラスの2つに分かれているのですが、選抜クラスの中にある「ビギナーコース」では、講師陣と共にRailsチュートリアルの動画教材を用いて、アドバイスを貰いながら進めるカリキュラムが存在します。
ここに通えば、分からない部分は講師陣にサポートしてもらえるので、挫折した人でも問題なくRailsチュートリアルを完走することができます。
カリキュラムにはRailsチュートリアルだけでなく、ECサイト開発も含まれているので、受講生が上手くステップアップできる仕組みが施されています。
また、CTO(最高技術責任者)が講師に付いており、講師から質の高いレビュー(書いたコードを評価してもらえる)を受けることができます。
上記の施策により、プログラミングのスキルはどんどん向上していくでしょう。
Railsチュートリアルが難しい理由や挫折する原因まとめ
Railsチュートリアルが難しい理由は
|
以上の4つです。
そして、挫折者が多い原因やその解決策は
|
以上の3つとなります。
プログラミングは独学で学ぶ人の9割が挫折すると言われています。
途中で挫折しては折角学んだ内容が無駄になってしまうので、使えるものは使っておきましょう。