お世話になっております。駆け出しエンジニアの松岡です。
エンジニアになるためにやった勉強についてまとめます。
駆け出し中によく聞く「実務未経験から自社開発企業のWeb系エンジニアに転職する方法」のことです。
まあ本来は好きでパソコンを触ってたら、いつの間にか上達して、たまたまエンジニアや創業者になりましたというのが自然だと思いますが、そうではない人向けです。
あと勉強時間がガッツリあるなら42Tokyoがおすすめ。
かかる時間とレベル感
私の場合、1年間、平日の仕事終わりに3時間、休日は10時間ほど学習し、Rails、React、AWS、Terraform、Github Actions等を用いてポートフォリオを作成した後、転職しました。
まずは業界を知る
私が一番最初にやったのは、勝又健太さんという現役エンジニアのYouTube動画やnoteを見ることでした。
これでIT業界のことや、技術、ポートフォリオ、転職活動等について一通り理解できます。
ちなみに駆け出しエンジニアは、怪しいプログラミングスクールや転職エージェント、企業等にとって絶好のカモです(辛い)。
もちろん良いスクールやエージェント、企業等がほとんどだと思いますが、ポジショントークには十分注意する必要があります。
その点、勝又さんは「独学で転職できるっしょ」というスタンスなので、多分信用できます。オンラインサロンをやっているみたいですが、入らなくてもエンジニアになれます。
基礎学習(2か月)
基礎学習はスピード勝負。あんまり理解できなくても、後から繋がってくるので、とにかく先に進むのが大事です。
ノートにまとめるとかも良くないと思います。
コンピューターサイエンス基礎(4日)
プログラミング基礎(3週間)
- https://prog-8.com/courses/commandline
- https://prog-8.com/courses/html
- https://prog-8.com/courses/es6
- https://prog-8.com/courses/ruby
- https://prog-8.com/courses/sql
Git & GitHub基礎(1日)
Railsチュートリアル(1か月)
Webアプリ開発基礎(1か月)
ポートフォリオを作る前に、2つほどWebアプリを開発しておくと、その後がスムーズだと思います。
ポートフォリオ作成(6か月)
未経験からWeb系エンジニアに転職するためには、レベルの高いポートフォリオを作り切って、自走力やポテンシャル等をしっかりアピールする必要がある、らしいです。
実際、自分の面接時の記録を見たら(入社後に見れたw)、ポートフォリオの使用技術と学習速度が評価ポイントだったので、ポートフォリオはマジで大事でござる。
事前準備
以下のような動画を見てイメージを掴む。
アイデア出し
本当は最初から作りたいものがあって、その手段として勉強をするのが自然ですが、そうではない人向けです。ちなみに私もこのパターン。
以下を見てアイデアを出しましょう。
READMEの作成
アプリの説明書みたいなもの。正直後回しで大丈夫。アプリができた後に綺麗に書き直す。
画面遷移図の作成
これは無くても良い。ノートに手書きとかで良いと思う。
ちゃんとやりたいなら以下を使う。
- https://helpx.adobe.com/jp/xd/how-to/beginners-tutorial-1.html
- https://developer.apple.com/jp/design/resources/
ER図の作成
これはデータベースとその関係性を表した図。ノートに手書きしておいて、最後に綺麗に書き直せば良いと思う。
開発環境構築
これがマジでしんどい。
基本的には、Webアプリ開発基礎で作った、RailsとReactのアプリをベースに作っていくのがおすすめ。
Dockerで開発環境を作る場合はその勉強もする。
その他、開発環境構築で役に立ちそうなリンクは以下のとおり。
- https://aiacademy.jp/media/?p=2817
- https://blog.cloud-acct.com/posts/u-homebrew-git-install/
- https://zenn.dev/ryuu/articles/use-anyversions
- https://qiita.com/tkmd35/items/9612c03dc60b1c516969
開発
とにかくエラーとの戦い。学んできたことをフルに生かす。
ひたすらググったり、今ならChatGPTなどに聞きながら開発を進める。
以下が役に立つかも。
https://tech.drecom.co.jp/ac2021-rails-api-only-setup-session-store-redis/
https://dev.classmethod.jp/articles/s3-cloudfront-spa-angular-403-access-denied/
https://tech.layerx.co.jp/entry/improve-iac-development-with-terraform-import
実際にブラウザなどから誰でも見れるようにしておくのがポイント。
本当に使ってもらえるようなものができたら最高ですが、そうじゃくても技術や学習スピードなどを見てもらえます。
そもそもそれができるなら起業したほうが良い。
プラスアルファ
以下ができたらかなり評価されそうな気がする。就職率アップ!
- Terraformでインフラ(AWS)をコード化
- Github ActionsでCI/CDパイプラインを構築
- TypeScriptに対応させる
- バックエンドをGo言語にする
- テストをちゃんと書く