プログラミング

デイトラRuby on Railsコースをやってみた【学べることを徹底解説】

デイトラRailsコース実際にやってみた【内容、学べること】

こんにちは、現在フリーランスのWeb制作者として活動していますしょーご(@samuraibrass)と申します。

この度デイトラのRailsコースを学びまして、そこで学べたこと、できるようになったことや感想を、実際にやった人の視点から書いていこうと思います。

本記事の対象読者

Rails勉強したいAくん
Rails勉強したいAくん
デイトラのRailsコースってどんなこと学ぶんだろうか
Rails勉強したいBさん
Rails勉強したいBさん
結局このデイトラRailsコースでは何がどこまでできるようになるのかな?
しょーご
しょーご
そんな方達にフィットします!

このコースを走る上での私の前提スキルは以下のようになっております。

  • HTML,CSS,Sass,jQuery,WordPressを仕事で触っている
  • 少しのPHPとJavaScriptの知識
  • RubyやRailsは経験なし

といった感じで、サーバーサイドの知識やプログラミング力もあまりあるとは言えない状態でした。

ちょうど自分自身「もっと技術力を上げたい」と思っており、今回リリースに合わせて「Railsを学習しよう」と思ったのでした。

本記事はまだ執筆途中になります

デイトラとは

デイトラは「1日1題90日で
プロのWEBスキルを手に入れる」ことを目指したスクールで、業界最安級のスクールとなっております。「未経験でも迷わず、楽しく学べるオンラインスクール」として運営しています。

今回はRailsコースに照準を合わせたいので、詳細は以下記事に譲ろうかと思います。

デイトラRailsコースの概要

デイトラRailsコース

Railsコースで学べることは以下のようになっております。

デイトラRailsコースのカリキュラム

  • Webサイト作成
  • JavaScriptによるサイト改善
  • Rubyによるプログラム作成
  • Webの基本
  • Git・GitHub
  • RESTful
  • Rails6によるWebアプリの作成
  • RspecによるWebアプリのテスト(近日公開)
  • デバッグ手法
  • Ajaxによるアプリの改善
  • メール送付
  • Sidekiqによる非同期処理

カリキュラムは90日間で200時間の学習時間を目安にしています。

デイトラRailsコース

メンターに質問できる環境

デイトラRailsコース

デイトラ全体の特徴ですが

  • カリキュラムは閲覧期限制限なし
  • 一年間メンターに質問し放題
  • 専用Slackコミュニティにて交流ができる

という特徴があります。Railsコースも例外ではありません。

特に「メンターに質問できる」というのは非常に重要です。私自身もフリーランスとして2年ほど働いており、Web制作系のメンターも行いますが、

「質問の仕方」はフリーランスでなくてもエンジニアを仕事としてやっていくのなら、必須のスキルになります(質問には作法があります)

これをカリキュラムをこなしながら練習できるというのは、非常に大きいわけですね。

もちろんメンターは現役のRailsエンジニアが行っています。

Railsコースの価格

Ruby/Railsコース受講料

¥99,800

となっております。個人的には内容が超充実しているので、そこまで高くなく良心的だなと思います。内容は後述しますが、

かなり実践的なところまで踏み込んでいるからです。ここは開発者のとださん(@cohki0305)の思いを聞くと、価格設定についてよくわかります。

こうやってYouTubeやTwitterで無料で発信して広告をあまり使っていないで集客できているからこその価格で提供できるというわけです。

Ruby on Railsコース初級編 WEBサイトとミニアプリを作れるようになろう

デイトラRailsコース
これは筆者の画面になります

DAY01からDAY24までデイトラWeb制作コースと同様であるため駆け足で説明します。

DAY01~DAY16 HTML,CSS,Bootstrap学習

HTML,CSSでこのようなサイトを作っていきます。

デイトラ初級編
デイトラ

DAY17~DAY24 jQuery,JavaScript,Sassの学習

デイトラRailsコース

JavaScript,jQueryは本来「デイトラWeb制作コース」の中級編に搭載されている内容ですが、Railsコースでは初級編に組み込まれています。

Railsでアプリケーションを作る際、というかサーバーサイドエンジニアにももはやJavaScrptの知識は不可欠なもの、教養になっているので、こうなったのかなと思います。

DAY25~30 Rubyの基本を学ぶ

デイトラRailsコース

ここから本当のRuby/Railsコースのスタートです。

Rubyの基本からオブジェクト指向の書き方まで

個人的に、想像していた以上に中身が濃密で、特にクラス(オブジェクト指向)のパートがすごくよかったなと感じました。

デイトラRailsコース

Railsコース全般に言えることですが、動画の解説が大半を締めます。

これが最高にわかりやすいです!!

文字情報だけだと、難解な部分だと離脱率が高くなるかなと思いますが、動画ならリアルタイムで一緒に進めていける、これってすごくいいなと思いました!!

