Railsチュートリアルって何?難しい理由や挫折者が多い理由を解説

Ruby on Rails

プログラミング初学者あるあるの学習手順として

  1. Progate
  2. Ruby on Railsチュートリアル
  3. ポートフォリオ作成


が挙げられますが、この中でも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つを指しています。

  • MVC(Webアプリの裏で行われている動きのこと)
  • フロントエンド(ブラウザで目に見えて分かる動きの部分のこと)
  • セキュアなシステム構築(ハッキング対策のこと)
  • テスト駆動開発(失敗する動きを先に書いて、それを直していく開発手法のこと)
  • リファクタリング(コードを綺麗にすること)


つまり、上記の機能を備えた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です。


通常、Railsヘルパーを使っている場合、実装の詳細について知っておく必要はありません。ただしfというオブジェクトが何をするのかは知っておく必要があります。このfオブジェクトは、HTMLフォーム要素 (テキストフィールド、ラジオボタン、パスワードフィールドなど) に対応するメソッドが呼び出されると、@userの属性を設定するために特別に設計されたHTMLを返します

出典:7.2.2 フォーム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)


これはredirect_to @userというコードから (Railsエンジニアが) user_url(@user)といったコードを実行したいということを、Railsが推察してくれた結果になります。

出典:7.4.1 登録フォームの完成


ちょ、ちょっと待って。


そもそも「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割が挫折すると言われています。


途中で挫折しては折角学んだ内容が無駄になってしまうので、使えるものは使っておきましょう。

勉強会で聞いた!評判のプログラミングスクール3選
ポテパンキャンプ

【特長】
3ヶ月のスクール代を全額キャッシュバック!
実質無料で学べるプログラミングスクールです。

【こんな人にオススメ】
・Railsチュートリアルをやり切った
・お金はないがやる気はある
・Ruby/Railsを中心に学びたい
・初心者の域を脱したい

TECH::EXPERT

【特長】
600時間の学習!
スパルタカリキュラムで高収入な転職を実現させるプログラミングスクールです。

【こんな人にオススメ】
・最短最速でエンジニア転職したい
・今の環境をいますぐ変えたい
・お金があってやる気もある
・もう挫折したくない

DMM WEBCAMP

【特長】
転職成功率98%
基礎からプロダクト制作まで徹底したカリキュラムで学べるプログラミングスクールです。

【こんな人にオススメ】
・Web系企業に就職・転職したい
・インフラ系からスキルチェンジしたい
・短期間で集中して学びたい
・チーム開発を学びたい

Ruby on Rails
この記事を書いた人

元専業アフィリエイター・ブロガー。
現在はWebエンジニアの25歳。
運営メディアは月間150万pvを超えたことも。

YUUKIをフォローする
シェアする
YUUKIをフォローする
YUUKIのWebエンジニア道