こんにちは。Web系エンジニアのカズです。
未経験からエンジニア転職し、現在エンジニア歴は7年になります。
バックエンドとフロントエンドの業務に加えて、プロジェクト全体の管理を担当しています。
今回は「未経験から稼げるWeb系エンジニアになるためのロードマップ」を参考までに作成しました。
ここで言うエンジニアのロードマップイメージは、まずWeb系プログラマーとして転職し、その後キャリアアップしていくことを想定しています。
私の経験談と現在のWeb業界の動向を元に、具体的なロードマップを作成したので良ければ参考にしてください。
本記事の内容:未経験から稼げるWeb系エンジニアになるためのロードマップ
ステップ1 : 目標を決める
ステップ2 : 学習時間を確保する
ステップ3 : エンジニア転職するための学習をする
ステップ4 : 学習方法を決める
ステップ5 : 転職活動をする
ステップ6 : 実務に慣れる
ステップ7 : エンジニア転職に成功しても勉強を続ける
ステップ8 : エンジニアとしてのキャリアプランを考える
ステップ9 : 稼げるエンジニアの働き方をする
ステップ1 : 目標を決める
まず、自分がどのくらい稼げるエンジニアになりたいのか。
何年かけて達成したいのかの目標を決めます。
①目標金額を決める
②何年で達成するかを決める
①目標金額を決める
エンジニアはスキル次第では、月収100万円以上稼ぐことができます。
また働き方もフリーランス、フルリモートなど選択することが出来るようになります。
おおよそでも目標金額を決めましょう。
②何年で達成するかを決める
稼げるエンジニアになるには、それだけのスキルを付ける必要があります。
自分が何年で稼げるスキルを身に付けていけるかを、考えてみましょう。
ステップ2 : 学習時間を確保する
稼げるエンジニアを目標としていますが、まずエンジニア転職することも決して簡単ではありません。
エンジニア転職に必要な学習時間はどのくらいなのでしょうか。
エンジニア転職には1000時間かかると言われていますが、実際には環境や適性によるでしょう。
理解しておきたい点は、しっかりと準備して転職する必要があるということです。
目安ですが半年程の勉強期間を見積もって、学習していくと良いでしょう。
ステップ3 : エンジニア転職するための学習をする
エンジニア転職するための学習は何が必要なのか。下記の見出しに沿って解説します。
①言語・フレームワークを決める
②フロントエンドエンジニア志望の学習内容とは?
③バックエンドエンジニア志望の学習内容とは?
④必要なスキルまとめ
⑤実務レベルで通用するために必要な学習内容とは?
⑥プログラミング上達のコツとは?
①言語・フレームワークを決める
まず、どの言語を学習するかを決めます。
「フロントエンドエンジニア志望」または「バックエンドエンジニア志望」なのかによって最初に学ぶ言語は変わってきます。

フロントエンドって簡単に言うと、どんなことをするんですか?

簡単に言うと、Webサイトやアプリケーション上の「ユーザーが見える部分」のページをコーディングします。

バックエンドって簡単に言うと、どんなことをするんですか?

簡単に言うと、サーバーサイドやデータベースのシステムなど「ユーザーに見えない」部分のコーディングや設計をします。
フロントエンドの主な言語
・HTML
・CSS
・javascript
・jQuery
・PHP
・Ruby
・Java
・C
言語の次にフレームワークを決めましょう。
フレームワークはどの言語を選んだかによって決定します。

フレームワークって何ですか?

アプリケーション開発において、よく利用される機能をあらかじめ備えた枠組みのことです。1からすべて自分でプログラミングしなくても、フレームワークで基本的なプログラミングがされていて、そこに修正や追加をするというイメージです。

フレームワークは必ず学習しないといけないんですか?

言語のみでも仕事を見つけることは可能ですが、言語とフレームワークをセットで習得していると多くの案件を獲得しやすくなります。
フレームワークはあくまで、言語で作られているので言語の理解があれば習得はそこまで難しくはありません。
主流なフレームワーク
・Laravel (PHP言語で作られたフレームワーク)
・Rails (Ruby言語で作られたフレームワーク)
・React.js (javascript言語で作られたフレームワーク)
・Vue.js (javascript言語で作られたフレームワーク)
②フロントエンドエンジニア志望の学習内容
フロントエンドエンジニア志望の学習するべき内容
・HTML
・CSS
・javascript または jQuery
・React.js または Vue.js
③バックエンドエンジニア志望の学習内容
バックエンドエンジニア志望の学習するべき内容
・HTML
・CSS
・javascript または jQuery
・PHP または Ruby または Java
・Laravel または Rails (言語がJavaの場合は不要)

バックエンドエンジニアでもフロントエンドの言語は勉強するべきですか?

