現役エンジニアが考える「エンジニア転職の学習ロードマップ」(後編)

ゆーたろー

こんにちは、ゆーたろーです。

HRTechベンチャーのエンジニアです。
TypeScript/Vue.js(Nuxt.js)/React/Next.js/PHP/LaravelでWebアプリケーションの開発を行っています。

・プログラミングスクールメンター
・神戸で勉強会「つながる勉強会」を運営
・神戸メインのグルメインスタ運営

など色々やっています。1児のパパです。

この記事は僕が2020年10月頃にnoteに投稿した“実務経験約6ヶ月の現役エンジニアが、実務経験を踏まえて考える「エンジニア転職の学習ロードマップ」”のブラッシュアップ版です。

導入編・前編では以下のことを書きました。

  • この記事を書いた理由
  • この記事を読んでほしい方
  • この”現役エンジニアが考える「エンジニア転職のための最適学習ロードマップ」”シリーズでわかること
  • 注意点
  • 現役エンジニアが感じた実務で絶対に必要な知識・スキル

導入編・前編をまだ読んでいない方は先に読んでいただけたら嬉しいですし、より伝わると思います。

特に前編は必ず読んでほしいです!

最後の後編では

現役エンジニアが考える”エンジニア転職の学習ロードマップ”

をまとめます。

僕がエンジニアの仕事はおろか、エンジニアに必要な知識やスキルを全然わかっていないままがむしゃらに勉強していた当時、喉から手が出るほど欲しかった内容です。

ゆーたろー

この記事を書きながら「ああ…僕の転職までの学習は間違えてたことばっかりだったあ…」と何度も思っていますw

ぜひ学習の参考にしてください!

この記事に書いていることは1人のエンジニアが感じたことです。申し訳ありませんが世界標準ではありませんm(__)m

というわけで早速説明していきます。

目次

プログラミング学習をする上で重要な考え方・心掛け

学習ロードマップの説明の前に、エンジニアへのジョブチェンジを目指してこれからプログラミング学習をする方、現在プログラミング学習中の方には以下の考え方や心掛けを持っていただきたいです。(これはただの願望です)

  • 必ず毎日学習する
  • 趣味の時間を極限まで削って学習時間を確保する
  • インプットは最低限にしてなるべく手を動かす
  • 辛くなりそうなら学習段階では周りと自分を比べないようにする

必ず毎日学習する

短い時間でも良いので毎日勉強しましょう。

Twitterでは「毎日15分でもいいから学習しましょう!」という発信を見ますが個人的には全然賛同できなくて、「本気でジョブチェンジしたいなら1日最低1時間は勉強しようよ」と思っていますw


まあそれは学習時間の話なので置いといて、ここで伝えたいのはプログラミング学習を継続して生活の一部にすること(習慣化すること)が重要です。

歳を取れば取るほど、新しいことにチャレンジすると自分の理解のできなさから感じるストレスが大きく嫌になってしまうものです。

そして始めたはいいものの、1日サボるとサボり癖がついてしまいます。そして自然にフェードアウト。

そうなってしまうのはエンジニアになりたいという思いがその程度だったってことになるので仕方がないっちゃ仕方がないのですが、習慣になるまでは頑張って毎日継続していきましょう。

ゆーたろー

まあ熱量の高い人は当然のように毎日学習するよね、というお話です。

趣味の時間を極限まで削って学習時間を確保する

エンジニアに限らずですが全くの異業種へのジョブチェンジは簡単なことではありません。

極端かもしれませんが、例えるなら“プロ野球チームに自主練だけした人が加入する”みたいな感じです。

こう例えるとハードルがわかると思います。

もちろんエンジニア転職はプロ野球選手になることよりは数倍楽ですが、それ相応の量の努力が必要です。

趣味に時間を使っている場合ではありません。

僕は中学から続けていたバスケを完全に捨てましたね。(今も全くしていません)

個人的には

仕事と並行して平日1〜2時間、休日は8〜12時間の勉強を最低3ヶ月は毎日継続する

が理想です。

ゆーたろー

余談ですが、エンジニア転職のために今の仕事を辞めてプログラミング学習に専念する!とかいう考えは絶対にやめた方が良いです。

