Student-Business

プログラミング・フィリピン留学・海外旅行など自分の体験を記事にしています

プログラミング

Ruby on Railsチュートリアルを読破できた勉強方法と手順・参考書!Rails初心者が独学での挫折を回避する方法

railstutorial

はじめに

この記事を読んでくださっていると言うことは、Ruby on Railsを学ぶ際に必ずといっていいほど通る道、それが「Ruby on Railsチュートリアル」であることは既にご存知のことかと思います。

ただ、初心者である僕は「Ruby on Railsチュートリアル」挫折しました。それも序盤で。そして、それからすでに1年以上経ってしまっていました。

ただ、やはり悔しい気持ちは残っていたので、今度はしっかりと対策をして春休み期間一ヶ月で読了し理解してやろうと思いました。そして、この記事を通してのリベンジマッチが始まりました。とはいえ、一年近く経って、もはや知識なんか残っていない為、基本の「キ」から始めることになりました。

この記事に関してですが、前半で挫折・再学習の経緯などを紹介して、後半で使ったサービス・書籍・手順を余すことなく紹介できたらなと思います。随時更新して軌跡を残していくスタイルで、他の学習者の参考になるように書く予定です。

前置き

初心者が独学しながら適当に書きなぐった記事です。

なので、的外れなことを言っていたり、間違っていることもあるかと思いますが、ご容赦ください。

Railsに再チャレンジのきっかけ

きっかけは、あるブログとの出会いでした。

このサイト、「30ruby記」。

このサイトの方が、「1日15時間となかなか濃密な勉強をなさって、結果として1ヶ月でRailsでサイトを作った」と言うことを知った時には、とにかく驚きました。

何度も言いますが、「Ruby on Railsチュートリアル」、僕は挫折しましたからね。そんな僕に、30ruby記はやればできるんだという光明をもたらしてくれました。

(蛇足ですが、ちょうど mac book air 買ったので、カフェでもいって優雅にプログラム書いて、ドヤ顔したいと言うのも動機の一つです・・・。)

僕の挫折の経緯

RyanMcGuire / Pixabay

友人に「Railsは、ドットインストール→本を読みながら→Ruby on Railsチュートリアルという流れでやれば覚えられるよ」と勧められて勉強をし始めた。そして、ググってみるとやはりこの勉強法でやるのが主流みたいだった。

この時、僕もこう思いましたよ・・・「大変だろうけど、これさえやれば、Railsエンジニア!」。

しかし、ドットインストールを終え、Ruby on Railsチュートリアルを始めると、徐々に息も絶え絶えになっていきました。書いてある言葉もよくわからんし、ピンとこないことが多かったからです。ググればある程度は理解できるが、そもそもググってたどり着いたサイトの説明もわからないという事も度々発生した。

しかも、環境依存からくるエラーの数々により心はクラッシュ、泣く泣く勉強するのをやめ、できなかったのは自分のIQが低いせいだと結論づけた。

後で気づいたが、僕はまさにRuby on Railsチュートリアルの挫折者の典型的だったらしい。(以下参照)

railstutor

Railsチュートリアルの歩き方 (第4版) from YassLab | ヤスラボ

Railsチュートリアルは、今ではだいぶ改善されたのでやりやすくなっています。Cloud9と提携したおかげもあり、環境構築、環境に左右されてエラーが出なくなったのはやはり大きいです。とにかく使いやすくなりました。

まあ、でも、単純にコードの意味がそもそも分からず時間がかかりすぎてしまったのが、そもそもの原因なことを忘れないでおきたい。

Ruby on Rails 再チャレンジ計画

先ほど述べたように、Railsチュートリアルはだいぶ分かりやすくなりました。それでも、初っ端からRailsチュートリアルをやったようでは、おそらくまた失敗するのではないかと僕は思いました。

例えば、数学で例えてみるとこれは分かりやすいと思います。高校数学などの分かりやすい本は、大抵みんな理解できますが、大学レベルの数学の分かりやすい本を買っても初心者は理解できません。

こんな感じで、Railsチュートリアルは初心者が突破すべき教材だけど、初心者用の教材とは言い切れず、予備知識を多少必要とします。

なので今回は、予備知識をつける寄り道をした上で、最終目標にRailsチュートリアル読破を掲げて臨んでいこうと思います。

なぜ、挫折してしまうのか・・・。以下で勉強法を晒すとともに、挫折しないために僕がやったことを紹介したいと思う。

 Railsのチュートリアルを読破した手順

長々と僕の挫折歴と意気込みについて読まされて、お疲れかと思われますが、ここからが具体的な手順です。

