プログラミングの学び始めは、新しい知識や技術が溢れていて、どこから手をつけるべきか迷うことも少なくありません。
特にRuby On Railsは、多くの初心者が一度は挑戦するものの、なかなか理解が進まないと感じることもあるでしょう。
この記事では現役のエンジニアがRailsの難しさを明確に解説し、学習の効率を上げるコツを紹介していきます。
プログラミングの学習方法は人それぞれなので正解はありませんが、今回の内容はMENTAでエンジニア未経験の方にプログラミングを指導させて頂き得た知見、そして内定獲得までサポートした実績を元に記載しています。
今回紹介する方法を実践することでRailsでの学習効率を高め、エンジニアと言う自由度が高い働き方を獲得して行きましょう。
Railsの習得は短期間では難しい
エンジニアを目指している方のメンターをしている際に以下のような相談を受けることがよくあります。
1ヶ月でRailsを使ったポートフォリオを完成させ、エンジニアとしての転職活動をスタートしたいです。平日は仕事がありますが夜や週末は学習に時間を割けます
平日の夜や週末を最大限に使って学びたいという情熱的な方には、全力でサポートしたいと思います。しかし、実際には1ヶ月という期間でRailsを完全に使いこなすのは難しいのが現状です。
特にプログラミング初心者がRailsを学ぶ場合、少なくとも2ヶ月以上の学習期間が必要と考えられます。
Railsは多機能なフレームワークであり、熟練すると効率的に開発が進められます。しかし、その前にRubyの基礎やRailsの仕組みをしっかりと理解する必要があり、それには時間がかかります。
短期間での集中学習は早期の内容を忘れやすく、最新の学びも十分に理解できないリスクがあります。この状態での転職活動は採用面接でのアピールが難しくなるでしょう。
Railsの学習効率を上げる3つの手順
Ruby On Railsの学習効率を上げるには基礎力を高めるべき。
Ruby On Railsを使って開発を進めていく上で必要な知識は大きく分けて3つの要素に分解することが出来ます。
- Ruby
- データベース (MySQL / PostgreSQL)
- HTML&CSS
これら3つの要素はRailsで開発を進める際の基礎知識となり、これらの力を上げる事がRailsの学習効率を向上させる鍵となります。
Rubyの基本的な書き方を理解しよう
Railsを使った開発ではRubyと言うプログラミング言語を使ってコードを書いて行きます。
つまりRubyの基本的な書き方が頭に入っていないとコードが書けず、更に理解もままならない状態になります。
- 変数、配列
- if文
- eachを使ったループ処理
- クラスの作成方法
- 関数(メソッド)の定義方法、呼び出し方
上記の内容は基礎中の基礎なのでこれらの内容がまだ曖昧な方は下記のいずれかの方法で学習をしておきましょう。
- ProgateのRuby学習コース+道場
- Udemy(Rubyの基礎も学習内容に含まれた動画)
- 書籍
また当ブログではRubyの学習ロードマップを作成しているので、こちらも合わせて確認をしてみてください。
よく使うMySQLコマンドを把握しよう
Railsで開発を進めて行く上で切っても切り離せないのがデータベースの知識です。
ポートフォリオなどの開発を進める中でログイン機能やユーザーが投稿した情報を保存するなど、どこかしらで「データを保存したい」という用途が発生します。その保存先がデータベースとなります。
当ブログでは初心者の方に向けたデータベース(MySQL)の基礎を下記の記事にまとめています。
データベースとテーブルの違い、基本的なMySQLコマンドの使い方をまだ知らないという方は参考にしてみてください。
また記載しているコマンドは全て暗記する必要はありませんが、どの様なコマンドが存在して何が出来るかぐらいは把握するようにしましょう。
最低限のHTML&CSSの理解
サーバーサイドエンジニアを目指す場合でもHTML&CSSが書ける事が望ましいです。
Railsを使って開発しようとしている多くの方は、ポートフォリオが完成した暁にはポートフォリオを武器として企業の書類選考に応募したり面接に挑まれると思います。
その際に重要なのがポートフォリオの第一印象、つまり見た目です。
サーバーサイドエンジニアを目指している方であれば実務でHTML&CSSを触ることは殆どありません。
しかしポートフォリオの作成時には必然的にHTML&CSSを触る必要があり、更にレイアウトが崩れていたりすると第一印象としては最悪です。
そうならないためにも、下記に挙げているHTML&CSSの最低限抑えておくべきポイントは学習しておきましょう。
- 各種タグの使い分け(header, footer, div, ul, span, pなど)
- CSSで装飾をする際のidとclassの使い分け
- Flexbox・Grid Layout(floatはもう古い)
- marginやpaddingの使い分け
- メディアクエリ(レスポンシブ対応で活用)
またよくある質問で「Bootstrapは使えたほうが良いですか?」というのがありますが、使えるに越したことはありませんが必須ではありません。
Bootstrapを活用することで、予め用意されているCSSを使い簡単に画面の装飾をしていくことが可能です。
言い換えるとどの様なクラスを付加すれば、どのような見た目になるかさえ覚えておけば、CSSが書けなくてもレイアウトの作成が可能になります。
Bootstrapを使えば画面のレイアウト作成の時間を短縮出来るというメリットはありますが、他のBootstrapを使っているサイトと似通った見た目になってしまったり、自分でCSSを書く機会は激減するのでHTML&CSSの向上はあまり期待出来ないでしょう。
HTML&CSSの学習方法としては下記の様な物があるので、あなたに合った学習方法で進めて行きましょう。
- ProgateのHTML&CSS学習コース+道場
- Udemy
- 書籍
ちなみに今回紹介したHTML&CSSの学習で最低限抑えておくべきポイントを学ぶと、簡単なランディングページ(LP)を作れるようになります。
LPが作れる様になるとクラウドワークスやランサーズでの案件受注にも繋げることが出来て、お金を稼ぐための幅も広がります。
是非これを機会に上記のような教材を駆使して学習していきましょう。
学習効率を更に上げる方法
ここまでの内容でRailsの学習効率を上げるために基礎知識が重要と言うのを伝え、更にその基礎知識の学習方法を解説してきました。
最後に、更に学習効率を上げたいという方のために2つ方法を紹介します。
MENTAで現役エンジニアと契約をする
MENTAで現役エンジニアと契約をする事で、気軽にプログラミングに関する質問が出来るようになり悩む時間も削減。料金もプログラミングスクールの半額以下。
MENTAはエンジニア(メンター)とプログラミングを学習したい人(メンティー)が繋がれるサービスで、メンターはプラン内容や料金を決め、その内容で教わりたいと思ったメンティーが契約をして行きます。
1,500人を超えるメンターが様々なプランを掲載していますが、相場としては下記のようになっています。
- チャットで質問し放題:月額3,000円〜
- Web開発のサポート:月額10,000円〜
- エンジニア育成:月額20,000円〜50,000円
- 弟子育成:10万円〜
ポートフォリオの開発であれば上記で言う「Web開発のサポート」か「エンジニア育成」辺りを契約する事になります。
プログラミングスクールは10万円を超える物が殆どなので、月額5万円以下で学習効率を挙げられるのは非常にコスパが良いと思います。
ただMENTAには契約されたメンターによって下記のようなデメリットがある場合があるので、契約前には必ずレビュー内容を確認したり、直接メッセージを送り求めている様なサポートをしてもらえるかを確認しましょう。
- 返信が雑すぎて何もはかどらない可能性
- メンター側の技術不足で問題を解決してもらえない可能性
- 返信頻度が少ない。ひどいと数日に1回程度。最悪音信不通になる可能性
プログラミングスクールへの入校
プログラミングスクールの質は日々向上している。厳選すれば学習効率を格段に上げることが可能。
プログラミングスクールはお金の無駄とか、行く必要がないみたいな情報がネット上には沢山あります。
しかしその様な情報が書かれているプログラミングスクールの記事の殆どは、実際にプログラミングスクールには通ったことがないブロガーの記事です。
つまり誰かが批判した内容をそのまま言い回しを変更しただけの記事が量産されているだけです。
今回僕がおすすめするプログラミングスクールは、スクールでのメンター経験と実際に通わわれた事がある方のリアルな感想を聞いて厳選した2校となります。
ポテパンキャンプ
有名企業の現役エンジニアが講師としてコードのレビューや質問に答えてくれる、Webエンジニア多数輩出のプログラミングスクール。
- WebアプリケーションコースとRailsキャリアコースの2つが存在
- カリキュラムに沿って無駄なく学ぶ事が可能
- 毎日10時から23時までの幅広い時間で技術的な質問をサポートしてくれる
- Railsに特化したプログラミングスクールと言っても過言ではない
WebアプリケーションコースではHTML&CSS、JavaScript、Rails、SQL、Gitなど最低限必要な技術の詰め合わせパックのようなコースになっています。
料金もキャリアコースと比較して半額なので、教養や副業などのためにプログラミングの基礎を学習されたい方には非常にコスパが良いコースとなっています。
一方、Railsキャリアコースではより実践に近い技術を学べ、専任のキャリアカウンセラーによる転職サポート付きです。
学べる内容としてはWebアプリケーションコースの内容に加えて、rspecを活用したテスト実装、CircleCI、Docker、WebAPI開発などを学ぶことが出来ます。
またこのキャリアコースでは入校前の無料カウンセリングにて現在のあなたのスキルチェックを行い、その結果により学習の期間と料金が変動します。
既に一部のスキルはマスターしているから、このコースだと無駄が多いな…と言う事にはならないのは嬉しいですね。
DIVE INTO CODE
Railsを扱う受託会社の新人研修の教材を使って学ぶ事ができ、チーム開発の経験も可能な実践よりなプログラミングスクール
- 機械学習とAIに特化したプログラミングスクール
- Railsのコースとしてはベーシックプログラムと就職達成プログラムの2つが存在
- チーム開発の経験が可能
- 卒業課題としてオリジナルアプリケーションの開発が可能
ベーシックプログラムでは入門Term、基礎Termの2部構成で組まれており、HTML・CSS、JavaScript、Rails、データベースなどを学習する事が可能になっています。
1つ前に紹介したポテパンキャンプのWebアプリケーションコースと非常に似ているカリキュラムですが、Railsの学習部分の内容が若干こちらの方が濃い内容になっています。
就職達成プログラムではベーシックプログラムの内容に加えて就職Termのカリキュラムを受講する事が出来ます。
この就職TermのカリキュラムにはVue.js、AWSで環境構築などが組み込まれており、更に卒業課題としてはオリジナルアプリケーションを開発することが可能です。
独学で学習をしていると、「ポートフォリオは作れたけど本当にこの実装方法で良いのかな?」と不安になることが多いと思います。
DIVE INTO CODEではそのポートフォリオ開発を講師の方のレビューを受けつつ開発をすることが出来ます。そして作成したオリジナルアプリケーションは、そのまま面接時のアピールポイントとしても活用出来るのが大きなポイントとなります。
DIVE INTO CODEはポテパンキャンプと比較して料金も高めで最低開講人数や定員などもありますが、より実践に近い形で学べ、オリジナルアプリケーションを講師の方のレビュー付きで開発が出来るプログラミングスクールです。
受講できるかはタイミング次第なところもあるので、タイミングとお財布と相談をしつつどちらのプログラミングスクールを選ぶか検討してみてください。