プログラミング学習は仕事と並行して進めることを強くオススメします。

インプットは最低限にしてなるべく手を動かす

プログラミング学習をする上でかなり重要ですし、初学者が意外と間違えがちです。

何を間違えがち(勘違いしがち)かというと

  • 教材を買ったら全部理解しないといけない
  • 学んだことは全て完璧に理解しないといけない

と思い込んでいることです。

ゆーたろー

断言します。そんなことは全くありませんし、プログラミングに暗記は不要です。

僕もそうですし全ての現役エンジニアが毎日何かしらをググりながら仕事をしています。

ゆーたろー

僕はPHPのswitch文はどういうケースで使うかはわかるのですが書き方はググらないとわかりませんw

概要を理解したらすぐに手を動かしていくこと(アウトプット)が重要です。

インプットだけでは永遠に力を付きませんよ。

辛くなりそうなら学習段階では周りと自分を比べないようにする

まず、始めにハッキリ言っておきたいなと思うことは

エンジニア転職は自分との闘い、なんてことはありません。

Twitterではよく

安心してください。プログラミング学習は自分との闘いなので他人と比べる必要はありません。自分のペースで頑張りましょう。(最後にだいたいニコっとした絵文字)

という感じで駆け出しエンジニアを気持ちよくさせる発信させる発信をよく見ますが、果たしてそうでしょうか?

僕は厳密には違うと思っています。
(正しくは最近、違うなと感じた)

ですが、周りと比べることでモチベーションというか気持ちが落ちてしまうくらいなら一旦自分の成長だけを見ながら学習を進めることをオススメします。

まずは今日の自分が昨日より少しでも成長していることを感じて、自分を褒める。

それによってまた明日も頑張れる。

まずはこの流れで毎日学習を進めるのが良いと思います。

ゆーたろー

まあ最終的には他人との比較になっちゃうんですけどねw

現役エンジニアが考える”エンジニア転職の学習ロードマップ

ちょっと前置きが長くなってしまいましたが、本題の学習ロードマップに移ります。

まず初めに全体のロードマップをまとめます。

STEP
学習言語の決定
  • どの分野のエンジニアになりたいかを決める
  • 求人調査
STEP
全体のスケジュール決め
  • いつエンジニアとして働き始めたいのかを明確にする
STEP
プログラミング学習用のTwitterアカウント開設
  • 自己肯定感上げる用
  • 転職活動用
STEP
Progateで必要なコースを1周だけする
  • ドットインストールでもOK
  • 必要以上に時間をかけない
STEP
教材やスクールなどを活用して体系的に学習する
  • Udemy
  • Techpit
  • スクール
STEP
アウトプット
  • 共同開発経験を積んでGit操作を習得
  • ポートフォリオ作成
  • Qiita、Zenn、ブログ等に技術記事を投稿
  • GitHubへのプッシュ

人によって全体的なスケジュールが異なるのでそれぞれのフェーズに期間は設けていません。

ご自身の無理のない範囲で進めていきましょう。

個人的な意見としては仕事と並行しても独身かつ学習効率の良い方であれば3〜4ヶ月程度で完了できるかなと思います。

学習言語の決定

まずは自分がどのプログラミング言語を学習するのかを決めましょう。

ここを間違えると自分の目的からかなり遠ざかります。

学習言語を決めるためにはどの分野のエンジニアになりたいかをまずは明確にする必要があります。

ざっくり分けると以下のような分類になるかと思います。

エンジニア(大分類)エンジニア(小分類)主な学習言語
Webアプリケーション開発フロントエンドエンジニアJavaScript/TypeScript
バックエンドエンジニアRuby/PHP/Java/Python…
モバイルアプリケーション開発iOSSwift
AndroidKotlin
両方Flutter

他にもエンジニアの分類はあります。インフラエンジニアもある程度ボリューム層ですが、知見がないので省いていますm(__)m

僕はバックエンドエンジニアとしての転職を目指してPHPを学習し、業務でもPHPを使っています。