基本使うものは、今までの定番とほぼ同じです。ただ、少しでもやってみたときに感じたことを踏まえて、紹介していきたいと思います。

  • ドットインストール
  • Progate
  • シラバス
  • code4startup
  • Udemy
  • Ruby on Railsチュートリアル

参考資料として併用したのは、

  • 本(Ruby on Railsアプリケーション4、パーフェクト。最初はあまり使用市内が、これないと後々(初級〜中級に至る過程で)非常に困る)
  • 楽しいRuby(実際は楽しくないrubyである)オブジェクト指向初心者は絶対にやっておくべき。
  • Railsガイド
  • Q&Aサービス

必要なもの

絶対的に必要なものは、この二つだけです。

  • 強靭な意志
  • MacBook Air あるいはMacBook Pro

「Mac買え!」と言うのは嫌ですが、とにかくMacないと効率悪すぎて挫折率が一気に上がります。Rails習得して職を身につけるにせよ、webサービスを自分で作るにせよ、Macは必ず必要になりますので、早いうちに持っていない人は入手しておいてください。

基礎編

一通りRailsの使い方や簡単なhtml, css, javascript, rubyの書き方を本・サイトで学びましたが、その際、コードを丸暗記しないように気をつけました。というのも、暗記しようとしてては量が膨大すぎるので効率が悪くて終わらないからです。いちいち暗記しなくても、どのコードをどこで書けばいいのかを最初は学んでいくだけで大丈夫です。そもそも、発展的なhtml, css, javascript, rubyの書き方を覚えても勉強段階ではほぼ使いませんので、後で勉強すべきですが、今は固執すべきではないです。

ドットインストール

dottinstall
ドットインストール(ruby)

さらっとやっておけばひとまずおけ。

ドットインストール(rails)

アソシエーションの話のところがよくわからなかったので、Rails4の5章6節を参照にした。この本は3章までを最低限やっておいて、あとは辞書的に参照するのがいいらしいが納得です。正直この時点では、入門of入門なので、とりあえず終わらせて雰囲気だけ掴めばOKだと思います。コードもいちいち打ち込みませんでした。

期間:1日

楽しいRuby

今回は僕はこれをやりませんでしたが、挫折した際に利用していたのを今でも覚えています。

railsチュートリアルを読破した後にこの部分の記事は書き足しているのですが、この段階で「楽しいRuby」は一通りやっておくことをオススメします。Rubyの基礎を一通り学べる本で、rubyあるいはruby on railsを学ぶ人にとってはド定番の書籍です。

ですが、他のオブジェクト指向の言語を学んだことがあって、ドットインストールやProgate、その他のオンラインサービスで学べるRubyだけで十分という方は、パーフェクトRubyの方を買っておくといいです。

パーフェクトRubyは、初めのうちは僕も利用しませんでしたが、railsチュートリアルの途中からこの本の有用性に気づかされ勉強し始めました。意識の高い人は、railsチュートリアルをやる前の助走段階から、これを学び始めておくのも全然ありです。

初級〜中級へのいい橋渡しになります。(パーフェクトrubyはのちにまた紹介します。)

小学生でもわかるRuby on Rails入門

https://openbook4.me/projects/92

おお!これは分かりやすいってなったサイト。この内容で、小学生に教えたところ5時間でアプリを作れたとのことですが、納得の分かりやすさでした。

サクッと終わらせる系なので、ちゃちゃっと終わらせましょう。また、こういった系・レベルのサイトはRailsに慣れる目的でやりましょう。

期間:数時間

Progate

Progateは細かいところまで、しっかりと丁寧に解説してくれるので、基礎をしっかり身につけることができます。他のサイトや本だと端折られていたせいで腑に落ちなかった場所もしっかり解説されていて助かりました。

やったことですが、僕はrailsとhtml, cssのコースしかやりませんでした。この二つのコースはコンテンツ量が圧倒的にすごくて、実践的なところまでカバーしていて良かった。ただ、必要ならrubyも一通りやっておく方が絶対いいです。また、Gitやコマンドラインに関しても、ここで学ぶ必要はありませんが、後々必要になった時の入門コースとして役立つと思います。

Progateのコースはどれもrailsを学ぶ上で役立ちますが(Pythonは除く)、取捨選択は必要は各々していく必要があります。

ちなみに月額課金しないと、途中からレッスンを進めなくなりますが、課金してでもやっておくといいです。クレジットカードの情報入力して課金したのち、すぐに月額課金をやめる申請を出しておけば、解約し忘れることもなくそれ以上の料金は発生しないようになります。それでも一ヶ月間は使えて、一ヶ月間あれば必要なコースは終えられるので十分だと思います。

