DIVE INTO CODE

2019年05月03日

プログラミングスクール代表が勧める『Railsチュートリアル』の学び方

Aws4 request&x amz signedheaders=host&x amz signature=7d670e47010aaadc9ae7fd41478214cb7a859be32850477265cedb5f48db8da1

全くのプログラミング初心者がRubyを独学するための道筋をプログラミングスクール代表野呂がお教えします。Rubyを独学できるおすすめの教材『Railsチュートリアル』を身につけると「どのレベル感までいけるのか」もお話しています。

【こんな方におすすめ】
・全くの未経験からのエンジニアを目指している方
・プログラミングスクールを検討している方
・『Railsチュートリアル』を知らなかった方

【目次】
1.オンライン学習サービスProgateなどで、まず超基本を押さえよう
2.『Railsチュートリアル』の前に、ドットインストールなども触ってみる
3.『Railsチュートリアル』は受験勉強のように3周繰り返して完成度を上げる
4.動かす楽しさを覚えてからテストの重要性を知る、という順に体感していく
5.人に質問できる・ともに学ぶ仲間がいることがスクールのメリット

■話し手
DIVE INTO CODE 代表 野呂 浩良
■聞き手
StartGate 永田 拓也

DIVE INTO CODEで教えているRubyを習得する前提で話を進めますが、これからエンジニアを目指す方ならどなたでも役に立つ内容となっております。

オンライン学習サービスProgateなどで、まず超基本を押さえよう

本日もよろしくお願いします!

『Railsチュートリアル』について、私、プログラミングスクール代表の野呂が勧める学び方を今日はお話します。
『Railsチュートリアル』というRuby on Rails(Rubyで書かれたフレームワーク)の有名なオンラインの教材があるのですが、それをいきなりゼロから学ぶのは難しいので、まずは
・プログラミングとはそもそも何?
・Git(バージョン管理システム)にソースコードを登録するってどういうこと? 
・インターネット上でシステムが動くとは?

などの基礎の部分をインターネット上でGoogle検索するなどして学んでおき、『Railsチュートリアル』を学ぶ前に下準備をしましょう。

特に全くの初心者がプログラミング言語を学ぶ第一歩として私がおすすめするサービスが『プログラミングの入門なら基礎から学べるProgate(プロゲート)』です。
・Progateはオンラインのプログラミング学習サービス
・Webサイト制作に必要なHTML/CSS、JavaScript、 jQueryや、サーバーサイドのRubyやRuby on Rails、PHPなどが学べる
・環境構築(サーバなどの開発環境、実行環境の構築)が不要
・日本人が作っているので全て日本語で理解できる
・延べ10万人以上の方が使っている
・有料部分もあるが、基本無料

海外のものだと『Codeacademy(コードアカデミー)』などいろいろあるのですが、Progateは日本人が作っているので分かりやすく、かつ無料です。ブラウザだけで進められて、学んだだけポイントが付くのでゲーム感覚で学べて楽しいです。初心者に一番おすすめです。

そうなんですね!

はい。まずはこれをやりましょう。

『Railsチュートリアル』の前に、ドットインストールなども触ってみる

次に自分でプログラムを書いて、アレンジしてみる段階へ移ります。
・ドットインストール……3分動画でマスターする初心者向けプログラミング学習サイト
・paiza(パイザ)……ITエンジニア・プログラマ専門の総合求職・学習サイト

などを触って基礎〜応用を学びます。複数のサービスを何パターンか触ってみたほうが、プログラム言語の使い方が分かってくるのでおすすめです。その上で初めて『Railsチュートリアル』に臨んでいただければと思います。

最初に『Railsチュートリアル』から入っちゃうのは危険ですか?

そうですね。「全くの初心者でプログラミング自体が初めての人は止めたほうがいいかもしれない」と、私なら伝えるかもしれません。
なぜかというと『Railsチュートリアル』はプログラミングを学ぶ教材ではなくて、プロダクト開発を学ぶ教材だからですね。文法などに関する説明もありますが、
・ テストやデータベースを使った開発
・ Bootstrap を使ったデザインと実装
・ バージョン管理やブランチを使ったソースコード管理
・ 開発したアプリケーションを本番サーバーにデプロイする