ここまでのエンジニアのキャリアはバックエンド領域が長いのでバックエンドエンジニアを例にすると、求人媒体で調べてみるとわかりますが、地域によってオススメの学習言語はちょっと違います。

  • 東京の企業への転職を目指す・・・Ruby or PHP or Java
  • 東京以外(地方都市含む)への転職を目指す・・・PHP or Java

個人的にはこうかなと思います。

実務未経験の場合、企業はその方のポテンシャルを重視するので地方でRubyを学習していたら転職できない、なんてことはありません。
また、実務未経験の方がどれだけ頑張って学習しても実務レベルには届かないのも事実です。
ただ、どうせならその企業で使っている言語およびフレームワークを一生懸命学習した方が見られ方としてもアピールのやりやすさとしても良いかと。

あと、異業種からバックエンドエンジニアにジョブチェンジする場合の言語選定としてPyhtonやGoを選ぶのは求人数の少なさから本当にオススメしません。

「書いてて楽しい言語をするのを1番」という声もたまに見ますし、それは同意です。が、現実的に物事を捉えることも大事です。

というわけで僕はRuby、PHP、Javaの中から選ぶのが無難だと思います。

ちなみに上記3つの中でもJavaは静的型付言語と呼ばれ、Ruby、PHPより難易度は高いです。
なのでRuby or PHPが安パイです。

ここまで色々書いてきましたが、1番確実なのはあなたが現在お住まいの地域の求人を調べて企業がどの言語を使って開発をしているのかを把握することです。

エンジニア転職では、WantedlyGreenあたりが鉄板かと思いますので、ぜひ一度調べてみてください。

ちなみにWebアプリ開発エンジニアを目指す場合、プログラミング言語の学習の次のフェーズでは多く方がのフレームワークを学習すると思いますが、以下のフレームワークを学習すれば問題ないです。

プログラミング言語フレームワーク
JavaScript/TypeScriptVue.js/Nuxt.js or React/Next.js
RubyRuby on Rails
PHPLaravel
JavaSpring Boot

全体のスケジュール決め

どの言語(とフレームワーク)を学習するか決めたら次は全体のスケジュールを立てます。

この工程はプログラミングの学習に直接的な影響はありませんが、モチベーションの維持に役立ちます。

スケジュール決めで最も重要なのはケツを決めることです。

  • いつまでにはエンジニアへの転職を決めたいのか
  • そのためにはいつまでに転職活動をスタートしなければならないのか
  • そのためにはいつまでにポートフォリオを作成しなければならないのか

このようにゴールから逆算してフェーズ毎の締切を自分の中で決めます。

これを必ず守るように学習を進めていくことで“締切効果”も発揮され、モチベーションが高いまま学習を継続しやすいです。

僕は実務に勝る経験はない!と思っているのでなるべく早く転職活動をスタートさせるのをオススメしていますが、これはそれぞれの家庭状況や地頭の良さなどを踏まえ自由に決めたら良いと思います。

ただし、1年後とかはちょっと長いかなと思います…

プログラミング学習用のTwitterアカウント開設

これは必須ではないですが、やらないよりやった方が良い感じです。

Twitterアカウントを開設してやることは毎日の学習報告ツイートです。

これの大きな目的はスケジュール決めと同じく、モチベーションの維持です。

プログラミング学習は挫折率が高く、9割の人が途中でやめると言われています。

挫折を防ぐためにはエンジニアになりたいという気持ちの強さはが大前提として必要ですが、もう1つ挙げるとしたら自己肯定感を上げるのが有効です。

ゆーたろー

自分、めっっちゃ頑張ってるやんけ!すご!!毎日勉強してる!しかもこんなに勉強している!エライ!天才!よしこれからも頑張っちゃお!!!

こんな感じです。

毎日の学習報告ツイートは以下の内容があれば十分です。

  • 連続学習日数
  • 今日の勉強時間
  • これまでの合計の勉強時間
  • 学習内容

毎日文字に記録することで自分の努力が定量的にわかるので、割と効果を感じました。

ゆーたろー

うわ…おれ仕事で残業してるのに3ヶ月間平日も休日も毎日勉強続けてるし、1ヶ月間で○時間も勉強してるのか…やば。天才。