主観ですが、このサービス使って専門用語がわかるようになったのも良かったです。例えば、なんてことはないCRUDという用語ですが、この説明を見たことがない人には意味不明ですよね?そういうのが前提で、解説しているサイトが多すぎるので、後々助かることばかり。また、包括的に一通りRailsについて学べたのも大きいです。

ちなみにですが、Progateなしで、次に進むと少し痛い目にあいます。僕は、後で紹介するUdemyの講座とシラバスを同時並行にやっていたのですが、何か腑に落ちない部分があり、Progateをやったら色々解決しました。

褒めてばかりですが、もちろん問題点もあります。まずは、後半になるにつれて説明が不十分な点が目立つようになる点。作りながら学べるので途中でのリタイアはしにくいけど、わからない時本当に困る。

次に、直感的に理解できるように図解して分かりやすくしているのがProgateのかなり優れているところですが、そのせいで説明が省かれているところがある点。

例えば、テーブル同士の紐付けを行う際に、notesテーブルのカラムに、命名規則に則ってuser_idというのを持たせることを説明なしでやられると、後にどうやってusersテーブルとnotesテーブルが関連づいているのかわからなくなる。

とはいえ、図解してくれているので、感覚的にはしっかり理解できることかと思われます。後の祭りですが、Progateやりながら以下で紹介するUdemyの講座をやるのが一番良さそう。

やり方:

基本的には、最初の方はスライドと演習内容を眺めただけで、途中の道場コースは、「すぐに答えを見て→コピペして理解→つぎに進む」で突破しました。Ruby on RailsⅢからは実際に書きました。(先にUdemyの途中までで基礎知識が少々あったためこんなやり方をしました。)

期間:

約1週間程度。(本来はもっとかかる?)

1週間以上かかることから、先が思いやられそうになりますが、だいぶ基礎がしっかりするので、この先の勉強はかなり効率よくできるようになると思います。

追記:ProgateのHTML, CSSの講座やったくせに、このサイトのデザインがやばい点に関しては、勘弁してください。ブロガーになる気は全くないので、その点にこだわりはありません。

シラバス

次はシラバスというサイトに行きました。なかなかミーハーなのかもしれないですが、内容がしっかりしてそうなのでやってみました。

  • はじめてのRailsアプリ 2chの簡易クローンアプリを作る

https://cyllabus.jp/courses/r9NBvH810khxpaN4PmQPTQ

基本説明はないが、流れはしっかりしていてわかりやすかったです。ただ、ドットインストールとProgateのおかげて、すんなり行きました。でも、レス機能のところは基礎が身についてないとわかりづらいかもしれません。

の部分で、「@comment.board = @board」ってどうゆうことやってなりました。(このころは頭悪すぎた)入門部分の復習ついでにやっておくと良い。

あとは、インデックスつけるところももう少し説明欲しかった。とりあえず、そうすれば早く検索できるのか程度の理解だった。

 

本(Ruby on Railsアプリケーション4)の3章までをやると同時にUdemy講座を始める

環境構築はUdemyの講座のやつを参照にした。ドットインストールやRubyonRails4の勉強の際は、まだ環境構築はしてませんでした。これから長らくお付き合いする動画講座に合わせた方が、その後困ることがないからです。Railsチュートリアルの勉強に入ったらまた変わるかもしれませんが。

本の勉強の際には、コマンドのオプションやパラメータといったものはよくわからんので無視しました。リストの内容や、コマンドとその実行結果、図と表を見て理解していくのですが、自分が理解できないところはおそらくほとんどの方も理解できないはずという心持ちでOK.

http://wp-p.info/

css

https://www.codeschool.com/courses

しかし、今回は参考書とUdemyをしっかり活用していきたいと思います。なぜかと言いますと、でないと普通は挫折するから。

roadtotuto

入門もたやすく、ゴールも明確。だからこそ、意識されなかった中間地点の勉強をしっかりしていきたいというわけです。

僕が使った本に関してですが、必ずしも必須とは言えないと思いますので、各々代替できる資料などを見つけていただけたらなと思います。(Udemyは、僕がデータ分析関連の勉強の際使ったら分かりやすく効率良かったので、プログラミングの学習の際はよく使ってます。)

Udemy




世界的に登録者数1000万人を超えているオンライン講座を受けられるサービス。無料ではないけど質が高いので、ゴミ情報や講座に惑わされたりしないで学ぶことができます。