はい。バックエンドといってもフロントエンドと完全に切り分けることはできません。バックエンドを扱う場合にフロントエンドの知識が必要な事があります。
④必要なスキルまとめ
フロントエンドエンジニアの必要なスキルパターン①
フロントエンドエンジニアの必要なスキルパターン②
バックエンドエンジニアの必要なスキルパターン①
バックエンドエンジニアの必要なスキルパターン②
⑤実務レベルで通用するために必要な学習内容とは?
・基礎を学ぶ
・応用を学ぶ
・実践練習を沢山こなす
・練習で何か簡単なアプリやサービスを作成してみる
・転職のためのポートフォリオを作成する
実務レベルで通用するために重要なことは、実践的な問題を沢山こなすことです。

実践的な問題って例えば、どんなものですか?

実際に実務で発生しそうなタスクレベルの問題の事です。
例えば、バックエンドエンジニアであればログイン機能、検索機能、メール機能・・・などがあげられます
⑥プログラミング上達のコツとは?
プログラミング上達のコツは、「考えながらプログラミングをする」ということが根底にあります。
プログラミング学習で重要なこと
・ソースコードを書いてみる
・ロジックを考える
・実際に何かを作成してみる
そのため、実践的な問題を沢山こなすことでプログラミングスキルが身についていきます。
暗記ではなく、練習が必要です。
実践的な問題については、javascriptまたはjQueryであれば
javascript/jQuery練習問題一覧の記事に基礎レベルから実践レベルまで一覧にしているので、実装練習に活用してください。

反対に、やってはいけない学習の仕方はありますか?

やってはいけない学習方法は、主に2つあります。
単純に時間を浪費してしまい、効率を悪くしてしまう可能性があります。
やってはいけない学習方法
・丸暗記しようとする
・必要以上に言語を複数同時に学習する
書いていくうちに自然に覚えるので、丸暗記する必要はありません。
また、必要以上に言語を複数同時に学習する必要はありません。
例えば、「PHPとRubyを同時にやる」「JavaとC言語を同時に学習する」などは不要です。
ステップ4 : 学習方法を決める
学習方法は下記のどれかが該当するでしょう。
①プログラミングスクールで学ぶ
②メンターをつけて、分からない点を質問しながら独学する
③Udemy(有料オンライン学習ツール)で動画を見ながら独学する
④完全独学で学ぶ
①プログラミングスクールで学ぶ
上記で示した学習方法のように、実務レベルで通用するスキルが身につくプログラミングスクールを選ぶ必要があります。
プログラミングスクールは高額ではありますが、最短で効率よく学ぶことができるでしょう。
おすすめなプログラミングスクールは下記になります。
おすすめプログラミングスクール
・RUNTEQ
「稼げるエンジニア」を本気で目指すのであれば、RUNTEQがおすすめです。
プログラミングスクールが高額で手が出せないという方は、無料プログラミングスクールを検討するのも1つの方法です。
詳しくは、下記の記事を参考にしてください。
【現役エンジニア目線】無料プログラミングスクール卒業後から稼げるエンジニアになるために必要なこと
プログラミングスクールがおすすめな人
・稼げるエンジニアになりたい人
・最短でエンジニアになりたい人
・転職サポートを受けたい人
・学習時間が確保できない人
・趣味レベルでプログラミング学習を考えている人
②メンターをつけて、分からない点を質問しながら独学する
MENTAというサービスを使用する方法です。
MENTAとは「教えたい人」と「学びたい人」をマッチングするサービスです。
自分に合うメンターさんを見つけて、分からない点を質問しながら学習する方法も良いでしょう。
MENTAがおすすめな人
・学習する教材や方向性がある程度決まっている人
・分からない点についてチャットやオンライン通話で相談に乗ってほしい人
・何を学習したらいいか定まっていない人
・転職サポートを受けたい人
③Udemy(有料オンライン学習ツール)で動画を見ながら独学する
Udemyとはオンライン学習ツールの一つです。各ユーザーがそれぞれのスキルを活かしてオンラインレッスン動画を公開しており、動画から学習できる仕組みになっています。
料金は有料になりますが自分がどんな学習をするかが明確で、それにマッチしたコースを見つけられるとメリットが大きいでしょう。
Udemyがおすすめな人
・低価格で学習をしたい人
・自分のペースで学習したい人
・学習の相談に乗ってほしい人
・転職サポートを受けたい人
④完全独学で学ぶ
無料学習ツールやググった情報だけで学習する方法です。
唯一料金が発生しない方法ですが、時間が掛かる上に挫折してしまうリスクも大きいでしょう。
ステップ5 : 転職活動をする
転職活動をするときの2つのステップです。
①転職先企業を決める
②面接の対策をする
①転職先企業を決める
企業にも多くの種類があります。どの系統の企業にするかを、選ぶと良いでしょう。
企業の種類
・自社開発企業
・SES (客先常駐型の企業)
・受託開発の企業
②面談の対策をする
Web系エンジニア転職の面談は、パターンが大まかに決まっています。
基本的にはポートフォリオを作成して、面談をしてもらうことが多いでしょう。
ポートフォリオを元に、何をアピールできれば良いかを解説します。
面談でポートフォリオを使用して、アピールしたいこと
・問題解決力
・技術力
・人柄
・学習意欲
問題解決力とは?
どんなエンジニアでも、「分からないこと」には必ず遭遇します。
その時に、どういう過程を踏んで解決したのか。という点を話せると良いでしょう。
実務でも問題に直面した時に、「どう解決して仕事をしていけるか」を示すことができます。
技術力
ポートフォリオを見てもらうことで、技術力をアピールできます。
実務に役立つ技術力をアピールできれば、高評価となりやすいでしょう。
どんな技術力をアピールできれば良いのか。フロントエンドとバックエンドエンドに分けて下記を参考にしてください。
フロントエンドのアピールしたい技術力参考例
言語・フレームワーク:HTML,CSS,javascript,jQuery,React.js
ツール:Git,Vscode,
実装経験:レイアウト調整,レスポンシブデザイン,API通信,バリデーションチェック,
バックエンドのアピールしたい技術力参考例
言語・フレームワーク:HTML,CSS,javascript,jQuery,PHP,Laravel
ツール:Git,Vscode,Docker,DB閲覧ツール
実装経験:ログイン機能,メール機能,CRUD処理,API通信,バリデーションチェック
人柄
現場でコミュニケーションを取りながら、仕事ができるかどうかが見られるでしょう。
ポートフォリオの説明をしながら、面接官と話が盛り上がるくらいコミュニケーションが取れると良いでしょう。
学習意欲
現在の技術力に加え、今後どのような技術力を磨いていきたいかを示せると良いでしょう。
学習意欲がある人の方が、成長スピードがあるので評価されやすいでしょう。
ステップ6 : 実務に慣れる
実務ではチーム開発でプロジェクトが進行します。
エンジニア転職するまでの学習で、チーム開発経験がある人は少ないのではないでしょうか。
チーム開発経験がない場合は、次のような観点に注意して実務経験を積む必要があります。
チーム開発で必要なスキル
①他人が書いた大量のコードを読む力
②他人が見ても分かりやすいコードが書ける
③仕様について会話・考慮することに慣れている
④バージョン管理ができる(Git)
⑤タスクの見積もり・細分化ができる
①他人が書いた大量のコードを読む力
チーム開発をする上で、既に大量のコードが書いてある場合がほとんどです。
それを読み解く力がないと、適切なコーディングをすることはできません。
・開発者ツールを使う(CSS,Javascript)
・ルーティングやURLからコードを探す
・ショートカットキー(Vscode)
開発者ツールを使う(CSS,Javascript)



