見出し画像

【独学向け】挫折しにくいプログラミング学習ロードマップ 『Ruby on Rails編』

本記事はTechpit内におけるRuby on Railsの学習ロードマップとなります。
また、本記事は5月27日時点のものとなりますので、今後さらなる追加や変更が加えられる可能性がございますこと、予めご了承ください。


はじめまして!
Techpit Magazine編集部のタカヤンです。

かねてよりTechpit内での学習ロードマップをつくって欲しいというお声をいただいており、今回やっと Ver 1.0 とはなりますが、ロードマップが完成しましたのでご紹介させていただきます!

本記事は、ただのロードマップではなく、これまで運営してきた経験をもとに、挫折しにくい学習方法や効率的な学習を行うためのポイントにも簡単に触れながら紹介していますので、そちらも今後の学習の参考にしていただけると幸いです。

(目的によって学習スタイルは変わってきますので、今回の内容をもとに一度自身でよく考えていただいて、取捨選択をしながら学習していただくことをオススメします。)


0. 前提知識

さっそくですが、大前提としてTechpitでは、主に文法などの基礎学習を終えた方が、より実践的な内容を作りながら楽しく学ベて、しっかりと理解も深められるような学習コンテンツの提供に注力しております。

そのため、ある程度の基礎知識をもとに学習していただくことになります。

具体的には、以下のような前提知識を必要とします。

・HTML/CSSの基礎知識
・コマンドラインの操作
・Rubyの基礎知識(Ruby on Rails編の場合)

とはいえ、上記を完璧にしようとしてもキリがないので、ご自身である程度学習出来たなと思ったタイミングで、一度次のステップに進んでも良いでしょう。

その際、アウトプットをしてみて理解できていない部分がまだまだ多いなと感じましたら、素直に一度基礎に戻り学習し直すことをオススメします。


1.  Ruby

ここでは、実際にRubyの基礎知識がついた後にやるとオススメの学習コースをご紹介いたします。

また、ここでの挫折しないオススメの学習方法は、

Rubyの基礎文法の学習を終えたら、実際に何かしらのサービスを作りながら、Rubyの文法の活用方法を理解していくことです。

よく初学者にありがちな間違いとして、Rubyの基礎文法を学習してすぐに、そのフレームワークであるRuby on Railsの学習をはじめられる方がいますが、そのやり方は後々痛い目を見ることになるので、あまりオススメはしません。ここでは焦らずに着実に知識を定着させていきましょう。



☆ Rubyの学習教材 ☆

ドラクエ風ゲームプログラムを作ってみよう!

画像2

本教材では、実際に1つのプログラムを作りながら、開発現場に入るために必要なオブジェクト指向の知識や、各種オブジェクトのメソッドを学んでいきます。この教材を作成するときに意識したのは、「現場で実際に使う知識に焦点を当てる」ということ。できる限り無駄を省いた本当に現場で必要になるスキルをご紹介しています。


【Ruby】ニュース系サイトのスクレイピングコマンドを作ろう!

本教材では、Rubyを使ってニュースサイトのスクレイピングを行います。 一般的な教材にでてくるプログラムは、ゴール(正解)のプログラムがいきなり記載されていることが多いですが、本教材にでてくるプログラムは、スタート地点のプログラム、途中のプログラム、そしてゴール地点のプログラムのすべてがあるので、プログラムが変化していく流れを体験できます。


2.  Ruby on Rails

ここでは、Ruby on Railsでのオススメの学習コースをご紹介いたします。

Rubyに関する知識がつきましたら、次は実際にそのフレームワークであるRuby on Railsを使ってWEBサービスを作っていきましょう!

ここでは、以下の5つに分けて紹介させていただきます。

1. 基礎
Ruby on Railsの基本的な文法を理解する
2. 初級①
簡単なWEBアプリケーションを作りながら全体像を把握する
3. 初級②
作りたいものベースで学習し、さらなる知識の定着をはかる
4. 中級
やや複雑なリレーションを組んだり自身で考えながら実装してみる
LINE Bot開発
LINE Botを開発しながら外部APIとの連携などを学習する

プログラミングは、英語の学習と似ていて一度やって終わりではなく、繰り返し学習することで初めて知識が定着します。実際には、開発時の状況によって実装方法であったりは変わってくるので、いかにいろいろなパターンを知って、上手く使いこなせるかがプログラミングをやっていく上では、重要だったりします。

ここでは、上記を意識しながら進めていくと、より効率的に学習を進めることができるでしょう。


☆ 基礎の学習教材 ☆

Ruby on Railsの基礎を学ぼう!
本教材ではRuby on Railsを用いたWebアプリケーション開発手法を学んでいきます。ターミナルの操作方法からRubyの基礎知識、MVCなどRuby on Railsを学ぶ上で必須のスキルを学ぶことができます。


ここで基礎の理解ができましたら、次は実際に何かを作りながら学習していきましょう!実際に作ってみるのが習得への一番の近道です!


☆ 初級①の学習教材 ☆

Trello風ToDoタスク管理アプリを作成しよう!【Rails】

画像3

