前回、「一日9時間勉強宣言」をしてから1カ月ほどが経過しました。

なんと、自分でもびっくりなのですが毎日9時間の勉強を継続できております。
やっぱり人って追い込まれてこそ力を発揮するんだな、と実感。
さて、この記事をご覧になってる皆さんは
「ProgateのRailsレッスンをやればどの程度Railsを扱えるようになるのか?」
気になってると思います。
事実、僕もProgateをやる前はこのレッスンを終えたらどの程度Railsに対して理解が深まるのか、気になっていました。
レッスン数は全部で15もあるので、ある程度の期待はしてしまいます。
僕の場合は7月1日にRailsレッスンを始め、7月18日に5、6周やり終えました。
合計で150時間はやったと思います。
今回はProgateでRuby on Railsを学習したい方向けに、Railsレッスンを終えた僕が
- Railsコースのそれぞれの概要と感想
- レッスン内容を理解するコツ
- 学習を終えたその後の理解度
についてお伝えしたいと思います。
- 事前スキルについて
- 学習ペースについて
- Railsレッスンのコースのそれぞれの概要
- Ruby on Rails5 Ⅰ 難易度 ★☆☆☆☆
- Ruby on Rails5 Ⅱ 難易度 ★☆☆☆☆
- Ruby on Rails5 Ⅲ 難易度 ★★☆☆☆
- 道場コース Ruby on Rails5 Ⅰ 難易度 ★☆☆☆☆
- Ruby on Rails5 Ⅳ 難易度 ★★☆☆☆
- Ruby on Rails5 Ⅴ 難易度 ★★☆☆☆
- 道場コース Ruby on Rails5 Ⅱ 難易度 ★★☆☆☆
- Ruby on Rails5 Ⅵ 難易度 ★★☆☆☆
- Ruby on Rails5 Ⅶ 難易度 ★★★☆☆
- Ruby on Rails5 Ⅷ 難易度 ★★★★☆
- 道場コース Ruby on Rails5 Ⅲ 難易度 ★★★★☆
- Ruby on Rails5 Ⅸ 難易度 ★★★★☆
- Ruby on Rails5 Ⅹ 難易度 ★★★★★
- Ruby on Rails5 Ⅺ 難易度 ★★☆☆☆
- Ruby on Rails5 Ⅳ 難易度 ★★★★★
- コツは理解できるまで何周もやること
- 道場コースではコメントアウトを書くのが大事
- Railsレッスンをやり終えた感想とその後
事前スキルについて
まず最初に、僕がProgateのRuby on Railsコースを始める前、どの程度のITスキルがあったのかを書いておきます。
僕がパソコンに触れ始めたのは小学一年生で、中一からホームページビルダーを用いてサイト作りを行ってました。
20歳頃からWordPressを用いた本格的なブログを立ち上げ、これまで10個ほど運営してきたので、簡単なHTML・CSSのカスタマイズスキルがありました。
→【YUUKIのプロフィール】
そんな僕がProgateを始めたのは2018年の2月。
仮想通貨のブログを作っていた頃、ITの知識がないと技術的な話が理解出来ないことに気付き、プログラミングに興味を持ちました。
同時期に、偶然にもスパルタキャンプというプログラミング合宿を知り、応募。
返ってきたメールに事前学習しておくようにと貼ってあったのがProgateのレッスンでした。
HTML/CSSレッスンを始めると、ドハマり。
3月には有料会員登録。
残念ながらスパルタキャンプの抽選には外れましたが、JavascriptやjQuery,Rubyのレッスンを一通りやって、これから何をどうやって学んでいけばいいか、色々調べた結果、スタートアップのIT企業ではRailsエンジニアが多いという情報をキャッチし、
まずはRailsでWebツールを作ることに決めました。
そして、Rails学習の第一歩として
5月下旬からRuby on Railsコースを始めました。
学習ペースについて
最初は一日2時間程度しかしてませんでしたが、7月に入ってからは一日5時間やりました。
6月中旬~下旬頃は色々あって全然やっておらず、7月に入って1から復習しました。
(そしたら案の定、全部忘れてました^^;)
僕のProgateの使い方ですが
3コースを理解出来るまで繰り返す→次の3コース
というスタイルでやりました。
他の方の学習報告を見ますと、その殆どが効率化を図るため全コースを最後までやり終えてから1から繰り返すスタイルでやっていましたが、僕の場合、1つのコースをあまり理解せずに進むと次のコースの説明で分からない部分が多く出てきてしまった為、逆に効率が悪くなると感じました。
実際、自分には3コースずつ進んでいくやり方が性に合ってました。
Railsレッスンのコースのそれぞれの概要
Ruby on Rails5 Ⅰ 難易度 ★☆☆☆☆
Ruby on Railsとは何か、大まかな基本概念を覚えていきます。
このコースで大事なのは「ルーティング」「コントローラ」「ビュー」の三つ。
この三つがそれぞれどのような役割を持っているか理解することで、これから先の学習がスムーズに進みます。
僕はルーティング・コントーラ・ビューの流れを
自分の口でパパっと言えるようになるまでやり込みました。
お陰で後の学習がだいぶ楽になりました。
Ruby on Rails5 Ⅱ 難易度 ★☆☆☆☆
ここでは主にデータベースを扱っていきます。
データベースとは何か、データの取り出し方法やrails consoleなど、Railsの基本操作を学んでいきます。
この章も1章と同じくらい理解できるまでやり込みました。
この章で重要なのは「テーブルの仕組み」です。
カラムとレコードで構成されていることをしっかりと理解しましょう。
Ruby on Rails5 Ⅲ 難易度 ★★☆☆☆
この章では新規投稿ページを作っていくのですが、ここから覚えるべきメソッドが増えます。
「find_by」「params」「link_to」はこの後の演習でとてもよく使います。
find_byとparamsの組み合わせのとこの理解が難しいかもしれないですが、urlの値(1とか2とかのid)と同じidの値のレコードを、投稿データから取得、と考えてもらうとわかりやすいかも。
道場コース Ruby on Rails5 Ⅰ 難易度 ★☆☆☆☆
ここで一旦復習。多分さらっと終わると思います。
Ruby on Rails5 Ⅳ 難易度 ★★☆☆☆
投稿の編集・削除ページを作ります。分かんなかったらⅢを復習したほうがいいです。
ここからデータベースを弄るのでちょっと楽しくなってきます。
プログラムの動きを追う必要が出てくるので少し難易度は上がるかもしれません。
「フォームの送信」の理解が重要です。
Ruby on Rails5 Ⅴ 難易度 ★★☆☆☆
ついにif文が出てきます。と言っても、if とelseの違いさえ分かれば簡単です。
「render」を使う意味が最初わからないと思いますが、要はelseで飛ぶページの先で、このアクションで書いた処理をそのまま持っていくということです。
そして、redirect_toとの書き方の違いは、URLを記入するのではなくフォルダとファイル名を書く、という点です。
道場コース Ruby on Rails5 Ⅱ 難易度 ★★☆☆☆
個人的に一番やってほしい演習です。
投稿ページ作成から削除機能の構築までやるので、データベースからデータを読み込みフォームで値を送る、という流れを学ぶのに一番適しています。
ここをしっかり理解できれば、この後の学習がスムーズに進みます。
Ruby on Rails5 Ⅵ 難易度 ★★☆☆☆
道場コースⅡと殆ど同じです。
ここでもプログラムの動きをしっかり追って覚えましょう。
Ruby on Rails5 Ⅶ 難易度 ★★★☆☆
ここから難易度が上がります。
このコースでは「画像のアップロード」「編集機能」を扱っていきます。
個人的に難しいと感じたのは画像の読み込み部分。URLが長くなるので、どの部分から何を読み込んでいるのか混乱してきます。
Progateでも言ってるけど、画像の中身はファイルに保存、ファイル名はデータベースに保存っていうルールを覚えておくと理解が早まるでしょう。
Ruby on Rails5 Ⅷ 難易度 ★★★★☆
この章ではログイン・ログアウト機能を覚えます。
before_actionを使うのでプログラムの動きを追うのが大変になってきますが、変数に何が代入されているかを理解しながら進むと良いです。
たとえば、「@current_userはログインユーザーで、データベースのレコードの一まとまりを指している」っと覚えておくと、変数の使いどころがわかると思います。
@current_user.nameはログインユーザーの名前カラムの値を指してるんだな、みたいな感じでパッと理解できます。
道場コース Ruby on Rails5 Ⅲ 難易度 ★★★★☆
画像機能とログイン・ログアウト機能の復習です。
ログイン・ログアウト機能は難しいですが、何周かやってる内に染み付いてきます。
Ruby on Rails5 Ⅸ 難易度 ★★★★☆
この章ではユーザーと投稿の紐づけを覚えます。
この章からインスタンスメソッドと戻り値が出てきて、アクションの変数と組み合わせるのでさらに複雑になっていきますが、何周もやれば理解できるようになります。
Ruby on Rails5 Ⅹ 難易度 ★★★★★
この章では投稿にいいね機能を付けます。
このコースの内容を完全に理解するまで7周は掛かりました。
特に後半の、プロフィールページにユーザーがいいねした投稿を表示させる所が難しかったです。
Ruby on Rails5 Ⅺ 難易度 ★★☆☆☆
パスワードの取り扱い方を学ぶので、しっかり覚えておきたい所。
難しくはないですが、気を抜かずにやりましょう。
Ruby on Rails5 Ⅳ 難易度 ★★★★★
ユーザーと投稿の紐づけから、いいね機能、パスワード機能の総復習です。
難易度は最高峰。やっぱりいいね機能が難しいです。最後の方はどのアクションを使えばいいのか混乱します。最初やった時は何書いてるのか自分でもわからなくなりました汗
でも、一個一個追っていけばわかるんですよね。
周をこなして覚えていきましょう。
コツは理解できるまで何周もやること
ProgateのRailsレッスンを覚えるコツは、分かんない部分は後回しにして、2、3周と繰り返し復習して理解することです。
分かりにくいところは「大体こんな感じだな」と軽く読み流して次に進みました。
先のコースに進んでから躓いた所に戻ると、「あ、こういうことか」と理解できることが多いです。
ですので、考えてもわからない所があれば答え見て先に進んで、キリの良い所までやってから復習すると良いでしょう。
また、なるべく毎日やった方がいいです。
日にちが空くと勉強した内容をすぐに忘れてしまいます。
特にRailsレッスンでは覚える事が多いのでなおさらです。
道場コースではコメントアウトを書くのが大事
僕は道場コースをやるときは、なるべくコメントアウトを書くようにしました。
ただコードを暗記して覚えたのでは意味がありません。
実務ではコメントアウトを書くのは基本と言いますし、書くことでコードを見直した時に自分の書いたコードの意味を把握できます。
自分が書いたコードの意味を日本語で説明できれば、そのコードを理解出来ている証拠にもなりますから。
学習スピードは間違いなく上がるでしょう。
Railsレッスンをやり終えた感想とその後
Railsレッスンの全コースを平均で5,6周やったYUUKIですが、レッスンをやり終えてRailsを一体どの程度理解することができたのか。
結論としては、
「Railsで書くコードの意味やデータベースの扱い方などはわかったものの、1からWebツールを作るには何をすれば良いかわかっていない」
ぐらいの理解度になりました。
ProgateのレッスンはあくまでもProgate上で行うものなので、Railsレッスンを全部やり終えたからと言って、いきなり「アプリ作って」と言われてもまだ無理ですね。
Railsコースでは最初アプリケーションの作成から学びましたが、その前にどうやったらRailsをパソコンで扱えるのか、そもそもフォルダの作成は自動で行われたけどフォルダの保存先の設定方法がわからないし、作ったサービスをどうやってWebに公開できるのかも分かりません。
ということで、Railsレッスンをやり終えてもRailsの基本中の基本を覚えただけで、実践的に扱う方法までは習得できません。
ただ、ProgateのRailsレッスンは本当によくできてますし、一つの演習が2,3枚と短くて要点だけまとめてくれているので挫折しにくく、なおかつ体系的に学べるので独学で初めてRuby on Railsを学ぶにはProgateが良いと断言できます。
何よりデザインがおしゃれでやってて楽しかったし、分かりやすかったです!
そしてこれからは、「Railsチュートリアル」という、RailsでWebアプリケーションを1から作成するチュートリアルをやっていきたいと思います。
このチュートリアルは挫折者も多いらしく、正直ビビりまくっていますが今年中にRailsでWebツールを作ると決めているので、諦めないよう頑張ります。
Railsチュートリアルを理解できるまでやったら、本格的にオリジナルのWebツール作成に取り掛かりたいと思います。
最後に、こういうことを書くと「習うより実践が大事だよ」という声が聞こえてきそうですが、基礎を最初にやっておいた方が後々覚えが早くなるのでは、と僕は思っています。
実践から入った方が習得スピードは早いかもしれませんが、それはあくまで短期的な目でみた場合に過ぎず、長期的な目線で見た場合、基礎を疎かにすると応用力が育ちにくく成長性が失われるのではないかと思います。
その点、まずは教本で土台をしっかり立てておくのが大切かなと。
僕が9年間行なっているブレイクダンスの場合だと、完全独学から入ったせいで途中から成長が遅くなりました。これは明らかに、最初に基礎を疎かにしたことによって変な癖がついてしまったことが原因でした。
最初から独学でプログラミングを学ぶと、非効率なコードの書き方を覚えてしまうかもしれませんので、最初は教材通りに進めていこうと思います。
プログラミングは覚えるべきルールが多いですから、ある程度ルールに沿って学ぶべきだと。
もちろん、学習スタイルは人それぞれなのでこの記事を見た人全員に学習から入れとは言いません。同時に自分も、自分の学習スタイルでWebエンジニアへの道を進んでいきたいと思います。