やった動画講座はこれです。↓

【質問対応停止中】【作りながら覚える!】_Ruby_on_Rails_を用いたウェブ開発_Airbnbを作ろう!____Udemy

【作りながら覚える!】 Ruby on Rails を用いたウェブ開発(Airbnbを作ろう!)

この講座は、人気で評価が高く、コンテンツ量も多いです。しかし、驚くほどに安いという価格破壊(笑)

やった内容

(リンク先のページからプレビューを見ると講座内容が前もってわかります。)

  • part0 Ruby on Rails のインストール
  • part1 Railsアプリの作成とBootstrapの導入
  • part2 Deviseの導入とtoastrの導入
  • part3 SNSログインとプロフィールページ
  • part4 リスティング
  • part5 画像をアップロード
  • part6 githubとheroku
  • part7 amazon s3とか画像について
  • part8 リスティングページ
  • part9 予約機能の実装
  • part10 リスティング編集ページ(カレンダー)
  • part11 ペットを預ける予約一覧、ペットを預かる予約一覧
  • part12 Stripeを導入する
  • part13 リファクタリング
  • part14 レビュー機能
  • part15 すべての項目を埋めないと公開できないようにする
  • part16 メッセージ機能の実装
  • part17 Home画面を整える
  • part18 リスティング検索
  • part19 ドラッグ検索
  • part20 herokuへデプロイ

やってみた感想

もちろん理解できないところはたくさんありましたし、Railsチュートリアルまでやってからまたやろうと途中でやめもしました。

しかし、これを先にちょっとやっておいてよかったのは、圧倒的に全体感というものを養えた点です。Railsの勉強では全体感は必要です。デザイン面はどうしたらいいのかとか?、実際に開発する際はRailsチュートリアルや本で学んだこととは違うんやろ?という疑問を以降持ち続けるよりも、できなくてもいいから実践的なこの講座で払拭しておくのが良いかと。

これがなくて、お先真っ暗的な絶望感にメンタルをやられて、Rails挫折した人は多いことかと思います。

前提条件のhtml, css, javascriptの知識も少し必要にはなりましたが、コードの意味を理解したら次に進みました。完全に理解できないのは問題ですが、ググったり最低限の基礎知識があれば理解できました。(ここでの理解とは、自分で書けるようになったということではありません。一から書けるようになるのは大変ですので、誰かの書いたコードを意味を理解してコピペや修正できるようになったということです。)

自分のrailsに関する理解も基礎だけでは足りてなく、動画内で解説されていないこともありました。そう言ったときは、アプリケーション4や意外と次勉強する予定のRailsチュートリアルを拾い読むと理解できました。

例えば、このような疑問をUdemyの講義を受けていて抱きました。

form_for(@user)のコードは同じなのに、Railsはどうやって新規ユーザー用のPOSTリクエストとユーザー編集用のPATCHリクエストを区別するのか。

(フォームで送信ボタンクリックする作業も見た目も同じなのに、createアクションが取られる場合とupdateアクションに場合があった)

そうすると、Railsチュートリルでは、しっかり答えてあって

WebブラウザはネイティブではPATCHリクエスト (7.1でRESTの慣習として要求されている) を送信できないので、RailsはPOSTリクエストと隠しinputフィールドを利用してPATCHリクエストを「偽造」しています2

Railsは、ユーザーが新規なのか、それともデータベースに存在する既存のユーザーであるかを、Active Recordのnew_record?論理値メソッドを使用して区別できるからです。

と記述されていたのです。

ついでにですが、実は今のPATCHの話は、Ruby on Rails 4では、90P(3章末)に載っています。僕は忘れてしまっていましたが、やはり最初に3章まではやっておくべきっぽい。

ここまででわかったUdemyの講座の良さは、この解説がRailsチュートリアルだと9章でようやく出てきていたからです。実際にコードを書きながらだったので、この疑問を自分で考えられましたが、Railsチュートリアルからやっていたらおそらく無理でした。全12章のうちの7章で触れて放置されていたformの知識が、9章で再度参照すれるのですから辛いものがある。7章から9章に至るまで時間がかかるので、普通に覚えて入られません。

8章で出てくるフラッシュに関する知識も、Udemyの講義もコピペでちゃっちゃと作ってみればすぐに使えるようになりましたが、Railsチュートリアルでは、大量の文字とコードで頭がパンクしそうになります。

Railsチュートリアルは、かなり丁寧で詳しく解説されているメリットがあるけど、理解が大変というデメリットもあるということがわかりました。なので、Udemyの講座の復習用として使って、知識のしっかりした定着や肉付けに使う方針で行こうとこの時点で確定。