本教材では、Ruby on Railsを使ってタスク管理アプリを開発します。環境構築からHerokuでのデプロイまでを体系的に学ぶことができ、Railsでの開発において重要なMVCや、Deviseを使ったサインアップ・サインイン機能の実装方法などWEBアプリケーション開発の全体像をわかりやすく解説してます。


社会の窓が空いていることを匿名メールで通知サービスを作ってみよう!
本教材では、Ruby on Railsを使って社会の窓が空いていることを匿名メールで通知サービスを作成します。入力フォーム・確認画面の作成、メール配信機能の作成といった、実際によく使われる機能の実装を通して、Railsでの開発への理解を深めていきます。


初級① にてサービス開発の全体像がなんとなくでも良いので分かってきましたら、次は作りたいものベースで学習を進め、さらに理解を深めていきましょう!


☆ 初級②の学習教材 ☆

Twitter風簡易SNSアプリを作ってみよう!
本教材はRubyプログラミング言語の上で動作するWebアプリケーションフレームワークであるRuby on Railsを使ってTwitter風簡易SNSアプリを作成します。学習の流れとしては、《①どのように機能を追加するのか実装を考える
 ②まずは自分で実装する ③解説を見て理解を深める》となります。
上記のように本教材を通して、とある機能を開発するときに自分で設計し、実装する力を身につけていただければ幸いです。


【Ruby on Rails 5】Instagram風簡易SNSアプリを作ってみよう!

画像4

本教材では、Ruby on RailsでのWEBアプリケーション開発について、ローカルでの環境構築からデプロイ(サービス公開)まで順を追って学んでいきます。0からInstagramの基本的な機能をステップごとに作成していく過程を通して、Webアプリケーション開発の流れを掴みましょう。


動画にコメントを送るWebアプリケーションを作ってみよう!
本教材は、Railsの教材を見ながら簡単なサンプルアプリケーションを作ったことがある方が、次のステップとして「動画にコメントを送るサービス」を開発しながらRailsの学習を行うためのものです。動画投稿機能やコメント機能といった汎用性の高い機能の実装をしていきます。


文字入り画像をツイートできるシンプルなサービスを作ってみよう! 【Rails】
Ruby on Railsを使って、文字入りの画像をツイートできるシンプルなサービスを作成します。作成したサービスはシンプルに使えるので、Twitter上で自分以外の方にも気軽に使ってもらいやすいサービスです。パート1とパート2の2つに分けて解説しております。


Ruby on Railsでの簡単なアプリケーションの開発であれば、教材や記事を見れば理解しながら開発を進めていけるようになりましたら、次のステップに進みましょう!

次では、先ほどより少し複雑なリレーションを組んだり、自身で考えながら実装をしていきます。


☆ 中級 ☆

Tinder風マッチングアプリを作ってみよう!

画像5

本教材では、Ruby on Railsを使ってマッチングアプリを開発していきます。Deviseを使ったサインアップ・サインイン機能の実装をはじめ、スワイプ機能を含めたマッチング機能の実装やAction Cableを使ったリアルタイムチャット機能の実装について学んでいきます。



Instagram風簡易SNSアプリをカスタマイズしよう!【Rails】
本教材は、「【Ruby on Rails 5】Instagram風簡易SNSアプリを作ってみよう!」の教材で作成したWebアプリケーションをカスタマイズしていきます。実際にどのような機能を追加するかの実装を考え、自身で実装をしてみて理解を深めていきます。


このパートでは最後になりますが、簡単に動くものを作ってみたい方向けにLINE Bot開発を体験できる学習コースがございますので、ご紹介させていただきます。


☆ LINE Bot開発 ☆


ランダムで2つのキーワードを返してくれるシンプルなLINE botを作ってみよう!
本教材は、Railsで簡単なサンプルアプリケーションを作ったことがある方が、次のステップとして「アイデアtweet」というLINE Botを利用したアプリケーションを開発しながらRuby on Railsの知識を深められるものとなっております。

雨が降る日の朝にメッセージを送ってくれるLINE botを作ってみよう!

LINE 天気

本教材では、Ruby on Railsを使って、雨が降る日の朝にメッセージを送ってくれるLINE botを作成します。実際に、毎朝決まった時間に雨が降るかどうか調べ、雨が降る日にはメッセージを送ってくれる機能を実装していきます。

楽天APIを使ってお買い物LINE botを作ってみよう!【Rails】
本教材では、「欲しい商品名を送信すれば、ランキング1位〜3位の商品を返してくれる」LINE botを作成します。楽天APIの使い方からLINE botで画像や文字、リンクを組み合わせたリプライをする方法を学びます。



3.  発展

最後に、Ruby on Railsでの簡単なWebアプリケーション開発をできるようになった方に向けて、より高みを目指すために学習すると良いコースをご紹介します。

ここでは大きく以下の2つに分けて紹介しております。

必須
Ruby on Railsで開発をする上で、知っておくべき必須スキル
推奨
余力がある方がより高みを目指すために学習すると良いスキル


☆ 必須 ☆

Railsアプリケーションのパフォーマンス改善をしながらN+1問題を解決するスキルを身に付けよう!