ルーティングやURLからコードを探す
PHPの場合はURLからどのファイルのソースコードが反映されているのかを確認できます。
URL例:https://ドメイン名/index.php
この場合はindex.phpのソースコードが画面に反映されているということです。
また、フレームワークのLaravelではルーティングファイルを確認するのが良いでしょう。
Laravelではデフォルトでweb.phpのルーティングファイルが設定されています。
例えばURLが「/user/login」の画面を見ていて、どうロジックが組まれているか確認したいとしましょう。
その場合、web.phpで「/login」と検索します。Vscodeなら「Ctl+F」コマンドですね。
上記だとLoginControllerのlogin関数の中の処理が動いていることが特定できます。
Vscodeなら「Ctl+P」のファイル検索でLoginControllerを開いてすぐ確認ができますね。
ショートカットキー(Vscode)
大量のソースコードを読み解くのに便利で良く使う、ショートカットキー(Vscode)を紹介します。
・Ctl + F (ファイル内検索)
・Ctl + Shift + F (全体の一括検索)
・Ctl + P (ファイル名検索)
②他人が見ても分かりやすいコードが書ける
③仕様について会話・考慮することに慣れている
エンジニアはプログラムを書くことだけが仕事ではありません。ポジションがプログラマーであっても同様です。
プログラムを書くといっても「仕様を明確にする」という工程が必要なので、仕様についての会話力は必要になってきます。
現場に入る前の勉強では、プログラムの読み書きやツールの使い方などは学習していても、会話する訓練というのはあまりしていないのではないでしょうか。
仕様について説明するのは、意外に伝え方が難しかったりします。時には専門用語を使わないと、上手く伝わらないこともあります。
逆に聞く立場の時に、ずっと専門用語でわかりにくい説明をしてくる人も中にはいます。その時に理解ができないと仕様の認識がかみ合わず、「求められているものと違うものを作ってしまった」なんてこともあり得ます。
仕様の会話中でも「それって、こういうことですよね?」という確認が臆せずできるかが重要です。
自分の仕様の認識と相手の仕様の認識が一致していないと、作業内容がズレてしまい効率が悪くなってしまいます。
④バージョン管理ができる(Git)
⑤タスクの細分化・見積もりができる
タスクの規模が大きいと「作業工程が分からない。」「何をどのように作業すればよいか分からない。」という状況に陥ることもあるでしょう。
タスクの細分化ができていない状態で、作業を進めてしまっても設計が間違っていて作業を最初からやり直さなければいけない事になりかねません。
例えば、新規登録画面の作成をする場合のタスクの細分化の一例を挙げます。
タスクの細分化の参考例
・画面設計をする(どの画面から遷移するか。どの画面が必要か。)
・DB設計をする
・テーブルを生成する
・モデルを生成し、必要な情報を定義する
・コントローラーを生成し、必要なロジックを洗い出す
・viewを生成する
・ルーティングを設定する
・エラーハンドリングを考える(ログをどのように残すか。バリデーションチェックは何が必要かなど。)
上記は新規案件の場合です。
作業工程を細分化して、それに対して必要工数を見積もるようにしましょう。
バックエンドの場合はタスクを細分化する時に、設計力が必要になってきます。
設計力については本で学習することも可能です。
「こんな設計はやってはいけない」ということが学べる本をご紹介します。
ステップ7 : エンジニアに転職成功しても勉強を継続する
エンジニア転職に成功してもキャリアアップしていくためには勉強を継続する必要があります。
どのような勉強が必要なのかはキャリアプランや実務の内容によって異なるでしょう。
主に学習すべき内容は下記2点になるでしょう。
①不足したスキルの勉強
②今後キャリアアップしていくための勉強
①不足したスキルの勉強
実務をこなす中で、自分に足りないスキルが新たに出てくることがあるでしょう。
現場の実務が問題なくできるように、学習をしていく必要があります。
②今後キャリアアップしていくための勉強
今後どのようにキャリアアップしていきたいのかを決めて、それに対して学習をする必要があります。
簡単に言えば上流工程メインで仕事をしたいのか、下流工程をメインで仕事をしたいのかに分かれるでしょう。
ステップ8 : エンジニアとしてのキャリアプランを考える
エンジニアとして、どのようにキャリアを積んでいくのかを考えます。
どのようなエンジニアになるのか参考例を紹介します。
目標エンジニア参考例
・フロントエンドもバックエンドもできるフルスタックエンジニア
・上流工程も下流工程もできるエンジニア
・フロントエンドとバックエンドエンドとインフラ部門もできるエンジニア
ステップ9 : 稼げるエンジニアの働き方をする
主な稼げるエンジニアの働き方を紹介します。
①開発部門:プロジェクトリーダー
②育成部門:講師
③フリーランスエンジニア
①開発部門:プロジェクトリーダー
稼げるエンジニアの働き方として、開発全体の指揮をとるプロジェクトリーダーが挙げられるでしょう。
プロジェクトリーダーの業務は多岐に渡ります。
プロジェクトリーダーで想定される業務は主に下記です。
プロジェクトリーダー業務内容参考例
以下のプロジェクトの進行に必要な工程を全て管理する。
・要件定義
・基本設計
・詳細設計
・開発(実装)
・テスト
・納品・リリース
・運用
これらの工程がうまく進行するように補佐することが必要です。
プロジェクトリーダーに必要なスキル
・プロジェクト進行の各工程全ての基本的な知識
・リーダーシップ
・ヒアリング能力
・トラブルを対処する問題解決力
・スケジュール管理能力
プロジェクトリーダーの30代の平均年収は557万円です。
IT業界の中でも、高い水準に設定されています。同業他職種と比べても、それだけ価値を持っている職種といえるでしょう。
②育成部門:講師
これまでのエンジニアでの経験を活かして、プログラミングの講師をする選択もあるでしょう。
講師の年収は勤務形態や勤務会社によって様々です。
企業によっては、経営陣として役職に就ける場合もあります。
または、開発エンジニアと講師を並行して仕事をすることで稼げるエンジニアとして働くことができるでしょう。
③フリーランスエンジニア
十分なスキルがあれば、フリーランスエンジニアで稼いでいけるでしょう。
フリーランスエンジニアは仕事を受ける際に、単価交渉があります。
高いスキルがありスキルを発揮できる仕事であれば、高単価で仕事を受注することが出来ます。
会社勤めの場合は、単価が高いエンジニアでも仲介手数料を引かれてしまいますが、フリーランスエンジニアの場合は仲介手数料を引かれずに報酬を獲得できます。
フリーランスエンジニアの平均年収は約700万円ほどです。
まとめ
稼げるエンジニアになるためには、下積みの学習と実務経験が必要不可欠です。
自分のできる範囲で目標を立てて、一歩一歩進んでいきましょう。
コメント