と思っていました。当時のことは覚えていませんがめっちゃ自分を褒めていたと思います(笑)

余談ですが、数年前にちょっと流行った実務未経験の方のTwitter転職には全く期待しない方が良いです。実務未経験の方がやるとしたらコネ転職がオススメです(笑)

Progateで必要なコースを1周だけする

Progateに関しては説明は不要ですよね。
ドットインストールでもOKです)

まずは関係するコースを1周だけやりましょう。

ひとまずやっておきたいのは以下のコースです。(Webアプリケーション開発の場合)

  • HTML & CSS
  • JavaScript
  • Ruby or PHP or Java
  • SQL
  • Command Line
  • Git
  • Ruby on Rails5(Rubyの方のみ)

Gitに関しては前編でご紹介した動画教材に取り組む場合はProgateでしなくても良いと思います。

Git: もう怖くないGit!チーム開発で必要なGitを完全マスター

僕はドットインストールではなくProgateを使っていたのでそっちベースで書きますが、注意点は2つです。

  • 有料会員になりましょう。980円の投資は渋ったらダメです。
  • 絶対に1周だけにしましょう。(※Ruby on Rails5コースは2周くらいしても良いかもです)
  • 理解度は50%以下で問題ないです。
https://twitter.com/shimotaroo/status/1313607467021094912?s=20
ゆーたろー

あと、道場コースもしなくて良いと思っています。僕はしたことないです。

このフェーズでは内容は頑張って内容を理解する必要はありません。

こんな感じなんだ〜、くらいでOKです。

ここはあまり時間をかけずテンポよく進んでいきましょう!

教材やスクールなどを活用して体系的に学習する

ここからが本番のインプットです。

教材やスクールを活用して効率よく学習を進めていきましょう。

教材や書籍

教材の場合はUdemyTechpit、書籍がオススメです。

僕は今でも業務で新しい言語やフレームを触ることがわかったらキャッチアップのために上記サービスや書籍を使っています。

それぞれのサービスの特徴はこちらです。

サービス名教材の形式価格
Udemy動画教材セール時であれば1,000〜2,000円程度
Techpitテキスト教材2,000〜3,000円程度。
月額2,980円で受講し放題のプランもある
書籍書籍1,000〜5,000円程度

動画教材かテキスト教材かどうかはご自身の好みや講座の内容などで自由に決めてもらえたら良いかなと思います。

肌感ですが、Udemyは基本〜応用までを包括した講座が多く、Techpitはハンズオンで何かを開発しながら学習を進める講座が多いです。

なので新しい言語やフレームワークを勉強する場合、

Udemyで広く浅くインプット→Techpitで気になるものがあればやってみる

こういう流れは結構良いと思います。
(値段も5,000円程度しかかかりませんからね)

書籍は必要に応じて買い足していくのが良いです。

参考までにLaravelの学習でオススメの教材をまとめています。

プログラミングスクール

プログラミングスクールの活用も良いスクールを選べばとても有効です。

プログラミングスクールの大きなデメリットは値段です。

某大手プログラミングスクールだと平気で60万円以上かかりますが、個人的には流石に高すぎると思うのでそこまでお金をかける必要はありません。

探せば15万〜30万円程で良質なスクールもあります。(後ほど軽くご紹介します)

プログラミングスクールを活用するメリットは以下だと考えます。

  • 学習するためのレールができており迷わず学習を進めることができる
  • わからないことをいつでも質問できる
  • 共に頑張る仲間がいるからモチベーション高く学習できる
  • スクールによっては共同開発経験ができたり、ポートフォリオ作成支援がある

上記を読んで、それでも15万円以上払う価値がない、勇気がない…という方は無理にスクールに入る必要はないです。

中でも共同開発経験ができたり、ポートフォリオ作成支援があるのはスクールの大きな強みかと思います。

“わからないことを質問できる”に関してはMENTAというサービスでメンターさんと契約すれば比較的安価で満たせます。

逆に下記のようなスクールは避けた方が良いと思います。

  • 50万円以上かかる
  • カリキュラム以外の質問が聞けない
  • スクールのメンターが現役エンジニアではない