といったプロダクト開発で必要となる周辺知識が学べる教材となっています。このため全くの初心者がRailsチュートリアルから始めると、プログラミング学習と並行してプロダクト開発に必要な上記の要素も学ぶことになるため、学習が詰まってしまうことがあります。

『Railsチュートリアル』は受験勉強のように3周かけて進める

プロゲートなどで基礎を積んでから『Railsチュートリアル』に入り、一つひとつググる(調べる)ことを心がけてください。単語帳で勉強するみたいに意味を都度、咀嚼しながら1つずつ進めるのがいいです。用語が分からないまま放置して進めるとイメージを掴めずにただコードをコピペ(コピー・アンド・ペースト)してるだけのようになってしまいます。

なるほど。それでもできちゃうのがRailsなんですよね?

そうですね。なので用語をちゃんと理解して意味を知り、調べながら進めるのは鉄則。それでも、調べても意味が分からずに止まってしまうときはあります。そうすると勉強がつまらなくなってしまう。そういうときは割り切ってコピペして進んじゃってください!

ははは(笑)。それはアリなんですね?

アリです。にっちもさっちもいかないならそのまま進めてください。ちゃんと手順通りに作っていけば「できた」瞬間が訪れます。それで面白いと思えたらまた教材の最初に戻る。1周目、2週目、3週目……と進めます。

受験勉強みたいですね。

そうなんです。
・1周目……用語を調べながら
・2週目……作ったものを咀嚼して、分からなかった部分を理解しながら
・3週目……完璧に理解できることを目指す

なるほど。ちなみに1周するのにどれくらい時間がかかるものなんですか?

人によりますが……。この教材は全部で14章くらいあり、1章を終えるのにコピペだけなら1時間、理解しながら進めると1日以上かかります。
最初は1日1章かかるとして少なくとも10日間。2周目が半分くらいで5日間。3週目も同じくらいで5日間。3周分トータルなら20日間〜丸1カ月ほど、フルタイムで取り組めば終えられるでしょう。
ただしこれは「完全にゼロからプロダクト開発を学ぶ場合」で、既にプロダクト開発をした経験があるなら、その限りではないです。プログラミング言語は分かっているがRailsは初めて、という場合も1カ月ほどかかるでしょう。

3週まで終えたら、どの程度のレベルまでいけているものなんですか?

何を理解する必要があるかという範囲や全体像」は一通り分かるようになります。ただしそれで、コードを書けるレベルかというと分からないです。なぜなら教材には手順が書いてあるのでそれをなぞることはできる。しかし自分で応用して、コードを書き換えたときにどうなるかまで理解しているレベル感かというと、怪しいです。

「道具の使い方が分かっている」くらいのレベルでしょうか?

そうですね。
・自分で書き換えて機能を付け足してみた
・中の機能を改変してみた
・ここを書き換えたらエラーにならないか確かめてみた

などの試行錯誤の頻度や回数が増えるほど成長します。逆にその経験がないと、少しでも道から逸脱したら作れないと感じてしまい、応用が利かない可能性はあります。

動かす楽しさを覚えてからテストの重要性を知るという順に体感していく

段階としてはまずプログラムの基礎を知り、次に『Railsチュートリアル』を学ぶのは分かりました。他に、心得みたいなことはありますか?

実体験から言うと、最初はとにかく「動くものを作る」ところを目指すのがいいと思います。プログラミングでは「テスト」という、「コードの品質の担保を目的としてチェックするためのコード」を書かなきゃいけないことがたくさん出てきます。もしかしたら最初はそれを飛ばして無視し「動くコードだけを書くこと」に集中して、最初は動くものを書ける楽しさを意識することが大事でしょう。

確かに、楽しくない勉強はしたくないですね。

