WEB系のエンジニアになりたいと思った時に勉強するのが、Railsですよね。
エンジニアの中でも、柔軟な働き方が出来ると言われています。
Railsを勉強するのはgoodですが、初心者がRailsを付け焼き刃で勉強して、運良く就職出来てしまうとまずいです。
プログラミングを料理で例えるなら、Railsはいわばなんでも作れるキッチン。キッチンでは、調理器具とレシピ、食材があって初めて料理ができます。
もし、、就職出来て現場(キッチン)に入っても、包丁の使い方が分からなければ大怪我してしまいますよ。というのをお伝えする記事です。
Railsの勉強してると、他の知識の必要とすごく感じる
キッチンに立ち、包丁、鍋、食材、調味料の微妙な違い、火加減や配合の重要さに気づくのと同じ
キッチンに立たないと料理スキルは伸びないから、とりあえず即席でも料理して(アプリ作って)
都度修正差すれば強くなれそう
応用→基礎→応用 × ∞
— ブシトラ🐯筋肉エンジニアになりたい (@busitora2) 2019年4月8日
このページの全体像
プログラミングは料理で例えられる

Ruby on Railsはキッチン
Ruby on Rails(以下Rails)は、Rubyで書かれたフレームワークで、便利にWEBサービスを作ることできます。
「WEBサービス=料理」と例えると、Railsは料理を作るためのキッチンです。
キッチン次第でどんな料理も作ることが出来ます。
キッチンに入らなければ料理はできない
まず前提として、料理を作るためにはキッチンに入る必要があります。
何か料理しようと思った時に、まずキッチンに入らなければ、料理は完成しませんよね。
Railsの場合も同じで、Railsを勉強しなければWEBサービスは完成しません。
調理道具や食材知識がなければキッチンで何も出来ない
しかしながら、いざキッチンに入ったからといって、何も知らない見習いが料理が出来るかと言うとそれはまた別。
料理をするとなると、必要な知識が色々あります。
- 包丁
- フライパン、鍋
- 食材
- 調味料
- 火加減
これはほんの一例ですが、料理をするなら上記の知識は必須ですよね。
包丁の使い方を知らなければ食材も切れませんし、食材の味を知らなければどんな調味料が合うかも分かるはずがないです。
プログラミングも同じで、Railsを学ぶ際には
- Ruby
- DB
- HTML/CSS
- WEBの基礎知識
- JavaScript
- セキュリティの知識
- MVC
などが必要になってきます。Railsを勉強してサービスを作りたいなら、Rails以外の知識が必要不可欠です。
実際に僕も、Railsを勉強していると足りない知識が浮き彫りになってきて恥ずかしくなることも多々あります。
プロの料理人になりたいなら、基礎を学ぶこと
あなたがもし、趣味程度プログラミングを出来ればいいのであれば、クックパッドを見て料理を勉強して即席で美味しい料理を作れれば大丈夫ですが、もし仮にプロのエンジニアとして稼いでいきたいなら話は別です。
無思考でコードの写経はマジで意味無いからやめた方がいい!!
料理人目指す人が青椒肉絲作るのにクックパッド見ながら、醤油とかウスターソースの味も分からず、ただ書いてある通りに作って、出来たー!!これで料理人に近付いたー!って言ってるくらい意味無いー!!— あじー@アラサープログラマー(学習中) (@ajiajiaji1104) March 25, 2019
仕事なのに、クックパッドレベルのコピペの知識でまかり通ったらヤバいですよね。また、クックパッドで料理をしても1から自分で料理を作れるようにはなりません。
Railsエンジニアとして仕事をしていきたいなら、基礎の学習は絶対に必要です。
プログラミングは応用と基礎の反復が大事

応用を学んで、必要な基礎を学ぶ
プログラミングの良い学習方法は、以下のとおりです。
つまり、キッチンに入りつつ、食材と調味料の勉強をしていくということですね。
キッチンに入らないと料理は出来ませんし、料理基礎がないとキッチンで何も出来ません。
Railsの独学でおすすめな基礎固めとは
Railsの勉強で基礎固めが大事ですが、おすすめな学習方法は、「Progate」「Railsチュートリアル」が鉄板です。
Progateで、料理とは何かが軽くは分かりますし、Railsチュートリアルではキッチンについてめちゃくちゃ詳しく学べます。

幸い、RailsチュートリアルやProgateのやり方はよくネットに落ちているので、今回はおすすめの書籍について案内します。
上記の本は、どのエンジニアに聞いてもおすすめされますし、実際に僕も使っています。
知り合いの激強エンジニアも基礎が大事と仰っています。
railsをやる前に理解しておくべき事項
1. httpリクエストとは
2. ウェブサーバとは
3. ブラウザとは
4. データベースとは
5. SQLとは
6. html/cssとは
7. JavaScriptとは
8. MVCフレームワークとは
9. コンピュータ(メモリ、cpu)とは
10. Rubyのオブジェクト指向とは他多数
— 松田信介@有言大実行の人 (@XHACK20) February 10, 2019
独学でプログラミングは効率が悪い

独学のプログラミングは挫折率が9割
実は、独学のプログラミングは挫折率が9割と言われています。実際に僕も、何度も挫折しそうになりましたw
料理と違う点を上げるとすれば、料理は失敗が明確に分かるのに対して、プログラミングはエラーを追求するのに時間がかかることがあるからです。
1つのエラーを解決するのに、丸1日以上かかることなんてよくあります。。
エンジニアになりたいのに、挫折してしまっては元も子もないですよね…
独学で学んでからスクールに行くと効率的
独学でプログラミングは挫折率が9割なので、プログラミングスクールに通うのもアリだと思います。
「プログラミングは独学で十分」という人もたまにいますが、独学で料理を学ぶのも良いですが、教室に通った方が近道なのは間違いありませんよね?
ましては、プログラミングを仕事にするのならスクールに行くべきです。
ただ、自分でキッチンに立って、料理に何が必要か分かるまで勉強すると効率が上がりますので、おんぶにだっこは良くないと思いますが、スクールに通って、必要な知識を集めるのは合理的です。
