未経験転職する前に知っておきたかったこと、やっておきたかったこと、転職後にやって良かったこと

# この記事について
未経験からエンジニアを目指して学習中の方、エンジニアへ転職するかどうか悩んでいる方、転職先決まって何を勉強したらいいのか悩んでいる方に読んで少しでも参考にしていただけたらと思います。

2021年7月からスタートアップの受託開発事業、オフショア開発事業を行なっている会社にWebエンジニアとして勤務しています。勤務先では、PHP/Laravel, MySQL, AWS, Docker, Gitを利用しています。今後は、Vue.jsにも着手していく予定です。現在のレベル感(経験4ヶ月)としては、APIやバッチ開発であれば何でも来いよ!!!というレベルには個人的に来たんじゃないかと思っていますw
FireBase, Stripe, S3, SES, Zoomといったサービスの利用経験もあります。
その他、社内のテンプレートリポジトリのプロダクトマネージャーを任され、最近はPRのコードレビューを行うようになりました。


# 私の遍歴
2020年3月 都内国立大学院卒業
2020年4月 メーカー技術職として入社
2020年4~10月　あまりにも仕事を教えてもらえず、部署内探し回っても仕事がないため辞めたくなる
2020年10月半ば　よく炎上する某社長が経営するプログラミングスクールの夜間コースを受講する
2021年5月 オリジナルポートフォリオ(Rails, AWS, CircleCI)ができたので、転職活動開始
2021年6月 現在の会社からスカウトを受けて入社を決める
2021年7月 現在の会社に入社

# エンジニアになって良かった？
結論、私はエンジニアになって良かったです。
クライアントと仕様の確認を行い、それをどのようにコードに落とし込んでいくか、設計書の仕様を満たすためにどういったコードを書いていくか、考えるのが楽しくて仕方ないです。その他、可読性の高いコードを追求したり、汎用性の高いサービスクラスを作ったりと、凝り性の自分には非常に合った職業だと感じています。
**論理的に物事を考えるのが好き、できる、プライベートでも勉強していくのが苦じゃない**という人にはエンジニアを目指して損はないと思います。

反面、高単価・自由な働き方という面に憧れて転職を考える人にとっては厳しいと思います。(どちらかと言えば自分もそのクチですがw)
未経験から入社して数ヶ月経っても設計書の仕様が理解できない、技術的なことの理解ができないという人も中にはいらっしゃいます。プライベートで技術的な勉強をする、論理的思考力を身につける必要がありますし、理系向きの職業であると思います。一朝一夕で誰でも簡単にできたり、単価が上がったりはしないということだけは理解して未経験転職するのか考えていただきたいですね。

# 未経験時代とこの時に勉強しておきたかったこと
某スクールの夜間コース（6ヶ月）で学習しました。大体カリキュラムは4ヶ月程度で終わらし、残り2ヶ月はオリジナルポートフォリオの作成に打ち込んでいました。
正直なところ、オリジナルポートフォリオ作成のサポートはなく、カリキュラムのレベルも独学で可能なレベルでしたので、毎月の高い請求に非常に悩んでいます。
職務経歴書の添削はスクールよりも圧倒的に<a href="https://tenshoku-quest.net/tenkue/?id=1181">転職クエスト</a>の方が良かったです。スカウトをいただけたのは間違いなく、転職クエストで提供される職務経歴書の添削とWantedlyの書き方テンプレートのおかげです。
https://tenshoku-quest.net/tenkue/?id=1181
スクールを選ぶなら、無理のない金額でオリジナルポートフォリオの作成をサポートをしてくれるところと職務経歴書やWantelyのプロフィールを満足するまで添削してくれるところを選んだ方がいいですね、間違いなく。

また、**未経験時代にある程度、SQL, Git, Dockerに慣れていた方がスムーズに実務に入れます。**
私の入社時は**SQL(SELECT, INSERT, UPDATE, DELETE)は書けないし、GitはGitHub for Desktopしか使ったことないし、Dockerは便利なものらしい、という悲惨なレベル**でした。

1. SQLは勤務中はクエリの実行ログとクエリビルダを照らし合わせて確認し、プライベートでは以下の教材で勉強していました。
<a href="https://www.udemy.com/course/backend-tutorial/">【PHP, MYSQL, Apache】ガチで学びたい人のためのWEB開発の基礎(バックエンド編)</a>

2. Gitはこちらで学習しました。私は一つもgitコマンドがわからず入社したので、gitがどういうものか、少なくとも、
 
```Terminal:Console
git status
git diff
git branch
git checkout ~
git add ~
git commit ~
git push ~
git pull ~
```
ぐらいは覚えておいた方がいいと思います。
<a href="https://www.udemy.com/course/unscared_git/">Git： もう怖くないGit！チーム開発で必要なGitを完全マスター</a>
↑<a href="https://www.techpit.jp/">Techpit</a>にも同様の講座があるみたいですね。

3. Dockerはこちらで学習致しましたが、すでに提供が終了されているサービスもありますので、最新のものを選択されると良いでしょう。
Dockerがどういうものか、コンテナの立ち上げ方(```docker-compose up```)やコンテナの停止(```docker-compose stop```)といったコマンドは覚えておくと吉です。
<a href="https://www.udemy.com/course/docker-k/">ゼロからはじめる Dockerによるアプリケーション実行環境構築</a>

# 入社後
私は内定を頂いてから入社するまで2週間程度の時間しかなく、事前にPHPの学習を少しやった程度で働き始めました。なので入社時にLaravelは一つも知らない状態でした。最初の１ヶ月は辛かったことを覚えています。
この時は、**ひたすらLaravelの<a href="https://readouble.com/laravel/6.x/ja/releases.html">ドキュメント</a>を通勤中に読んで復習、プライベートでは<a href="https://www.amazon.co.jp/PHP%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFLaravel%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798060992/ref=sr_1_4?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=laravel&qid=1636865032&sr=8-4">PHPフレームワークLaravel入門 第2版</a>で学習**していました。
間違いなく、**このLaravelドキュメントを徹底して読んでいたこと**が**実務数ヶ月で一人でAPI開発が行える**ようになることを支えていたと思います。
その他、通勤中に前項で紹介したGit, Dockerを勉強していました。
今では、Laravelのドキュメントで目を通していない機能はないぐらいです。
基本的に公式ドキュメントが一番の学習教材だと思っています。QiitaやZennといった技術ブログもまとまっていて便利ではありますが、どうしても再現性が欠けている記事があったり、前提があるはずなのに抜けていたりするので、公式ドキュメントに勝る情報はないです。

## 最後に
実務に入ってから最初の数ヶ月は間違いなく苦労します。この数ヶ月を如何にして乗り越えるかは、あなたの努力次第です。辛い期間を割り切って努力できる人がより良いエンジニアライフを送れるのではないかと思います。
実務数ヶ月の小童が偉そうに語って申し訳ありませんでした。最後まで、読んでくださった方、ありがとうございます。