そうですね。楽しさを味わってもらえるポイントはそこだと思います。その上で、動かしてエラーが出ちゃったときに、修正して画面上でちゃんと動くかどうかをいちいち何度も確かめる作業を行なうのは大変です。だからそれをやらずに済むように、コードをチェックするのがテストのコードなんです。テストは使っているとありがたさがなんとなく分かってくる。「ここでテストをしておいたほうが機能を改修したときにいいのかな」というのが2〜3週目で感覚的に分かってくるんです。

楽しさを知ってから、守りの部分を知っていくというイメージですね。

もちろん他の言語を使った実務経験のある人なら最初から全体像が分かった上で書けるのですが、その経験が無いと何が必要なのかが想像できないですよね。だから自分の中で動機付けをできるような体験の順番で進めたほうがいいです。
まずは動かす
↓↓
エラーが発生したら動くのかどうかを確かめるのがめんどくさいことを体感する
↓↓
だからテストコードを書く必要性を覚える
↓↓
テストコードを書いていくと便利だと体験していく

人に質問できる・ともに学ぶ仲間がいることがスクールのメリット

1つ疑問なのですが、独学できる環境がオンラインにあるのに、なぜわざわざスクールで学ぶ必要があるのですか?

独学で『Railsチュートリアル』など外部の教材で学ぶと、文献に書いてあることは分かるようになります。一方で、書いてないことについては「これはどういうことが背景にあるのか」を誰かに聞きたくなるし、確認したくなるものなんです。
都度用語を調べるんですが、意味の解釈のゆらぎがあって実際の部分を聞きたいのになかなか人に聞けないもどかしさがあります。それを自分の視野内で行なってしまうので、見落としているものすら自覚していない。確証がないまま悶々と取り組むので、筋がいいのか悪いのかが判断つきません。ちゃんとこのままの道を進んでいったら、ゴールに到達できるのかどうかも分からない。エンジニアとのつながりもないし、ホントの道なのかはずっと暗中模索。

これはスクールを創った理由にもつながる話です。ネット上にある形式知だけでなく、経験してその道にたどり着いた人が周りにいれば、お互いに自分の視野以外で対話することで気づきを増やせます
だからこそスクールというメンターや講師のノウハウやその道までの最適解が結集されている場所をつくりました。また、受講生同士が交流することで異なる視点で問題に切り込むという学び方も得られます。そういう場をつくればさまざまな視点から物事を学ぶきっかけになると思ったので、この事業を行なっているわけです。

Railsチュートリアルだけでも大事なことを学べるけど、さらにそれを楽しく、奥の深さを理解し、増幅させるためにスクールのカタチがいいんじゃないか? と。

そういう存在でありたいし、そういう存在じゃないと必要ないと思っています。

なるほど、大事ですね、仲間と一緒に学ぶっていいですね。ありがとうございました。

まとめ

今回は『Railsチュートリアル』の学び方のロードマップ的なお話をお伝えしました。初学者がRubyを学び始めるのにいきなり『Railsチュートリアル』からだと敷居が高いので、次の順番がおすすめです。
1.オンライン学習サービスProgateで、まずは基礎用語などの超基本を押さえる
2.ドットインストールやpaizaなども触って、プログラムの使い方を複数の視点から理解する
3.『Railsチュートリアル』は受験勉強のように3周繰り返して理解の完成度を上げていく
4.心得として、まずは「プログラムを動かす楽しさ」を覚えてから、次に「テストの重要性」を知る。自分の中で動機付けができる順に体感していくのがおすすめ。

独学できる環境がオンラインにあるのになぜスクールが存在するのか。
それは「メンターや講師や仲間など人に質問ができる、ともに学べる仲間がいる」から。

『Railsチュートリアル』を事業のサービスで利用するためには利用許諾が必要です。利用許諾を得ているパートナー企業には『Railsチュートリアル』の質問対応サービスが提供されています。メンターに質問しながら『Railsチュートリアル』をじっくり学びたい人は、スクールに足を運んでみるのもいいですね。詳しくはこちら

DIVE INTO CODEのことをもっと知ってみませんか?