たまによく若い子に聞かれるRuby on Railsの学習方法です。人によって背景が異なると思うので、あくまでも参考までに。より早く一人前に仕事ができるようになりたい気持ちもわかりますが、効率を求めすぎて行動できなくなってしまうよりは、なんでも良いからさっさと始めてしまうのが良いと思います。いろんなやり方をやってみて失敗を繰り返すうちに自分にとって効率良いやり方が見つかります。
これは私がRailsの学習をいろいろやってみた中で、自分にとってはこれが役に立ったなぁと思うものの一部です。
Railsガイドを読む
Ruby on Rails の公式ドキュメントです。読みましょう。
はじめに、モデル、ビュー、コントローラー、他の構成要素(Active Support コア拡張機能、Action Mailer の基礎)、高度なトピック(Rails 国際化 (i18n) API、Rails テスティングガイド、Rails セキュリティガイド、Rails アプリケーションのデバッグ、コマンドラインツール、アセットパイプライン)、あたりは読んでおくと良いと思います。
完璧に理解できなくとも、「Railsができること」を把握しておくことはとても重要です。これを知らずにRailsが提供している機能を頑張って自分で作って時間をロスしがちです。
メソッドの詳細はAPIドキュメント https://api.rubyonrails.org/ で調べましょう。このサイトはSEOがとても弱いのでGoogle検索では出てきません。
Rubyを理解する
Rubyの言語自体を理解しておくことはRailsのドキュメントを理解する助けになります。Ruby技術者認定試験合格教本ではRubyの言語の基礎的な部分と、StringやArrayなどの標準クラスのメソッドを網羅できます。
Rubyは文字列や配列を操作する標準メソッドが豊富です。これを知らずにRubyが提供している機能を頑張って自分で作って時間をロスしがちです。
また、irb で実際に動かして動作を確認しながら学習する手法はテクニックとして覚えておいて良いと思います。rails console でも同じテクニックが使えます。
Ruby技術者認定試験合格教本ではメタプログラミングがカバーできてないので、こちらのメタプログラミングRubyも読むと良いです。内容はかなり難しいですが、Rubyという言語の本質が理解できます。
メタプログラミングを理解できると、Railsガイドの高度なトピックが理解できるようになります。また、RailsやGemのソースコードが読めるようになります。読んだソースコードで使われていたテクニックを自分が書くコードに応用していくとプログラミングが上達していきます。
Rubocopにレビューしてもらう
https://github.com/rubocop-hq/rubocop
Rubyのコードアナライザーです。Rubyの悪い書き方を指摘してくれます。レビューしてくれる先輩がいなくても、Rubocopが教えてくれます。Rubocopに指摘された内容を一つ一つちゃんと読み、なぜ指摘されたのかを考え、理由を調べてみて、自分はどう思うのか、納得できるのか、答えを出しましょう。ここで鵜呑みせずに考えるのが重要です。コピペプログラマーになってしまわないために。
Railsプロジェクト用にカスタマイズされた設定が公開されているので活用しましょう。