そして、最後にクラスを作らせるところがいいなと思いました。

デイトラRailsコース

私も仕事で使っているWordPressがオブジェクト指向でできており、クラスからインスタンスを作成してメソッドを呼び出しなど日常的に行っておりましたが、

その仕組みをよく理解しているかと言われると自信はありませんでした。

自分でクラスを作るとかはなく、WordPress既存のものを利用していただけなのです。

オブジェクト指向自体が難しく自分も雰囲気で利用していたのですが、このコースで自分で仕様に従ってクラスを作ってみて、理解が深まりました。

RubyやRails自体がオブジェクトの集まりであるため、このクラスの概念をしっかり理解するのは大切だと思います。

天気予報アプリの作成

初級編のラストではAPIを利用して明日の天気を取得する機能を作成します。

デイトラ Railsコース

そして最後に、一度作成したコードをオブジェクト指向で書き直すパートがあるのですが、このようにRubyコースでは定期的に自分で考え実装する課題が与えられるので、

かなり鍛えられるなと思います。

しょーご
しょーご
ちなみにこの課題まあまあ難しかったです笑 privateメソッドへの切り出しとか慣れぬ…

ここまでがRuby.Railsコースの初級編になります。

Ruby on Railsコース中級編 Webサービスを作れるようになろう

デイトラRailsコース

中級編ではいよいよRailsに入り、「ToDoアプリを自分で作成できるようになる」レベルまで達することができるようになります。

DAY1~DAY4 webの基本編

デイトラ Railsコース

Railsに入る前に「Webの基本」を学んでいきます。それは

Webとは何なのかがわからないと、Railsが何をしているか全然理解できないから

ざっとこのパートで学ぶことを箇条書きにしてみますが、みなさんこの内容を大雑把にでも理解できているでしょうか。

もしわからなければ、Railsを学習しても

Rails初学者
Rails初学者
全然理解できない、Railsって簡単なんじゃ…あれ?

となります笑

  1. ブラウザとサーバとは
  2. HTTPとは
  3. IPアドレスとドメインの関係
  4. Git操作の基本
  5. GitHubの利用方法(プルリクと聞いてわかるか)
  6. UNIXコマンド(ls,cd,mkdir.touchなど使えるか)
  7. SQLでどのようにデータに変更を加えるか

このようなものはRailsを学習する前に理解しておくべきものです。

デイトラ Railsコース
このように図解&動画はわかりやすくて至高

DAY5~8 Railsの基礎編

デイトラ Railsコース

こちらのセクションではRails環境の構築と超基本的な操作を学んでいきます。

いよいよと言った感じです。

このパートでいろいろダウンロードしました。

ダウンロードしたもの
  1. iTerm2(エンジニアが好んで使うターミナル)
  2. rbenv(Rubyのバージョン管理ツール)
  3. nvm,yarn,bundler,Railsのインストール
デイトラ Railsコース
フレームワークあるあるかもですが、この画面は感動しますw

またこのパートから、変更内容を都度Git(SourceTree、GitHub)で管理するようになります。

これが最高に鍛えられていい感じです。

Gitでの流れ
  1. 学習で追加する機能毎にローカルでブランチを作成
  2. そのブランチで機能開発が終わったらコミット
  3. その後GitHubリモートリポジトリにプッシュしプルリクを出す
  4. マージしてブランチを閉じて、ローカルでプルして反映させ一連の流れ終了

プルリクベースでの作業が実践的でいい

デイトラ Railsコース

私もWeb制作で稀にGitHubを使うことがありますが、開発する機能毎にブランチを切って作業し、

その後プルリクを出してマージしてもらうGitHub Flowで開発することがあるので、

それが学習中からできるのは非常に実践的だと思いました。

Gitでのソースコードバージョン管理は、日常的に行わないと習慣化しないので、カリキュラムでもちょくちょく「プルリク出しましょう」と言ってくれます。

また、メンターへの質問も「プルリクベース」です。

デイトラ Railsコース

実務ではソースコードの共有は基本的にGitHubなどで行われます。そう言ったツールを使って質問するのは非常に実践的と言うことです。

DAY9~DAY15 CRUDアプリ編

デイトラ Railsコース

Railsの基本動作を覚えるパート

Webアプリケーションを構成する4つの要素(CRUD)があります。

CRUDとは
  1. Create(作成)
  2. Read(詳細)
  3. Update(更新)
  4. Delete(削除)

いずれのアプリケーションもCRUDの機能を持っていると言われます。

このパートではこのCRUD作成を通して、Railsでの開発を学んでいきます。

現時点で作れたもの

トップページの一覧画面。

デイトラ Railsコース
下のプラスボタンから「投稿画面」記事クリックで「記事詳細」に飛ぶ