スクール選びの参考にしていただけたらと思います。

僕がわかる範囲でオススメのスクールを3つご紹介させていただきます。

やんばるエキスパート

ゆーたろー

ポジショントークになってしまい恐縮ですが、僕がメンターを担当させていただいているスクールです。

RubyもしくはPHPを学習されている or 学習しようとしていてスクール選びに迷っている方は以下のリンクからぜひ一度どんなスクールなのかを見て欲しいですね。

僕が今エンジニア目指してプログラミング学習を始めるなら極めて高い確率でやんばるエキスパートを選びます。

ここまで言う理由はこちらの記事にがっつり書いていますのでよかったらこれも読んでみてください。

以下2つはTwitterで評判の良いスクールです。僕は受講したことがありませんのでリンクだけ載せておきます。
もし気になった方は覗いてみると良いかと思います。(内情を知らないのでオススメするつもりは全くないですw)

RUNTEQ

Raise Tech

教材だけで学習を進めるのか、スクールを活用するのか、教材とスクールを併用するのか、人それぞれなのでご自身の環境を踏まえて最善の選択をしていただければと思います!

アウトプット

教材やスクールで色々な知識やスキルをインプットしたらアウトプットです。

スクールによってはアウトプットまで包括していてインプット→アウトプット→インプットの良いスパイラルで学習が行うことができます。

こういう効率の良い学習ができるのもスクールもメリットです。

アウトプットについては少し長くなりますがいくつかのパートに分けてまとめます。

アウトプットとは?

アウトプットと一言で言っても色々なアウトプットがあります。
(この記事では結構広い意味で使っています)

  • オリジナルアプリケーション開発
  • Qiita、Zenn、ブログ等への技術記事執筆
  • GitHubへの定期的なpush(=草を生やす)
  • LT会への登壇
  • 勉強会主催

これらは僕的には全て立派なアウトプットです。

転職活動で少しでも役に立ちそうなことはアウトプット=成果物だと思っています。

この中でも1番ベタなのはやはりオリジナルアプリケーション、いわゆるポートフォリオ作成です。

ポートフォリオ作成を行う場合の以下が大まかな流れになります。

  1. ポートフォリオを作る
  2. 開発期間中は毎日Twitterにて学習報告ツイート、GitHubになるべく毎日pushする
  3. ポートフォリオ作成中に解決したエラーはQiita、Zenn、ブログ等に執筆する
  4. ポートフォリオが完成したらGitHubリポジトリのREADME.mdを充実させる
  5. ポートフォリオが完成したらQiitaにポートフォリオ解説記事を執筆します。
  6. 余裕があればLTに登壇したり、勉強会を主催する

やることは結構多いですが、実務未経験でのジョブチェンジは簡単ではないのでなるべくアピール材料は多く持っておくのが良いです。

ゆーたろー

できればアウトプットフェーズで共同開発のGit操作も併せて学んでおきたいですね。

ポートフォリオの内容はどんなものが良いのか?

ポートフォリオを作成する際の駆け出しエンジニアのお悩みポイントは

どんなテーマ・内容のアプリケーションを作れば良いかわからない、もしくは作りたいものがない

です。

個人的には以下のようなもので十分かと思います。

  • 自分の趣味に関するもの
  • 家族や親戚や友人など、身近な人の悩みを解決できるもの

何もTwitterやFacebookのように世界でえげつない量の人が使っているサービスを作る必要は少しもありません。

ゆーたろー

実際に開発できたらめちゃくちゃ評価されるというか…一瞬で転職活動なんて終わるんじゃないでしょうかw

ちなみに以下のようなものは企業からの評価が悪いのでやめたほうが良いです。

  • Twitterクローン、メルカリクローン
  • そもそもポートフォリオなし

ポートフォリオの要否に関しては賛否ありますが、大衆に向けて発信するこの記事では「要」とさせていただきます。僕の受講生でオリジナルポートフォリオなしで複数内定(3社以上)獲得された猛者がいるのですが珍しい方だと思います。

僕個人としては

ハイスペック人材ならポートフォリオなしでも闘える可能性がはあるが、多くの方はポートフォリオを作成するのが無難