Udemy講座、チュートリアル動画、有料チュートリアル勉強用動画の比較

Udemyのコース Railsチュートリアル動画 Railsチュートリアル独学
動画・教材時間 30 30 1ヶ月
実際にかかる時間 2週間〜1ヶ月 1ヶ月 2ヶ月〜3ヶ月
値段 2000円程度 数万円 無料
評価 理解普通、安価 理解普通、高価 理解困難、時間かかる

まぁ、ここまでUdemyの講座推しな感じですが、この講座はRailsチュートリアルより解説は丁寧ではないです。丁寧ではないけど、理解はしやすいです。チュートリアルは丁寧すぎてまとまっていないので、理解が困難なためです。また、Udemy講座は動画なので、作業する上でエラーでつまづくことはほぼないですが、この講座も長いのでやり抜く意思は必要です。

2週間ぐらいはかかりそうです。この動画の長さでこれだけかかってるんですから、僕がRailsチュートリアルに最初から手を出したら先が見えずに撃沈していたことでしょうね。

他おすすめサイト

  • coffee-cup

https://www.coffee-cup.com/

このサイトは難易度的にはUdemyの前にやっておくべきです。サイトの雰囲気や初心者にわかりやすく教えようというスタンスが結構好き。

応用編の「画像をアップロード」と「チャットルームの作成」を後に参考にしました。ただ、基礎編の「ユーザー管理」や「画像のアップロード」などはUdemy講座の該当箇所をやる前に一度やっとくと良い。Udemyの方だとこのcoffee-cupというサイトと違って、一つのWebサービスを作るという過程で出てくるので、ちょっとだけ複雑?な気がします。

https://cyllabus.jp/courses/LVlXWNb8GcWTKy8x1gHS5g

railsチュートリアルのための前哨戦になりそう。どちらもコンテンツ量が申し分ないです。

https://www.codeschool.com/learn/ruby

英語サイトで解説も英語だけど、面白い。上記で学んだこと以外も学べるので、知識の欠如を埋めるのに役立ちそう。

https://code4startup.com/projects/hero-learn-ruby-on-rails-and-full-stack-by-cloning-code4startup-version-pro

英語での解説だったり、udemyより動画時間が短いので初心者向けではない。けど、railsに少し慣れてきた人にはだいぶ良い演習になると思います。Pythonで作るUberのコースは有料だけど、railsで作るAirbnbとかは無料コースなのでありがたい。(個人的にはやはりUberのサイトは作りたいけど、1万円は出せない。)

https://railstutorial.jp/?version=5.0#walk-through

Rails Tutorial

ついにやってきました、Rails Tutorial。このRailsチュートリアルでは、今までより少し突っ込んだ解説がされますので、圧倒的に成長できます。が、丁寧な解説の分、読む量が多くなるので大変になります。

Railsチュートリアルはそれ自体がうまくまとめられている教材ですが、覚えておくべき手順やコードなどは、何かしらのツールを使ってまとめておきましょう。僕は、Evernote Web Clipperを使ってまとめていました。使い方は詳しくないのですが、とりあえずChromeに拡張機能として導入して記事を切り取って保存していました。

また、Railsチュートリアルの演習で分からないところは以下のサイトが参考にするといいです。

新米パパの育児留学:http://mochikichi.hatenablog.com/

こっちのサイトは、一日20分ごとに学習をしてる方のサイト。勉強の良い指針になります。

ぞえの技術メモ:http://kt-zoe.hatenablog.com/

簡単にやってみた感想と時間まとめ。時間は、書籍で別途勉強しているのでだいぶあてになりませんが、一応書いておきます。普通は二日で一章を終わらせるくらいのスピードらしいです。以下のように、僕は時間があまりかかっていないように見えますが、進度的には平均的だと思います。(精神的に長時間作業はきつい)

一章:3時間程度。アカウント作成等が面倒くさかったです。

二章:6時間程度。この記事を直しながらやったので余分に時間をくった。scaffold使って簡単なアプリ作って見ましょうね的なあれ。今までに何度もやっていたのですぐに終わらせられました。ただ、やはり詳解されているので、勉強になりました。演習やRESTなどのコラムなどとばさずに読んでおくのと、git checkoutでいちいちbranchに移動するようにしていました。

また、gitに関しては「サルでもわかるGit入門」を逐一参照することをお勧めします。

三章:4時間程度。テストに関して学んだ。Guardよくわからん、つらっ。Unix, Rubyの深い知識を身につければ、よりスマートに仕事ができるなと感じた。

