はじめに
はじめまして、24卒のどすこいと申します!
現在内定先でRuby on Railsの機能開発やバグの修正などを行なっています!
記念すべき初投稿は、筆者が実務に入るまでに様々な勉強をしてきました。
その中で、「この教材はそんなに必要なかったなぁ〜」「この教材はまだ早いなぁ」「役に立ったなぁ〜」といったことが多々あります。
そんな筆者がもう一度勉強し直すならこれやる!と思った教材を紹介していきます!
筆者自身苦学生だったので、できるだけ費用を抑えています。
なお、今回のゴールは実務に入るまでです。実務経験をできるだけ早く積むことがエンジニアの成長につながると思っています。
想定読者
- 新卒でエンジニアになりたい方
- インターンに行きたい方
- エンジニア転職を行いたい方
- プログラミングに興味がある方
この記事で書かないこと
本記事では、以下のことは書きません。単純に教材だけを列挙していきます。
- マインド (質問力、コミットメッセージへのこだわり)
- Toolの紹介 (JiraやSlackの使い方)
- 他の技術内容 (swagger UI・GraphQLなど)
実務に入るために必要な要素
まず、筆者は最低限必要だと思う技術を列挙していきます。
なお上から順に勉強していただくことでロードマップになっています!!
その中でより重要だと思うのは、★をつけていきます!
★は3個が最重要です!
理由はそれぞれのセクションで書いていきます!
- HTML ★★
- CSS ★
- Tailwind CSS ★★
- Javascript ★★
- Git ★★★
- Linux ★★
- Docker ★
- SQL ★★
- DB設計 ★
- Ruby ★★
- Ruby on Rails ★★★
- Rspec ★★★
- Github Actions ★
- デプロイ ★
- ポートフォリオ ★★★
筆者が実務に入るまでならやらなくていいのではと思っていること
ここでは、筆者がそこまでいいよね。と思うことを列挙します。多分賛否の声はあると思います。
-
ReactやVueの勉強
理由は、フロントエンジニアが行うから。最初はRailsをしっかり行い、後でRails APIなどから連携の勉強をすればいいと思う。
ただ、筆者はReactが好きなのでやってる。
-
AWS
マジで後からでいい。会社によってはAzureの場合もある。沼です。
-
Sass
CSSで良い。実務で使われている場合はCSSを理解しておけばすんなり理解できるので特段気にしなくても良い。
それよりRailsを理解しましょう。
-
SPAのポートフォリオ
ポートフォリオにSPAは必要なく、アイデアが大事だと思う。
ただ、中途採用の場合は必要かも
大体、SPAを理解せずReactとRailsの組み合わせが流行りだからやろうと思っている人が多そう。
HTML ★★とCSS ★
まずは、HTMLとCSSです!
最初に勉強するならHTMLとCSSだと思っています!
理由は、最初から、Rubyを勉強してもこれが何になるのだろうと感じて飽きてしまうからです。
なので、ブラウザに文字が現れるだけでおぉ!!となりますよね!(無理矢理感ありますが…)
また、CSSを勉強することで簡単なデザインが作れるようになります!
筆者は飽き性なので成果が目に見える方がいいです!なので、コードを変更して、
HTMLで筆者がお勧めする教材は以下になります!
順番に進めてください!
- ドットインストール [webサイトを作れるようになろう]
ドットインストールを行うことで環境構築も同時に学べるのでコスパ最強です!
こちらを行なって、プログラミングの簡単な概要を掴んでください!
こちらは忍者codeさんの無料問題集です!
ここで実際にアウトプットを行います!
何より手を動かすことが大事です!
わからない時はすぐ答えを見てください。
大事なのは、自分の頭にインデックスをたくさん作ることです!暗記は不要で「こんなのあったな!」って思い出すことが大事です!
- SincodeさんのYouTube
こちらを見ながら、LPをハンズオンで行いましょう!
Tailwind CSS ★★
こちらは、CSSフレームワークになります。
なぜ行って欲しいかというと、実務に入る前にだいたい面接でポートフォリオを見せてと言われます。その際に、CSSを1から書くのは相当しんどいです。正直、CSSは慣れが必要で意外と難しいです。なので、簡単にかけるTailwind cssで簡単なLPサイトを作ってください!
以下は、sincodeさんのUdemy講座です!
- 【Tailwindcss3.0】利用者急増中!作って学ぶ爆速で理解したい人向けのTailwindcss完全入門パック
Javascript ★★
-
ドットインストール [webサイトに動きをつけてみよう]
-
SincodeさんのYouTube
-
Javascript Primer
上記は、辞書がわりに使ってください!
Javascriptもやり出したらキリがないので、わからないところや実装したいところがあればその都度Javascript Primerを読んだりしましょう!
Git ★★★
超大事です!これができなければチーム開発は絶対できないといっても過言ではないです!
必ずできるようになってください!
筆者は正直苦手ですがなんとかいまのところは耐えてます…
-
ドットインストール[コマンドラインに慣れよう]
まず、Gitを行う前にこちらの教材で、ターミナルの操作を勉強してください!
-
ドットインストール [Gitを学んでみよう]
-
SincodeさんのYouTube
- GitHub実践入門 ~Pull Requestによる開発の変革 [2,883円]
すみません。こちらは有料になります。大変申し訳ないですが、この本は良書なのでぜひ読んで欲しいです。
Linux ★★
なぜか軽視されがちなLinuxですが、マジで大事です。
ただ、最速で実務に入るのなら深追いはしてはいけません。Linuxは奥が深すぎるので程度の良い範囲でやめないとそれだけで膨大な時間を使ってしまいます。
- Linux標準教科書
まずは上記を読んでください。少し難しいかもしれませんが、この教科書は無料でかつ最低限の内容を網羅的に記載してくれているので最高です。
そして余裕があれば以下のUdemyの教材を行うと良いです!
- もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】
基本的な内容が全て詰め込まれています。筆者はこの教材を作られたひらまつさんのファンです。
Docker ★
Dockerに関しては、これも奥が深いので追いすぎると大変なことになりますが、筆者的にはコマンドを知っていればいいと思っています。理由は、実務でDockerfileなどを書く場面はありません。
筆者の現場ではSREの方が書かれています。
要は、実務で入ったばかりでは、README.mdをみながら環境構築ができるかどうかが大事なので基本的なコマンドをまずは知ることが大事だと考えます。
ただ、おいおい内容を理解して欲しいし、自分でDockerfileを書けないといけないと思ってもいます。
- 仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん[2992円]
SQL ★★とDB設計 ★
SQLに関してはマストですが、DB設計に関しては筆者は後々でいいと思っています。理由は、実務に入っても最初はDB設計などの根幹の部分はほぼタスクを振られないからです。
-
SQL 第2版 ゼロからはじめるデータベース操作 [2068円]
https://www.amazon.co.jp/SQL-第2版-ゼロからはじめるデータベース操作-プログラミング学習シリーズ-ミック/dp/4798144452
この本の作者のミックさんはDB系の本では最強で筆者もミックさんの本は全て持っています。
上記の本が終われば、アウトプットとして、code 忍者の無料問題集をしましょう!
-
忍者code
-
達人に学ぶDB設計徹底指南書: 初級者で終わりたくないあなたへ [2860円]
上記はミックさんのベストセラーです。DB設計に関しては、これ1冊を読み込むことが重要だと思います。
Ruby ★★
やっと、本題のRubyまできましたね!Rubyも果てしなくあるので完璧にすることはほぼ不可能ですが、以下の教材をやることで、実務のソースコードをすんなり読めるレベル感にはあると思います。
- ゼロからわかる Ruby 超入門 (かんたんIT基礎講座) [2728円]
まずは上記の本で簡単に概要を掴んでください。読みやすくわかりやすく書かれています!
そして、以下のkindleのRubyの問題集を解いてください。この二冊の問題集をスラスラ解けるとRailsの理解も早くなってきます!
- 配列、イテレータ、ブロックを理解すれば、Rubyプログラミングの世界が変わる 第1版: Rubyプログラミングの入門書にも最適! Rubyの参考書
そして、大ベストセラーのチェリー本を読みながら、チェリー本の演習問題をといていきましょう!
難しめの本ですが、Rubyに関してはこれだけでいいのでは?と思うぐらい丁寧な説明で書かれています。筆者はチェリー本の作者の伊藤さんの大ファンです。
- プロを目指す人のためのRuby入門[改訂2版] 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plus) [3278円]
おすすめのやり方として、1周目はさらっと読みましょう!そして、わからないところにふせんを貼っておきます。二周目は付箋のところだけを読み、「頭の中にこんなのがあるんだ」とインデックスを残しましょう!
そして、次に、オブジェクト指向の理解を深めましょう!以下の教材は私の中でもブレイクスルーをさせてくれた教材です。OOP(オブジェクト指向)の理解を深めて、Railsの学習の準備をしましょう!
- Rubyでドラクエ風ゲームアプリを作りながら学ぶ!オブジェクト指向開発
ちなみに、Techpitはunlimmitedプランの購入を行い、1ヶ月でまとめて行うのが節約になります。
そのさいに、メモをとりましょう!
ただし、教材の内容をコピーするのは著作権の侵害なのでくれぐれもご注意を!
Ruby on Rails ★★★とRspec ★★★
やっと本題のRailsです。長かったですね!
ここまでくるだけでもすごいです!実は、ここからが本当に楽しいところの始まりだと思ってます!
まずは、Railsを体験してみましょう!
- sincodeさんのYoutube
おそらく「なんだこれ」だと思います。でも、まずは何かを作る体験をして欲しいです!
筆者はプログラミングは作って手を動かしてなんぼ!だと思っています!
なので、まずは、理解してなくても作る喜びを知って欲しいです!
必ず好きになってきます!
そして、流れをしったら、超王道のRailsチュートリアルを行ってください!
正直、1回で理解は無理です。2周ぐらいしながら徐々に解像度を上げていってください!
- Rails tutorial
ここで、Rspecの勉強を挟みましょう!
RspecはRailsのテストコードを書く際によく使います。Rails tutorialはMinitestですが実務ではRspecが多いです!
以下の教材では、Railsのモダンな開発の組み合わせの勉強ができます!
筆者の中でもかなりの成長がみられた教材です!
超おすすめです!
使う教材は以下です!
- 【ハンズオン】Ruby on Rails 7 実践開発入門ガイド!現場レベルまでスキルアップ
こちらは、Zennの本でも読めますが、1000円かかるので、ケチな筆者は著者の方が無料でご自身のブログで書かれているのを見つけたのでそちらで勉強しました!
ちなみにこのブログのMussule codingさんは筆者は大変お世話になってます!
有益な情報を無料で公開していただき、感謝感激です!
こちらの教材でRspecの基本的なコードがかけたら、Rails tutorialのテストコードをRspecで書き換えましょう!
その際、以下のZennの本を読みながら行うと良いと思います!
- RailsチュートリアルのテストをRSpecで書き換える
そして、最後にラスボス教材を紹介します。
- パーフェクト Ruby on Rails 【増補改訂版】
この本でOAuthなどの認証も勉強できるし、Dockerの活用方、moduleの切り分け、Github Actionsも勉強できます!
かなり実務よりの内容なのでこれが理解できればすんなりと実務に入っていけます!
Github Actions ★とデプロイ ★
さいごに、Github Actionsとデプロイ関してですが、中途採用のポートフォリオはAWSを使った方がいいと思いますが、正直インフラを現段階で行うより、Railsのロジック部分をより注力して欲しいと思っています。
理由は、実務に入りてからいきなりCI/CDの構築業務は任されないからです。
なので、パーフェクト Ruby on Rails 【増補改訂版】とRails tutorialのRenderのデプロイ
だけで知っていればいいと思ってます!
ゆくゆくは勉強して方がいいに越したことないですが…
ポートフォリオ ★★★
ポートフォリオに関してはあった方がいいに越したことがないです!
理由は、どれだけコードが書けるのか証明になるからです。
筆者が思うポートフォリオの大事な部分は、自分が作ったポートフォリオ作品を使いたいかです。
例えば、料理が好きなら、インスタグラムの料理版
筋トレが好きなら、筋トレ日記などを作ればいいと思います。
エンジニアはITの力で社会を豊かにしていくものだと思っています。
まずは自分が使いたいサービスや、便利なものをポートフォリオにするのが一番いいと思っています。
最後に
ここまで読んでいただきありがとうございました。
筆者は実務に就くまで、無駄な頃ばかりしてきました。
お金も無駄にしてきました。
なので、最低限今回の教材で筆者は実務には入れると思っています。実務に入ってからも勉強が続くので他の教材はあらためて紹介します。
実務について半年経ちますが、この半年が一番エンジニアとして成長したと感じています。
筆者が強調したいのは以下です。
- 手を動かす。 忍者コードの問題集は本当におすすめです。
- ポートフォリオは使っている技術も大事だが、より大事なのは、ストーリー です。「何を解決して、何がしたくて作ったのか」
- 気がつけば好きになってる!
おそらく、他のエンジニアさんと違う教材を紹介したので、批判の声もあると思いますが無駄なことをし続けた筆者だからこそ、これだけで十分と思う教材です。
紹介したすべての作者様に本当に感謝申し上げます。
質問があれば、XのDMにしてください!
ありがとうございました。