「Railsを教えているスクールは駄目」などといった不満を聞いたことがあります。
実際のところ、どのような順番で、プログラミングを勉強したらいいのでしょうか?
記事の内容
こういった疑問にお応えします。
運営しているスクールのポジショントークである場合は別にして、何でこういった不満が出てくるのでしょうか?
スクールの誇大広告という側面もあるかもしれません。
でも、プログラミングの勉強の流れや順番が整理されてないからかもしれません。
この記事では、それらについて説明したいと思います。
サービスが配信されるまでの仕組み
プログラミングの学習を効率よく進めてもらうために、まずはエンジニアがプログラムを作って、それがユーザーの手元に届くまでに、どれだけの技術が使われているのかを説明したいと思います。
Ruby on Railsがサービスを提供するまで
Ruby on Railsを使ったサービスの場合に、一例ではありますが、サーバーにはこれだけの技術が使われています。
Ruby on Railsは、サービスを提供するための、ほんのごく一部の技術です。
そのため、「Ruby on Railsから始めるのは駄目」と言う発言が、私にはよく理解できません。
例えるならば、野球でヒットの打ち方を習っている最中に、特定のメーカーのバットに文句を言っているようなものです。
バットは、あくまでもヒットを打つための一要素です。
料理に例えるならば、包丁メーカーの文句を言っているようなものです。
包丁は、料理を美味しく作るための一つの要素です。
Railsもそれと同様です。
エンジニアが勉強すべき技術
上の図を見て、「こんなに勉強しないといけないの?」と思った方もいると思いますが、安心して下さい。
エンジニアとして働く上で、最初に全てを理解する必要はありません。
まずは自分の専門の領域から勉強を始めましょう。
エンジニアの仕事ごとに技術を分けると、下の図のようになります。
職種ごとに必要とされる技術
- バックエンドエンジニア
Ruby on Rails、MySQL、Git、(Vue、React、JavaScript) - インフラエンジニア
Linux、Nginx、Puma、MySQL - フロントエンジニア
JavaScript、Vue、Git - デザイナー
HTML、CSS、Bootstrap、Git
さらに付け加えると、Ruby on Railsだけでも、完全に理解するためには以下の内容を学ばなければいけません。
ただし、完全に理解をしていなくても、開発をすることはできます!
Ruby on Railsを確実に理解するための技術
なんとなくですが、プログラミングの奥深さを理解してもらえたでしょうか?
もしかすると、「PHPだったら簡単じゃない?」という意見もあると思うので、画像を貼っておきます。
PHPでも勉強することは多くあり、大してRuby on Railsと変わらないことがわかって貰えるはずです。
初心者はどこからフォーカスしていくべきなのか
さて、上記のことを踏まえて、初心者はどこから勉強するべきなのでしょうか。
一昔前の勉強の仕方はこうでした。
一昔前の勉強方法
- 高いハードルを越えるために勉強
- プログラミングが楽しい
- 楽しいから勉強しよう
- 1人前のエンジニアになる
このやり方では、多くの人が「プログラミングの面白さ」に気付く前に、プログラミングを止めてしまいました。
それが今のエンジニア不足の一因です。
最初のハードルを越えられた人だけが、エンジニアの卵になれました。
それが昨今では、こういった流れになりつつあります。
今の勉強方法
- プログラミングが楽しい
- 高いハードルを超えるために勉強
- 一人前のエンジニアになる
このような流れに沿って、楽しくプログラミングを始めるために、Progateやドットインストールなどのサービスから始めましょう。
もしくは、プログラミングスクールに通ってもいいと思います。
その際に、Ruby on Railsから始めることは何の問題もありません。
ただ、それは自分が知るべきことのほんの一部であるということも同時に理解しておいて下さい。
初心者が「プログラミングって楽しい」、「もっと勉強してみたい」と思って、エンジニアの入口に立てただけで、私はエンジニア向けの教育サービスは成功だと思います。
そのため、エンジニア向けの教育サービスへの批判は、的外れな気がしています。
もし、本当に一人前になれるサービスを求めるならば、生徒側もよほどのお金と時間を払う必要が出てきます。
初心者から中級者になるために
上記のことはわかったけど、私は早く中級者になりたいという方もいると思います。
その勉強方法も軽く説明しておきます。
中級者になる方法
ここがポイント!
- 幅広く勉強しましょう。
バックエンドならば、Ruby on Rails、Ruby、MySQLの全てを順番に勉強しましょう。 - 自分の分野とは違った、隣合う分野も勉強しましょう。
バックエンドならば、Linux、Nginx、Pumaなども勉強した方がいいです。 - 幅広く勉強したあとは、自分のサービスを作ってみましょう。
これらのことを自分なりに繰り返していれば、いつのまにかレベルが上がっていきます。
スクールに通っただけでは、このレベルまでは、なかなか到達できないかもしれませんが、地道に勉強していけば必ず中級者になれるはずです。
Good luck with your engineer life!
▼ 具体的にどこから勉強すべきか考えている人は、この記事を読んで下さい
-
ゼロからWebエンジニアとして就職する方法【何もない自分に積み上げていく】
ちまたには、「エンジニアになるための情報」で溢れかえっています。 ジョージさんが考える「Webエンジニアになる方法」を教えて下さい。 目次1 私が定義するWebエンジニア2 必ずやるべきこと3 推奨されること4 まとめ 私が定義するWebエ ...