四章:4時間程度。rails風味のrubyを学んだ。基礎だけどコピペではなく、しっかりと意味を理解すると非常に勉強になる。ただ、基礎的なRubyでいいから先に一通り触れておかないと、この章は理解に苦しむ(特に言葉のせいで)。もし、この場で特にクラスの知識が圧倒的に足りてないと思うのならば、ProgateのRubyコースやり直すか、定番書籍たのしいRubyをお供にしよう。

※ちなみにだが、この章はrails風味のrubyを知るというのがタイトル通りメインだったので、この章をやったからどうなるというものではない。

〜一から四章を終えて〜

ようやく、四章までの準備期間的な内容を終えることができた。この時点では、五章からは実践的な内容になるので嬉しい反面、残り10章もあるという絶望感がすごい。

五章:5時間程度。レイアウトをBootstrapでデザインを整えながら作成しました。デザイン面はメインではないにせよ、「殺風景なものを作るとやる気が失われてしまう」ということを考慮に入れてのBootstrapだそうです。Bootstrapは、Udemyのコースでも使ってデザインを整えましたがUdemyのコース > Railsチュートリアルといった感じです。また、最後の方では統合テストを書いたりもして、若干テストに関する知識が深まりました。(ちなみに理解が難しいときは、アプリケーション4を参照すれば8割がた載ってる。テストなんかも体系的にまとまっているので良い)

六章:4時間程度(写経なし)。Validationとそれに際したテストの書き方について学んだ。inspectメソッドの使い方やクラスメソッドとインスタンスメソッドの違いを別途復習などもした。また、差し迫ってはないがActiveRecordと正規表現を学ぶ必要性も認識した。加えて、良かったことは、カラムをインデックス付けする意味が理解できたこと。(「はじめてのRailsアプリ 2chの簡易クローンアプリを作る」の時点では理解できていなかった)逆に大変だったのは、メールアドレスの一意性を確保する話とパスワードの設定の話を理解知ることです。

正規表現を試せるサイト:http://www.rubular.com/

クラスメソッドとインスタンスメソッドの違いがわかるqiita :http://qiita.com/tbpgr/items/56eb65c0ea5882abbb07

六章での挫折率は高そうです。

七章:時間不明(7時間以上はかかった)。やはり大まかな流れは既知なのですが、デバッグ、gravatar、sslの導入など有益な知識がちょくちょく絡められていて勉強になります。テストにもだいぶ慣れてきてかけるようになりましたが、やはりめんどくさかったです。テストは飛ばして読むのがチュートリアル読破にいいとか言いますが、確かにその通りかもしれない。

八章:8時間。写経をやめて読むだけにした。この章に入ると、前の章までで覚えておかなくてはいけないことに加えて、さらに必須の知識を覚えることを要求されます。そこで、これらの知識をどうやって覚えておくかが重要になってきます。あとで、自分で一からWebサービスをrailsで作るにしても、参照することになるからです。

僕は上記で述べたように、Evernoteで重要なところはメモっていました。しかし、そもそもruby on railsチュートリアルに載っていることだけでは、理解できていないものを多くあり、それを保存しておいてもあとで使えないだろうと考えました。それで考えたのは、ruby on railsチュートリアルで覚えておくべきこと+αの知識を体系的に(あとですぐに引き出せるように)保存しておくことです。ただ、一からこれを自分でやっていては仕方ありません。

そこで、前々から利用しているアプリケーション4に加えて、パーフェクトレイルズ(より実践的な本でアプリケーション4より解説はしっかりしている)を付け足して購入しました。で、これらの本のどこにruby on rails tutorilの知識が載っているか確認する作業をし始めました。

例えば、ログイン・ログアウト処理でセッションを使った話がruby on railsチュートリアルの8章には載っているが、このパーフェクトレイルズパーフェクトレイルズp177〜(特にP185など)を見れば、同じコードがしっかり載っている。そこのページを読んだ上で付箋をはっておくと作業をしました。

これをするだけで、

1、rails tutorialで学んだことを本の上で記憶しておけ、

2、あとですぐに参照できるようになり、

3、読んだ場所と読んでいな場所が明確化される

といったメリットが盛りだくさんなので、絶対にやっておくことをオススメします。