という考えです。

ポートフォリオのレベル感は?

ポートフォリオをどのレベルまで作り込めば良いのか?

これも結構駆け出しエンジニアさんの中での大きな悩みポイントかと思います。

この記事の導入編で

某テック系YouTuberの発信内容を鵜呑みにしてしまっている人が多そうだから

https://yutaro-blog.net/2021/07/23/programming-loadmap-1/

と書きましたが、この件について僕の(独断と偏見による)見解をまとめておこうと思います。

まず、結論はこちらです。

基本的にCI/CD、Terraform、SPAなど難易度の高い技術を盛り込む必要はない。
ポートフォリオでの技術アピール以外にもアピールできる材料があればあるほど、強ければ強いほど、ポートフォリオに要求されるレベルは低くなると考えて問題ない。

あくまで僕個人の考えですm(__)m

ポートフォリオでの技術アピール以外にもアピールできる材料”としては例として以下の項目があります。

  • 学歴
  • 職歴
  • 現職(前職)での経験
  • コミュニケーション能力
  • 技術記事の執筆
  • LT登壇経験や勉強会主催経験
  • その他の活動(YouTube、ブログなど)

企業にもよりますが比較的多くの割合で、実務未経験の場合、学歴を含めたこれまでのキャリアや人となりからポテンシャルを判断することになります。

そこでまず初めに見られるのが学歴職歴です。

学歴や職歴辺りはまた別の記事にまとめようと思います。

あと、仮にバックエンドエンジニア志望でRuby on RailsやLaravelを学習されて転職成功した場合はフロントエンド、インフラ領域の業務よりまずはバックエンド領域の業務の方が多く担当することになります。

高い確率で”頑張って導入した難易度の高い技術”は業務で使わないケースはザラにあるので、それなら業務で使う可能性が極めて高い”メインの業務で使う技術”の深い機能を導入したポートフォリオの方が努力のコスパも良いし、企業側としてもありがたいんじゃないかと思っています。

バックエンドならバックエンド領域の技術、フロントエンドならフロントエンド領域の技術、インフラエンジニアならインフラ領域の技術の学習に専念するのがコスパ良い気がしますし、僕は今駆け出しエンジニアに戻ったらそうします。

テック系YouTuberの発信は別間違ったことは言われていませんが、駆け出しエンジニアの全員が全員それに当てはまるわけではないのは認識いただきたいなと思います。

ゆーたろー

ご本人もそれは認識の上で発信されていると思いますし、僕は否定するつもりはありませんのでご理解ください。(発信内容は有益なものが多いですよ)

作成したポートフォリオは転職活動中は必ずインターネットに公開(デプロイ)して、企業の方が見れる状態にしておきましょう。デプロイ先はHeroku、AWSどちらでも良いと思います。

最後に

導入編、前編、後編に渡ってまとめた”現役エンジニアが考える「エンジニア転職の学習ロードマップ」”もこれで終わりです。

あくまで個人の経験から考えたものですが、駆け出しエンジニアの学習の参考になれば嬉しいです。

この記事も含めて現在はブログやSNSにプログラミング関連の情報が溢れています。ご自身の目で、時には信頼できる人に相談して自分に必要な情報は取り入れる、不要もしくは信用できない情報は切り捨てることのできる情報の見極めが重要です。

ゆーたろー

この記事から「良いな!」と思った情報はどんどん取り入れてください。
最後まで読んでいただきありがとうございました!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

この記事を書いた人

上場グループのHRTechベンチャーで働くWebエンジニアです。
新卒で入社した大手重工メーカを4年で退職し、2020年4月からエンジニアとキャリアチェンジしました。

仕事ではTypeScript/Vue.js(Nuxt.js)/Laravelを主に使っています。

プログラミングスクールの講師やデザイン関連のお仕事もさせてもらっています。

神戸で「つながる勉強会」という勉強会を月1で運営しています。
https://tsunagaru-kobe.connpass.com/

お仕事のご依頼、ご相談はお問い合わせページもしくはTwitterのDMからお願いします。

コメント

コメントする

目次
閉じる