画像7

アプリケーションのパフォーマンス劣化を引き起こす要因の1つに、不要なSQLを大量に発行してしまうN+1問題という問題があります。 N+1問題の知識は高トラフィックサービスの運用から、小規模サービスまで規模に関係なく全てのRailsアプリケーション開発に必須のスキルです。


【Rails】はじめてのRSpec!テストコードを書こう!
システムが正常に稼働するには品質を高めなくてはならず、自動テストは品質を高める手法の一つです。プログラミングを学習し始めると、新しい機能や目に見える機能の実装が楽しく、特に独学では品質やテストを学習される機会は意外に少ないと感じています。この教材では集中的に自動テストに触れ、テストの意義を感じて頂ければと思います。


☆ 推奨 ☆

【Rails / Vue.js】Snippet アプリを作ってみよう!
本教材は、主にRailsの基本的な文法の学習を終えた方が、次のステップとして自分用Snippetアプリを開発しながらRailsとVue.jsの学習を行えるような内容となっています。本教材では、Rails Scaffoldを利用しており、Railsについての解説を最低限にしておりますが、RailsとVue.jsを組み合わせた開発の入門としてはぴったりの教材かと思います。


ホスト環境で動いているRailsアプリケーションをDockerに移行しよう!

docker移動

本教材はDocker初学者向けに、Dockerのチュートリアルを終えた次のステップとして、ホスト環境で動いているRuby on Rails環境をDockerに移すという内容になっております。その際、Dockerコマンドの裏側でどんな処理が行われているのかを、実際にDockerfileを作成しながら見ていくことで、Dockerの基礎的な部分の理解を深めていきます。


周辺知識

周辺知識は、Ruby on Railsでの開発を行う上で、知っておくと開発がスムーズに進められるであろう知識です。

なので、Ruby言語と同時並行的に学習することをオススメいたします。どちらかというと、(一部を除き)汎用的な技術となるので、やりたいことが決まってない方は、こちらから学習をはじめても良いかもしれません。


☆ WEB基礎 ☆

WEBアプリケーションの仕組みを学ぼう!
本教材で、WEBアプリケーションの基礎を学ぶことで、プログラミングする上で必要な知識を得ることができます。そしてWEBアプリケーションに関わらず、その他のシステム開発へノウハウを活かすことも出来ます。


☆ HTML/CSS ☆

【HTML/CSS】Spotify風簡易音楽サイトを作ろう!
本教材では、HTML・CSSの基礎を少し学んだが、デザインを工夫したサイトを作成したい方向けへの教材となっています。 参考のサイトは、「Spotify」という音楽配信サービスとなり、そのサイトのトップページのデザインに寄せたページを作成していくものとなります。


☆ Bootstrap ☆

Bootstrapを使ってレイアウトできるようになろう!
本教材では、BootstrapのGridシステムを理解して使いこなせるようになることや、Bootstrapを使って要求されたデザインを作ることができるようになることを目的としております。 Bootstrapで、本格的なデザインを簡単に実装できるようになりましょう!


☆ jQuery ☆

jQueryでタイピングゲームを作ってみよう!
本教材では、誰もが一度はやったことのあるシンプルな「タイピングゲーム」を作ります。HTML, CSS, jQuery, javascriptを使い、メインはjQueryとなります。1ステップずつ解説と参考記事、コード全文を載せているので、手を動かしながら学習することができます。書籍などで基礎をやってみて、何か1から作ってみたいという方にはうってつけで理解しやすく楽しく学習できます。


☆ SQL基礎 ☆

SQLを基礎から学んでみよう!
本教材は、データベースで一般的に利用される操作言語であるSQLを基礎から学ぶことで、データベースの基本的な操作ができるようにします。SQLとはどういったものか、といった基礎的な内容からテーブルの結合など応用的な内容までステップごとに進めてレベルアップをはかっていきます。内容的には「入門編」「応用編」に分かれ、入門編で基礎を押さえた上で、応用編に進むことができるようになっています。


☆ Git ☆

もう怖くないGit!チーム開発で必要なGitを完全マスター

画像9

本教材では、まずGitの仕組みを図解でしっかりと理解していきます。Gitってそもそも何のためにあるのか、コミットした時にどういう風にデータを保存しているのか、マージやリベースした時に何が起こっているのか、ブランチってどういう風に実現しているのか。そういうことを仕組みから理解することで、Gitの分かりづらいコマンドを自信を持って使えるようになります。その上で、実際にプロジェクトを作成しGitHubを用いながら、コマンドを実行して学んでいきます。


最後に

学習ロードマップ _rails_200527

本記事を受けて、ここ足りていないんじゃないかという教材のリクエストであったり、ここのスキルを埋める教材無いけど私書けるので執筆したいですといった応募もお待ちしております!具体的には以下をご確認いただけると幸いです。

ー 教材リクエストフォーム

ー 執筆登録フォーム


最後までお読みいただきありがとうございます。

引き続きTechpitをよろしくお願いいたします。

Techpit運営
齊藤


この記事が気に入ったらサポートをしてみませんか?