また、この章では自分のrubyの知識の浅さがまた明白になった気がしました。rubyのコードが分からなければ、今まではおとなしくググっていましたが、いった先のページの内容が読めなかったりしました。今回は、クラスメソッドとインタンスメソッドなどがそれに当てはまりましたが、理論自体はなんとか理解できました。しかし、全然自分で使える気がしません。それで、体系的に学ぼうと、パーフェクトRubyもこの段階で導入して勉強(写経)しくことにしました。(p115~128のクラスについて読んだ。クラス変数とそのスコープは実は書き方を知らなかったので勉強になった)

※この時期に、僕の友人がRailsを学び始めたくなったらしく、techcampというプログラミング塾に入ろうとしていて誘われました。ただ、学割が効いていてもそこそこの値段がする(参考書20冊くらい返そう)のと、本気で転職を目指す方やお金に余裕がある方向けなのでひとまずは断りました。

9章 Cookiesを使ったログインとその脆弱性の対策といった感じのことをやりました。正直、もう何をいってるのか訳がわからない状態です。図やら何やらがあればいいのでしょうけど、文章から意図を汲み取る必要もあるし、暗黙の了解とされ解説されていない部分の理解も要求されます。なので、チュートリアルを読むのを諦め、本に頼ろうとしたけど、これに関してはあまり載っていませんでした。なので、ググっていろんなページで理解を深めました。「rails ログイン cookies」で調べました(以下のリンク先参照)。これのおかげでなんとか体系だって理解できました。

http://qiita.com/SpicyCoffee/items/de9de9a5427adf81817a

直感的に分かりやすい図と説明が載っててかなり助かった。

http://qiita.com/kidach1/items/ebdb4b29336955903029

railsチュートリアルの該当箇所をひとまず読んでから、これを読むと驚くほどよくわかる。8章の復習にもなる。

http://qiita.com/t_nakayama0714/items/83ac0b12ced9e7083927

セキュア通信について、絵で書いてあるので、だいぶとっつきやすくて分かりやすい。

ともかく、8章で学んだクラスメソッドとインスタンスメソッドの違いや、ローカル変数とselfを使った擬似変数(パーフェクトRuby p53が分かりやすい)の違いを知らないと、多分9章は理解できないなと思いました。あとは、attr_accessor使ってる意味とかもしっかり復習しておくと良さそう。

〜省略〜

Railsチュートリアル総評:Railsの勉強法としてまず名前が挙がるだけはあるものでした。しかし、前半部分は他の基礎教材でも学んだいたせいもあり、かかった時間ほど新しく学べたものはありませんでした。かかる期間としては、独学だと1・2ヶ月くらいかかると思いました。僕は引っ越しで勉強できない日もあって、一ヶ月ちょい程度でした。なので、Railsチュートリアル単体なら2週間くらいでいける説は正しいと思いますが、予備知識が既にある・優秀であることが条件になると思います。予備知識が全くない人は、僕みたいに勉強しながらやることになるので、やはり一ヶ月はほしいところです。

あとで、「コマンドラインはこのサイト」を翻訳機能で翻訳したもので勉強すると良さげ、あるいは良書を発掘してそれをやる。

さらなる勉強

Rorアプリケーションプログラミング、もはや忘れ去られつつあったこの本をぼちぼち読んでいきます。この本は、最初に三章まで読んだのと本のちょっと索引する以外では放置プレイをしていました。実践アプリケーションを買って読もうとも思ったのですが、中身を見たらこの時点ではパッとしませんでした。ただ、仮想環境での開発を学ぶのにはもってこいだと他のブログで言っている方がいたので、後回しでやろうと思う。

teratailやstackoverflowの質問内容を見て技術を吸収する。

teratail


stackoverflow

http://ja.stackoverflow.com/questions/tagged/ruby-on-rails

 

また、この段階で、techacademyが公開している記事を読んだりもしていました。この会社は、プログラミングスクールみたいのをやっているの、ブログで公開している情報が非常に勉強になりました。

https://techacademy.jp/magazine/programming/ruby

この時点で、少しプログラミングスクールにも興味を持ちましたが、どうせお金を払うなら基礎のためではなく、中級から上級レベルの知識を加速的に身につけるために活用しようと思ったので、やめておきました。

udemy講座(再)

【作りながら覚える!】 Ruby on Rails を用いたウェブ開発(Airbnbを作ろう!)

この講座を一からやり直しました。 とにかく実践的なので、railsチュートリアルで学んだ強固な基礎知識をフル活用しながら学んでいけます。

これをやり終えると、一通り発展的なサイトが自分の力で作れるようになります。

https://railsguides.jp/

http://www.backlog.jp/git-guide/

http://dotinstall.com/lessons/basic_ruby_v3/

https://cyllabus.jp/pine

https://docs.ruby-lang.org/ja/ るりま

 