投稿画面

デイトラ Railsコース

ちなみにバリデーションを設定しており、なにも入力せずに投稿しようとすると、

デイトラ Railsコース

このようにエラーメッセージが表示されるようにしています。

詳細画面

デイトラ Railsコース

詳細画面からは編集と削除を行うことができます。

編集画面

デイトラ Railsコース

編集画面では、当たり前ですが最初から編集する記事の内容がフォームに表示されています(当たり前なんですが、実装すると意外に苦戦するポイント笑)

学んだRailsの重要な概念たち

  1. gemの使い方と管理
  2. Rails式リンクの貼り方、ID参照
  3. Rails式フォームの作成方
  4. Strong Parameter
  5. Validation(検証)
  6. 変数の受け渡し
  7. flashメッセージ
  8. Rails日本語化
  9. before_action
  10. 日付表示とフォーマット
  11. Partial Template

などなど。いづれもRailsの基本的な部分だと思います。

地味にTwitterでシェアするとTwitterカードとかいい感じに表示されるので、士気上がります。あとTwitterタイムラインがポートフォリオ化されていい感じになりますね。頑張ってる感ある。

DAY16-18 Railsの重要概念

デイトラ Railsコース

開発しやすい環境を作ろう + Railsの思想を学ぼう

このパートでは実際のRails環境に近づけるためのツール(gem)の導入と思考を学びます。

  1. デバッグはエラーメッセージと変数を確認すること
  2. pry-byebugでデバッグ
  3. hamlテンプレート
  4. annotateでDBの構造をモデルに記録
  5. rubocop(lintツール、めっさ文法指摘してくるgem)
  6. エラーメッセージとログの見方
  7. Railsの思想

個人的に重要だと思った二点をかいつまんで。

  1. エラーメッセージとログの見方
  2. Railsの3つの思想

デイトラRailsコースでは開発者のとださんの考える効率の良いプログラミング学習法の考えが色こく反映されており、特に

とださん

真っ先にぐぐらないで!!エラー文見て!!そこに答えあるから!!

ということで、エラー文の見方や見やすくするgemの導入をしていきました。

デイトラ Rails デバッグ
エラー文を読み解けば、必ず答えはそこにある

しょーご
しょーご
僕個人の考えで言うと、まずエラー文を見て、それでもわからなければエラー文でググって、日本語の情報もなければStack Overflowなどに頼るのがいいかなと思っています

また、Railsの3つの考えも学びました。

  1. CoC(設定より規約)
    →決められた通りにコーディングすることで、オレオレがなくなり保守性が高くなる→Railsにルールが多い理由
  2.  DRY(Don’t Repeat Yourself)
    →同じ処理はまとめて書いておく→共通処理はメソッドにまとめて書いておくとか
  3. REST
    リソースに一意の識別子(URI)をつけ、そのリソースに対して動作を決める↓画像参照
デイトラ Rails
デイトラRailsコースより:RESTの説明

ActiveRecordの機能を知ろう

RailsではSQLを書く機会はほぼなく、ActiveRecordがいい感じにクエリを発行してくれます。

デイトラ Railsコース
Article.all.order(id: :desc).limit(3)

これは「Articleモデル内のデータから、idが後ろから三件のレコードを取得する」と言う処理ですが、SQLでは

SELECT "articles".* FROM "articles" ORDER BY "articles"."id" DESC LIMIT ?  [["LIMIT", 3]]

と本来書かなければならない処理です。ActiveRecordのおかげでとても簡単になっているのがわかりますね!

  1. findとfind_by
  2. first, second, third とlast
  3. all, order, limit
  4. where, count
  5. create, save
  6. update, assign_attributes
  7. destroy

言語化すると盛り沢山ですが、直感的なのでSQLに比べてすぐに使えそうです。

Validationについて

Validation(検証)は具体例を見た方がわかりやすいかもしれません。Webアプリケーションでは必須の機能です。

  1. タイトルは100文字以内で
  2. 文章とタイトル合わせて500文字以上書かないとだめ
  3. 文章の先頭が@から始まってないけない
  4. Emailが正しい形式か検証
  5. そもそも入力されてるかチェック

など、こう言った機能を追加します。

デイトラ Railsコース
用件を満たさないと怒ってくれる。みなさんも会員登録とかでよく目にしますよね。

DAY19 ユーザー認証の実装編

デイトラ Railsコース

ユーザー認証機能を作ってみよう

Deviseと言うgemを使ってユーザー認証機能を作成しました。ログイン画面やパス、ユーザー情報編集、ログアウトなど様々なコントローラーやView ファイルが作成されます。

デイトラ railsコース
ログインしていないとログインボタンが出る
デイトラ Railsコース
ログインしてるとプロフィールボタンが右上に表示

DAY20~25 リレーション学習編