ロードマップ全体像
本記事では、下記の要素をそれぞれ掘り下げて詳細について説明できればと思います。
- 適切な情報収集
- 効率的なプログラミング学習
- モダンなポートフォリオの作成
- 定期的な情報発信
- 企業への適切なアプローチ
- 十分な面接対策
まず、私について
こう言った記事を書くと、「じゃあ、あなたは未経験から転職できたのですか?」と質問を受けそうなので、簡単に経歴を記載しておきます。
- 20代後半に正社員として働きながら、未経験から完全独学でWEB系自社開発企業に転職
- 学習開始から約1年(学習10ヶ月、面接等転職活動2ヶ月)で転職
この記事を書いた経緯について話させてください
私は独学で未経験からWEB系エンジニアになることができたのですが、自身の転職活動を振り返ると、色々と遠回りしてしまったことや、無駄な時間があったと感じています。 そういった反省を踏まえて、私自身の経験を少しでも他の方の転職活動に役立てていただきたいと思い、この記事を書かせていただきました。
適切な情報収集
転職市場を知る
一般的には、エンジニアが不足していると言われていますが、ここで言うエンジニアというのは、実務経験があって、一定程度業務をこなすことができるレベルのエンジニアを指しています。 未経験からエンジニアになるための難易度はそこそこ高いものの、国家資格などと比較すると容易です。一方で、主に以下の理由によりそのハードルが上がってきているのは確かです。
- 近年、未経験からエンジニアになりたいと言う方が増加傾向にあり、競争相手が多い
- 未経験のポートフォリオに求められるレベルが上がってきている
業界を知る
業態を知る
業態により大きく、SES、自社開発系企業、受託開発企業に分かれます。(ないし、左記の混合型) 結論からですが、自社開発、受託開発もしくは混合型の企業を対象とすることをオススメします。SES企業(SESのみ)を避けた方がいい理由は大きく以下2点です。
- 客先常駐型の形態のため、どうしても運に左右される要素が大きく、プログラミングの開発経験ができない(テスターや、IT業界とは全く異なる職種になってしまうなど)
- 開発できたとしても、自分で言語やフレームワークなどの開発スタックを選定することが難しい
今後のキャリアを考えた場合、SESのみのサービスを扱っている企業は極力避けた方がいいでしょう。 ※自社開発企業と謳っている企業の中にも、開発経験がまったく詰めない、あるいはとてもレガシーな技術を使用していて、スキルが身につきにくいところなどもあるため、このあたりは複数の企業から内定をもらえるようにする等、工夫して回避していく必要があると思います。
業界の闇を知る
また、この界隈には、エンジニアになりたくて勉強し始めた、右も左も分からない、いわゆる駆け出しエンジニアの方にとっては色々な美味しい話や罠なるものが存在しており、一歩間違えれば、経済的・精神的搾取が待っているという恐ろしい世界でもあります。
エンジニアの種類を知る
一口にエンジニアと言っても様々です。具体的には、マークアップエンジニア、フロントエンドエンジニア、バックエンドエンジニア、インフラエンジニア、ios・andoroidのアプリエンジニアなどです。
なりたいエンジニア像をイメージする
まずは自分がどういったエンジニアになりたいのかある程度決めることが重要です。(もちろん、ざっくりとしたイメージで大丈夫です) 理由は、この部分がはっきりしていないと無駄な学習時間が増えてしまったり、応募する企業を間違えてしまい、その結果としてミスマッチが生じてしまったりする可能性があるからです。 また、特別な理由がない限り、求人数からみて、バックエンドエンジニアがもっとも多いので、特にこだわりがない場合は無難にこちらを選択することをオススメします。
定期的にテック情報を収集する
以下のおすすめのテック系YouTuberをまとめた記事を参考にしてみてください。
おすすめのWeb系プログラミングYouTuberを分野別に淡々と紹介する
効率的なプログラミング学習
プログラミングスクールに行かないとエンジニアになれない?
個人的には、まずは独学での学習を開始し、あまりにも詰まる部分が多く出てきて厳しいということであればメンターを雇うことをオススメします。 その理由は以下のとおりです
- プログラミングを少し学習してみて、それなりに楽しいと感じることができるなら(苦ではないと感じるなら)、一人でググりながら都度解決していけば全く問題ない
- シンプルに費用が高い
- プログラミングスクール卒であるということはメリットでもデメリットでもない
- 大抵のスクールの転職保証が形骸化している
その上でどうしても独学では厳しいということであれば最終手段としてスクールに通うという選択肢もありかと思います。
言語を決める
これについては特にこだわりがない限り、求人の多い言語、フレームワークを選ぶことをお勧めします。理由は単純で、応募できる企業数が増え、それに伴い内定確率が高まるからです。
具体的には、以下のような言語が該当します
- Ruby
- PHP
- Java
なお、言語によって向き不向きはあるものの、どの言語を選んでもWEB上で使用できるサービスはよほど特殊なものでない限り、大抵現代の技術を使えば実装できますので、この段階で言語間の差異などを気にしすぎる必要はなしです。
効率的な学習手順
基礎は軽く流して、簡単なアプリを作りつつ、わからないところはググりながら覚えていくというイメージが鉄則です。 ここでの学習の目的は、転職活動に必要なポートフォリオを作ることなので、いろんな言語に手を出したり、基礎学習を何周もするのはNGです。
プログラミング言語の学習
・Progateで学習(1、2週周程度)
WEBの基本的な学習
フレームワークの学習に入る前(もしくは並行して)に、WEBに関する基本的な知識をインプットしておくことをお勧めします。
フレームワークの学習
・モダンフレームワーク(RubyならRails、PHPならLaravelなど)を用いた何かしらのYOUTUBEなどでハンズオン形式(配信者がエディターを開き、実際にコーディングしながら説明してくれる)の動画を参考にしつつ進めると効率的です
モダンなポートフォリオの作成
どんなポートフォリオを作ればいいのか
まずは作りたいものを決めることが重要です 作りたいものがすぐに浮かばない人は、面接時にポートフォリオの作成理由を説明しやすいというメリットがあるため、以下のいずれかのアプリがよいでしょう
- 自分やその身近な人の問題解決となったり、効率化につながるアプリ
- 自分自身の趣味や、バックグラウンドと関連するアプリ
逆に、ツイッターやメルカリクローンなどは作成理由や背景などを説明しずらいので、お勧めはしません。(また、個性がなさすぎるため、企業の担当者からのウケも良くないです。)
どうやって作ればいいのか
ポートフォリオ作成の進め方
ポートフォリオでは複雑すぎるアプリケーションを用意する必要はないです。 なぜなら、色々な機能があるがバグが多いアプリよりも、機能が多くはないがバグがなくきちんと動くアプリの方が印象が良いので、複雑すぎるアプリはできるだけ避けた方がいいでしょう その意味で、まずは基本的なCRUD機能を実装し、そこからオリジナリティのある要素を付け足していくという進め方が効率的です。 ※CRUDとは以下を指します。
ほぼ全てのソフトウェアが有する4つの永続的な基本機能の頭文字をそれぞれ並べた用語のことをいう。 その4つの機能とは、Create(生成)、Read(読み取り)、Update(更新)、Delete(削除)を指す。
モダン技術を使おう
適切な情報収集を心がけていれば、この段階でどういった技術がモダンであるのかということがある程度把握できているはずです。 ポートフォリオには、できる限りモダンな技術が含まれている方がベターです。なぜなら、近年、ポートフォリオのレベルが上がってきており、選考をクリアするためには少しでも技術レベルが高いものが良いためです。
バックエンド
Ruby(Rails)、PHP(Laravel)など
インフラ
AWS、Docker
フロントエンド
Javascript(Vue、React)など ※ただし、フロントエンドは深入り厳禁です。なぜなら、これらは誤解を恐れずにいうと、ないよりはあったほうが断然いいが、この段階で深く学習する必要はない要素だからです。 ポートフォリオがある程度完成した段階で付け加えるとさらに印象がUPするようなものなので、優先順位を考えるとこの段階ではスキップしても問題ありません。
ソースコード管理
Git、Github
APIを活用しよう
APIを活用すると、有名なサービスの機能を自分自身のポートフォリオに組み込むことができるので、一気に精度が増します。また、WEBの基礎であるHTTP通信等の技術を実際に組み込むことができ、オススメです。(LINE、Twitter、インスタ、YOUTUBE、Googleカレンダー、楽天市場など)
Githubフローを使用して開発しよう
実際の開発現場では、Githubフローという手法で開発業務が行われることが一般的となっており、ポートフォリオ作成の段階からこのフローを意識して取り組んでおくことをオススメします。(実際に採用された場合、遅かれ早かれ必然的にチームで開発することになるため)
また、READMEにしっかりとプロジェクトの情報を記載しておくことをオススメします。(アプリの説明や、開発環境、ローカルでの構築手順等)
ポートフォリオはWEB上に公開しよう
AWS等のサービスを用いて、必ずインターネット上に公開するようにしましょう。 (ローカルでしか見れない状態というのは、どうしても妥協感が否めないので、あまり好ましくありません)
ポートフォリオに磨きをかけよう
これは、完全に完了しきらなくても、転職活動と並行して行っても問題なしです
- CSSやCSSフレームワークを使用してUIをリッチに
- JavaScriptのフレームワーク、ライブラリを使用してモダンなWebアプリにブラッシュアップする(SPA化させるとさらに印象UP!!)
- 一部でいいので、バックエンドのソースコードのUnitテストを書く
- オブジェクト指向で開発する
- GithubActionsを用いたCI/CDを実装する
- AWSインフラをコード化する(CloudFormation)
ポートフォリオに関しては、こちらの記事も参照ください。
【完全版】未経験からエンジニア転職に必要なポートフォリオまとめ
定期的な情報発信
学習した内容を定期的に発信することは、転職活動においてプラスに作用するので、積極的に行っていくべきです
- QiitaやZenn、個人ブログなどを活用する
- ツイッターなどのSNSを活用する
ただ、闇雲に発信してもあまり評価は高くないので、他の方に情報をgiveできるような形で内容をまとめて発信するといいと思います
企業への適切なアプローチ
現職を辞めてから活動し始めた方がいい?
どうしてもと言う場合を除いては、現在の仕事を続けながら活動した方が良いです。 主な理由は、面接時に足元を見られてしまうのと、焦って自分が望まないような企業に転職して後から後悔してしまう可能性があるからです。
どのようにアプローチすればいい?
使用するツールはwantedly一択です。理由としては、
- その他の転職エージェント等を使用しても、未経験から入れるWEB系企業はほとんどないという理由で門前払いを食らうことがほとんどのため
- 転職エージェントは、キックバック制度があるため、自身の意図とは異なる結果になってしまう可能性が高いため
Wantedlyの使い方
有料課金機能は不要である
有料課金機能として、スカウトというものがありますが、これは正直不要です。理由としては、人気のある企業はそもそも未経験エンジニアへスカウトを送らなくても、エンジニア側から勝手に応募が来ますので、未経験エンジニアにスカウトを送っている企業というのは、・・・つまりそういうことです。
プロフィール欄等は簡潔に記載する
採用担当者は多忙で、全ての内容に対して目を通すことができないので、極限まで簡潔にわかりやすく記載するようにしましょう。基本的に箇条書きでOKです。
粘り強く応募を
wantedlyの求人は更新頻度がやや低めなので、焦らずにある程度(2〜2.5ヶ月)時間をかけて粘り強く応募していくことが大事です。
どのような企業にアプローチすればいい?
実務経験必須?
実務経験必須と書いてあっても気にせず応募することをお勧めします。とにかく気になった企業に対してガンガン応募しましょう。(数を打つ) 求人によっては、そもそも未経験不可等の記載があるものもありますが、本当に未経験を採用してくれない求人かどうかはこの段階ではわかりません。裏を返すと、ポートフォリオや経歴次第では、未経験でも選考に参加できる可能性は大いにあります。(実際に未経験可かどうかは、応募して初めてわかります。)
未経験可の求人には応募しない
上述の通り、人気の企業であれば募集人数 < 応募数となるなので、足切りのために募集要項に実務経験必須等の文言を記載するのが一般的です。 にもかかわらず、未経験可と記載している企業は、おおよそ下記のいずれかに該当する企業であるため、避けた方が無難です
- 何らかの理由で入ってもすぐにやめられてしまう企業
- エンジニア転職市場でのをリサーチしきれていない企業
- そもそもエンジニアとして採用しようと思っていない企業
勤務地
特別な理由がない限り、勤務地は東京一択です。(次点に、大阪や名古屋、福岡、京都) 体感ですが、未経験が採用してもらえる可能性のあるWeb系企業の8〜9割は東京に集中しているといっても過言ではないと思います。母数となる企業数が少ないと数を打つということが物理的にできなくなってしまいます。
十分な面接対策
ここまでくればあともう一息です。面接対策として以下を最低限用意しておきましょう。
- エンジニアになりたいと思った理由、きっかけ
- 将来どういったエンジニアになりたいか(キャリアプラン)
- ポートフォリオを作成した理由
- ポートフォリオで使用した技術の選定理由
- その企業を選んだ理由(開発環境や使用言語で選びました。はNG)
- 企業研究
- 代表名
- 会社の規模
- いつからある会社か
- 提供しているサービスは何か
- ★事業内容の目的、どんなメリットを与えようとしているか、 どんなツール、方法でサービスを展開しているか、そのツールや 技術に関して、最近どういったアップデートがあったか。
- 企業のサービスでよいと感じた点
- 自分の強み弱み(弱みは言い換えて強みとして説明できると Good)
- どのようにその企業に貢献できるか
- 逆質問最低3つ
- 面接で現場のエンジニアもしくはマネージャー等の責任者が出てこない面接は怪しい
- 面接でポートフォリオや技術面での話が出てこない場合は怪しい
- 入社(join)できるまでの期間は長くても1ヶ月くらいで回答した方がいい。
記事の内容は以上となります。最後まで読んでくださり、ありがとうございます。
冒頭でも書いた通り、未経験のエンジニア転職市場は非常に厳しいですが、きちんとした情報収集と、継続的な努力を重ねていけば十分再現可能なので、ぜひ最後まで諦めずに走りきってほしいと思います。
まとめ
いかがでしたでしょうか。本記事では、未経験から独学でエンジニアになるために活用したおすすめの学習動画を紹介しています。各分野(バックエンド、フロントエンド、web全般、転職に必要な知識)ごとにおすすめの動画を紹介していますので、ぜひこれらを活用しながら最低限の費用で高コスパの転職を成功させてください。