挫折の言い訳としては、こんな感じのことを当時思っていた・・・「上の方法でrails習得できるやつは、頭いいか、実務で学べるからでしょ。実務ほど、プログラミング学ぶのにいい場所はない。今の自分には得難いものだけど。」

だが、実はあったのだ。知らなかっただけだった。情弱の極みである。在宅系の無料会員登録でマネタイズ

 

より挫折しないようにするには

お金がかかってしまいますが、オンライン塾を利用することがおすすめです。メンターに教えてもらえるので、挫折率がグッと下がります。



「Ruby on Rails」を教えるプログラミング塾になります。高度な内容も教えていて、より現場レベルに近い技術を学べます。

今後

Railsチュートリアルや様々なサイトを利用して、ここまで勉強してきました。ただ、ここで終わりでは全くありません。もはや、始まりでしょう。

今後の目標としては、Webサービスを作ってローンチすることなので、より深い知識を効率よく吸収する必要があります。

なので、今後やろうと思っていることなどをここではまとめていきます。

  • Railscasts : Railsの応用例を学ぶ
  • Ruby Toolbox : RailsにGemを追加して機能を付け加える
  • railsで作られたサイトのコードを見る
  • パーフェクトruby on rails
  • チュートリアル復習

 

Railsチュートリアルを読破した感想

やっと終わった、つらかった。

記事を書くのをモチベーションにしつつ、Railsチュートリアル読破を目指し取り組んだ一ヶ月でした。(期間的には2〜3ヶ月?)

読破してどれくらいrailsをかけるようになったか、みなさんが特に気になるところでしょう。

正直に言います。全体像は掴めたし、外枠的な部分は実際にかけるようになりました。何よりも、入門書では得られないような知識を得ることができました。

しかし、railsチュートリアルを読破したからといって、技術力が格段に上がるわけではありません。2週目3週目をやって、より細部の知識を自分の技術として使えるようにする必要があるでしょう。

僕が思うRailsチュートリアル1週目をやって得られたものは、実際に自分で何かを作る際に参考にできる資料(railsチュートリアル)です。今までは、あてもなく彷徨っていた僕ですが、心強い信用にたる味方を作れたような感覚を得られました。ただ、資料は資料ということなので、やはりしっかり自分で活用していくことが大事です。

 

終わりに

だいぶプログラミングできる方、30代近くの方などがRailsを習得できたという記事はすでにあったのですが、学生が個人で取り組んだという記事はあまりなかったので、他の方のモチベーションになるといいなと思います。

(Pythonを学んでみた的な記事を以前書いたところ、学生ではないんじゃないか等の批判をたくさん受けましたが、まだ大学生です。本などもきちんと買って試しています。)

追記:僕はPythonは少し分かっている状態で始めたので、全く何も知らない方は、Rubyについて学ぶのも絶対的に大切です。特に、Rubyで簡単なクローラーを作ってみることを超絶お勧めします。Rubyだけでなく、webサイトに関する包括的な知識を得ることができます。

参考リンク(あとで貼っておきます)

〜余談〜

最近、Railsだけでなく機械学習やらその他諸々に手を出してみたり、何かしらのサービスを作り出すために頭使ってたりで個々の進捗が芳しくないです。

ただ、いろいろ手を出したから見えたものもあるので、極端に一極化するのも良くないのかもしれないです。

-プログラミング

おすすめ記事

1
【ホワイトニング】自宅で歯の黄ばみを白くするなら歯磨き粉トゥービーホワイトがおすすめ!理由と効果まとめ

  自宅で、歯磨きするだけで歯を白くできる市販の歯磨き粉をみなさんはご ...

h1_kv_04 2
ポイントたまりすぎ!マクドナルドで楽天ポイントカードが使用可能に!マックでの使い方・活用方法まとめ

  早くて安くておいしいマクドナルドを、よく利用しているという方も多い ...

71-iFIHKV6L._SL1500_ 3
【Aukey PL-WD06】スマートフォン用カメラレンズなら旅行で風景写真が綺麗にとれる!

いい写真を撮りたくて、一眼レフやコンデジを買いたいと思う方は多いでしょう。しかし ...

StockSnap / Pixabay 4
【在宅ワーク】在宅で記事を書くライターになり1文字1円以上の収入を得る方法

最近、文章を書く力・文章構成力にオシャレさを見出してきました。 文章を書くのにも ...

2 5
初心者のためのWebデザイン独学の方法と参考書を現役エンジニアに聞いてみた

今回は、htmlとcssといったWebデザインに関してどうやって学べば良いかを、 ...