【大学中退・社会人経験なし・未経験】のエンジニア転職の思考法
タイトルは「転職の思考法」からインスパイア受けてます。
先日、都内の自社開発企業様から内定を頂いて、約2年ほど行ったエンジニア転職に関する活動が一旦ひと区切りついたので、感想やそこで得た知見などをシェアしていきたいと思います。
(当時考えていたこと/各期間におけるトレンドなどを線でつないでいき、再整理する目的もある。)
できる限り着飾らず、本音ベースで喋っていきたいと思います。
正直内定出ただけでまだ何にも実務をこなしていませんので、「何書いてんだこいつ」と思われるかもしれません….が、こういうのは思い立ったらすぐ書いちゃうのが吉なので書かせていただきます。その辺はお許しください🙏
スペック
まずは簡単な経歴とスペックについて整理しておきます。
完全に下の下ですね。
社会人経験もないし、最終学歴は高卒だし、未経験だし…
プログラミング始める前のスタート地点でいえばハンデがあったのは事実でしょう。
そのため他の人と同じようなことをしただけでは、採用されるのが難しいであろうことは目に見えていました。
例えば「有名大学の理系学部卒」「有名企業出身」「システム部門でVBAを書いていた」といった人と自分のようなスペックの人間が同じ勉強をして、同じPFを作った場合どちらを採用したいのか?は一目瞭然でしょう。
ただ後で詳しく触れていきますが、この程度のギャップなら努力次第でどうにでもなると自分は考えています。(今も昔も)
未経験エンジニア採用の現状
ではなぜ自分がそのようなことを思うのか?という話ですが…
前提として、「未経験エンジニアの転職市場の現状」みたいなものを頭に入れておいたほうが理解しやすい部分があるかと思いますので、そちらについてまず触れておきます。
◆企業側
dodaの転職求人倍率の推移を見てもわかるように、全体の求人倍率が約2倍である一方でエンジニア(IT・通信)の求人倍率は約10倍ほどとなっています。(他の求人媒体も似たりよったり…)
これはつまり1人のエンジニアに対して10社の求人があるという状態ですので、エンジニアの需要が非常に高いということがわかります。
ただ一方で、企業側が欲している人材は「実務経験のある優秀なエンジニア」であり、未経験エンジニアは肌感ですが「いい人がいれば採用するかな」程度である場合がほとんどです。
以下の図でいうと企業が欲しているのはピンク色の部分で、一般的な未経験エンジニアというのは右下の黄色の部分になります。
ただ一方で、市場価値が高いエンジニアは採用が難しい…という側面もあります。
そのため徐々にではありますが、「微経験エンジニア(実態としては未経験だが、それなりのエンジニアリングスキルが見込める人)」や「未経験エンジニア」の採用も目立つようになってきているというのが現状としてあるようです。
教育コストを承知で、数ヶ月〜1年を目処に戦力になってもらうことを想定した育成枠として採用する…といった具合でしょうか。
◆求職側
では、求職側の現状はどのようになっているのでしょうか?
自分がエンジニア転職の活動を始めたのは、だいたい2020年の9月頃なのですが、その頃と比較すると以下のような現状が見えてくるかと思います。
(おおよそ以下の記事に書いてある通り。)
・大手プログラミングスクールの衰退
まず大きいのが、大手スクールの衰退でしょう。
基本的には上記の記事に書いてあるとおりなのですが、特に2020年後半~2021年頃はSNS上でテッ○キャンプ受講生への風当たりが強かったことを覚えています。
これにより「量産型スクール卒業生」が一気に減り、相対的に未経験転職市場全体のレベルが上昇し、求められる基準も全体として上がってきたように感じます。
・情報の透明化
次に挙げられるのが「情報の透明化」です。
基本的に、自分が転職活動を始めた頃は
ポートフォリオのレベルはどのくらい求められるのか?
どういった学習順序でどういった教材を用いて学習を進めていけばよいのか?
Wantedlyのプロフィールの書き方
面接で意識すべきこと
といった情報はあまり出回ってなかったのですが、今はネット上で簡単に調べられることができるようになっています。
例えば、少し前に流行った転職成功noteや面接対策や書類添削に特化したオンラインコミュニティなど…最近だとYouTube上でもこういった情報の発信を積極的に行っている人が多いです。
これにより「何をやればいいのか?」がある程度わかるようになり、新規参入者が増える一方で、逆にそのハードルの高さに挫折して諦めてしまう(or向いていないと悟る)人もちらほら現れました。
個人的な所感としては2020~2021年頃と比べると少し減ってきたかなぁという印象です。
・ハイレベルなポートフォリオ
次に、前述の「情報の透明化」に伴ってポートフォリオのレベル(技術だけじゃなく総合的な意味で)が上がったと感じています。
自分が学習を始めた頃は、一般的に以下のような構成が多かった印象です。
機能としてはCRUDに毛が生えた程度
主にRailsを使用したモノリス
インフラはほぼheroku
ただ最近だと
CRUD以外の独自ロジックを実装
尖ったアイデア
Rails+フロントエンドフレームワーク(React/Vue/Next.js/Nuxt.js)
heroku有料化に伴いインフラも多様化
外形監視ツールの導入・テストや管理画面の作成
こういったポートフォリオが昔よりは増えてきている印象です。
自分が知っている人で技術的にすごい人だと
主な技術スタックはRails+Next.js
環境構築にDockerを使用
GitHub Actionsを用いたCI/CDパイプラインの構築
OpenAPIを用いたスキーマ駆動開発の導入
SSG+TanStack QueryやSkylightを用いたパフォーマンスチューニング
Firebase Authenticationを用いたGitHubログイン
Cypressを用いてE2Eテストを導入
こういった人もいました。(まぁこれはレベル高すぎて外れ値ぽいですが…)
また、技術的に変わっていなくても、尖らせたアイデアによりTwitterやQiitaでバズるorメディアに取り上げられている人もちらほらいます。
RUNTEQ生の例でいうと、「Trippable」や「席替えメーカー」というサービスが有名ですね。
どんなことを意識していたか?
ではこういった現状を把握した上で、自分がどういったことを意識して転職活動を進めていたのか?について話を移していきたいと思います。
前述の通り、自分はスペック面で劣っていたため転職活動は結構苦労するだろうなぁと思っていました。
とはいえ、未経験からエンジニア転職を考えている人は全員否応がなく右下の最も市場価値が低い状態からのスタートになるので、やり方次第では充分この差を覆すことが可能だと考えていました。
(右下の枠内にいる人同士の争いなので、充分逆転のチャンスはある)
要するに「ポテンシャル採用」の部分が大きいので、社会人経験がなくてもその他の部分で「ポテンシャル」をしっかりと提示できればよいわけです。
ではこのポテンシャル(自走力)を示すために、具体的にどういったことを行ったのか?という話ですが、自分の場合は大きく2つあります。
❶継続的なQiitaへのアウトプット
まず1つ目がQiitaと呼ばれる"技術記事投稿サービス"に継続的にアウトプットするということです。
「アウトプットの習慣があること」「学んだことをちゃんと言語化できること」というのは企業側がその人のポテンシャルをはかる上で大事な指標になります。
また自分の場合、もともと「自分の知見が誰かの役に立つこと」や「思考を整理すること」に対してやりがいを感じる性格でもあったため、ブログを書いたり、アウトプットすることに抵抗感がなかったのが大きいです。
最終的には記事数19、総コントリビューション数は2700に到達し、「質の伴ったアウトプットを継続的にこなしている」というアピールにつながったのではないかな?と勝手に思っています。
個人的な感覚ですが、PFに力を入れている人はいても「技術記事を書くこと」に力を入れているという人はあまり見かけないので、そこそこバズった記事が1つ2つあるだけで採用担当側の印象に残りやすいのかなと感じました。
(技術記事きっかけでDMや求人媒体経由でスカウトが来るケースもちらほら)
またNotionにアウトプットしている人も結構見かけますが、どーせアウトプットするのなら個人的にはQiitaやZennのような技術記事投稿サイトに投稿することをおすすめします。
実際にいいねやストック数などを稼げれば錯覚資産的にも有効ですし、また人に見られる前提で書いたほうが内容の理解も深まります。
❷低レイヤの知識のインプット
次に意識していたのが「低レイヤ領域のインプット」です。
詳細は以下の記事に書いてある通りなのですが、低レイヤの知識は既に枯れている技術であり、かついろんな分野の基盤となっていることが多いため、1度学んでしまえば応用を効かせやすいというメリットがあります。
このため、新しい技術や未知の実装に遭遇した際も他の人よりも「短時間で対処できる」というアピールにつながる(当然自身の学習効率も上げれる)と考え、積極的に学んでいました。
実際使ったことのない言語やライブラリ、未知の実装に関しては他の人よりも全体像を把握するスピードは速かったような気がします。
あと何より「CPUの動作原理」「Webやネットワークの知識」などに純粋に興味を持っていて、深ぼっていくことが楽しかったのも大きいですね。
以下は自分が行った具体的な低レイヤの勉強です。興味ある方は参考にどうぞ。
※PFと資格について
ここではあえて触れていませんが、もちろんPFや資格もポテンシャルをアピールする上では大事な指標です。
例えば、PFに関しては自分は面接で聞かれることは少なかったですが、作ってて当たり前のような扱いでしたので「PFなしでも内定もらえる」みたいな幻想は捨てたほうが良い気がします。(どなたかがおっしゃっていましたが、PFはチケットみたいなものと考えればイメージしやすいかも。)
また「PFにどれくらい技術を盛り込めばいいのか?」問題ですが、こちらに関しては自分は「好きにすれば良い」と思っています。
某サロンの人がよく言っているような
Next.js
TypeScript
Rails
Docker
AWS-ECS(Fargate)
GitHub Actions
Terraform
みたいなマシマシの構成にしたいのであればすればいいし、面倒くさいならやらなくていいです。
実際に自分は以下のようなサービスを開発しました(宣伝です…)が、主な技術スタックとしては
React
TypeScript
Rails
Docker
heroku
GitHub Actions
で、インフラ構成に関しては最低限の動作が保証されているようなもので妥協?(言い方が正しいのかわからない)しています。
ただどんなアーキテクチャや技術スタックにしても、企業は「最終的な成果物」以上に、そこにどれだけの意思や考えがあるかというところのほうが興味を持っている…ということは頭に入れておいたほうが良いです。
要するにその技術を採用するに至ったプロセスの説明やアーキテクチャそのものの理解というのをある程度しておいたほうがよい…ってことですね。
これに関しては資格も同様です。
自分は基本情報/LPIC1/AWSクラウドプラクティショナーの3つを取得しましたが、「なぜ取得したのか?」といったプロセス部分のほうが聞かれました。
実際の転職活動について
ではここからは面接や書類選考など、実際の転職活動の流れの中で自分が行ったことについてまとめていきたいと思います。
期間としては書類を作成し始めてから内定をもらうまで約1ヶ月半ほどかかりました。
また結果は以下の通りになっています。
❶書類作成
まずは「書類作成」
こちらに関しては、RUNTEQの就職サポートを受けながら職務経歴書や履歴書を書いていったという感じになります。
また自分は技術的なアウトプットにも力を入れていたため、それらを最大限生かせるよう色々試行錯誤していました。
具体的には
PFやアウトプットが採用担当側に簡単に見てもらえるようにbento.meを使用してポートフォリオサイトを作成。
Twitterのプロフィールや各種求人媒体のトップなどの人目につきやすい部分に添付した
GitHubのプロフィールとPFのREADMEを見やすくする
GreenやWantedlyではなく、技術的なアウトプットをより可視化してくれるLaprasやForkwellを利用
特にLaprasはGitHubや技術記事がスコアに直結反映されるので、アウトプットに自信がある人はおすすめです
Wantedlyも書き方次第では、そういったこともアピールできそう(自分は書き方が独特なのでやめた)
といったことを行いました。
❷応募・書類選考
次に「応募・書類選考」についてです。
自分は応募媒体としては「Lapras」と「Forkwell」をメインに使っていました。
各媒体の特徴については以下の通りです。
AIによるポートフォリオの自動生成とスコア評価をし、企業からオファー・スカウトを受けられるサービス
最大の特徴は、インターネット上に保持している、SNSなどの各種Webサービスの情報を収集して、ポートフォリオが自動生成されること
アウトプットをスコアとして見える化してくれるので、スキルでアプローチしたい人には最適なサービス
自分のプロフィールはこんな感じ
こちらもLaprasと同様に他サービスとの連携が可能
GitHubのリポジトリなどを解析し、自身のスキルを可視化できる。ただ実績を羅列するだけではなくグラフなどを用いて表示も可能
個人的にはLaprasよりもForkwellのほうが反応が良い気がする。スカウトもちょくちょくくる…未経験に対して優しい😭
書類選考に関してですが、未経験ということもあって通過率が悪いのはある程度仕方ないかと思います。
ただForkwellに関しては(先述しましたが)「まずはカジュアルから〜」と話を聞いてくれることが意外と多いですし、Laprasに関しても自身のプロフィールに興味もってくれている企業に絞れば面接に進めることも多かったです。
そのため、そこまで書類が通らないからといって悲観する必要もないのかなと思いました。
(日常的にアウトプットを積み重ねていれば見てくれているところは見てくれているなという印象…アウトプットまじ大切。)
※企業探しについて
自分は「なんとなくの方向性やビジョンはあるけど、それに対してのアプローチ法にあまり拘りがない」という理由から企業探しに関しては幅広く行っていました。
なんとなく事業内容が面白そうだなと思ったところにとりあえず応募してみて、話を聞いて惹かれるところがあったら選考に進む…といった具合で進めてました。
そのため必然的に応募数は他の人よりも多くなりました。
もちろん軸や将来的にやりたいことなどがはっきりしている人であれば、それらを頼りに少数に絞り込んで応募していくほうがよいか思いますが、無理にはっきりさせる必要もないかなと個人的には思っています。
話している内に色々見えてくる部分も多いですしね(自分はどちらかというとこっちタイプでした。)
❸面接
自分が受けた企業は基本的には、
カジュアル→(書類選考)→1次面接→2次面接→最終面接
といった流れで行うことが多く、最終面接以外は基本的にはオンラインで行われました。
また各選考の間にSPIや技術課題などが与えられることもちらほらありました。(この辺の細かい話は割愛させていただきます。)
面接を通して1番印象的だったのは、企業側は「カルチャーフィット」を思った以上に重要視しているということです。
例えば「転職活動の軸」や「志望動機」に関する質問は必ず聞かれましたし、その回答に一貫性があるかどうか?というのはかなりチェックされているように感じました。
また自分が受けた企業の中には、数時間、数日、副業などで実際に業務などをしてもらい社内の雰囲気を掴んでもらうといったことを面接フローに取り入れているところもありました。
このように「カルチャーフィット」は求職者側が思っている以上に重要視されているので、企業のミッション・ビジョン・バリューや求める人物像の把握はもちろん、それに自分がちゃんとマッチしているかを理解するための自己分析は入念におこなっておくことをおすすめします。
実際面接を受けてみて感じたこと
その他、面接を受けて感じたことややっておいてよかったことをいくつか挙げていきます。参考にどうぞ。
・PFはそこまで作り込む必要はない!?
ちょっと前に「PFについては技術選定の理由とか喋れておいたほうがええやで〜」みたいなことを言っていましたが、そもそもPFについてほとんど触れられないような企業も(自分の場合は)結構ありました。
これについては理由はよくわかりませんが、ある程度の自走力が他の成果物等で証明できている場合はあまり深ぼった質問はされないのかなと勝手に思っています。
現に自分自身、PFについてはスライドも準備して何を聞かれてもだいたい答えられるように対策していたのですが、ちゃんとした説明が求められた企業は2社ほどしかありませんでした。
ただだからといって「PFが必要ないのか?」というとしつこいようですが、絶対そうではないです。他の人はある程度作り込んできているわけなので、ないと逆に不自然ですからね。
自分の言いたいこととしては、例えば2ヶ月以上かけて凝ったアプリを作るくらいならさっさと転職活動に移行して、書類作成や自己分析、面接対策をしたほうが効率が良いのではないか?ということです。
あくまでエンジニア転職というのは総合力勝負の部分が肌感としてはやはり強いので、何か1つに尖りすぎるのはあまり得策ではないと思います。
(また未経験エンジニアの技術力といっても相当突出した実績や成果がない限りはどんぐりの背くらべ状態であるため、差がつきにいというのもあります…)
・「推し技術」を持っておくと良い!?
他に感じたこととしては、純粋な技術への興味関心をアピールするなら「推し技術」を1つや2つを持っておくことも良さそうだと感じました。
例えば自分の場合、Reactと呼ばれるライブラリが大好きなのですが
Reactが出てきた背景
Reactのどこが好きなのか?なぜ好きなのか?
Reactの今後
について熱く話してみたところ、面接担当の方から高評価のFBをいただけたことがありました。
「PF以外に技術系でアピールしたいものが今すぐ必要…」という方は、とりあえず自分が使ってみて使い心地がよかったライブラリを列挙してみて、「なぜそれらが使い心地がよかったのか?」を深堀りして、言語化できるようにしておけば(面接官次第では)アピール材料になるかもしれません。
・カジュアル面談は存在しない!?
基本的に自分が受けた企業はカジュアル面談という名のカジュアル面談はほとんど存在しませんでした。
最初からいきなり突っ込んだ質問が飛んでくることが多かったです。
「一通り話を聞いて簡単な自己紹介や興味を持ったきっかけを話せば終わりだろう」と思って受けてみたら、企業探しの軸や志望動機を突っ込んで聞かれて無事死亡..みたいなケースが最初のうちはよくありました。
カジュアル面談といえど、最低限の下調べや準備は行っておくことをおすすめします。
面接で聞かれた質問まとめ
面接で聞かれた質問について(思い出せる範囲内で)簡単にまとめておきます。
おまけ:転職活動中にやらなくて後悔したこと
最後におまけとして、転職活動中(書類作成〜面接)にやらなくて後悔したことについていくつか挙げていきたいと思います。
まずは「コードを書いたり、技術書を読む時間をあまり取れなかったこと」です。
自分は、面接や企業研究といったような一般的な人が就活で経験しているようなことをしたことがなく、苦手意識を抱えていたのでかなりの時間を割いていました。
そのため、あまりプログラミングの学習に時間を割けていませんでした…
中途半端になるくらいなら、どちらかに専念すべきという意見もわかりますが、自分の性格上何か新しい学びを得られなかったら前に進んでいる感覚が得られなくて心理的に不安定になってしまうので、もっとプログラミング自体にコミットする時間を作ればよかったなぁと感じています。
(まぁここはその人の性格次第ではある気がしますが…)
もうひとつ後悔している点としては、「(初期の頃)面接官や企業側に合わせず、もっと自分の考えや価値観に沿って素直に答えればよかった」です
面接に慣れていない最初の頃は面接官であったり、応募した企業のビジョンなどに共感して合わせがちだったのですが、変に取り繕う必要はなかったなぁと後悔しています。
合わせにいった企業はだいたい深堀りされて、自分のやりたいことの方向性とずれていることを指摘されて「おわた…😱」ってなったケースもしばしば。
せめて自分の中で曲げられない部分の言語化は行った上で、それが本当にその企業の目指す方向性と合っているかどうか?はジャッジしておくべきでしたね…
(どっちかというと自分は面接を経てこの辺が浮き彫りになっていた感 is あるので仕方ないっちゃ仕方ないが…)
最後に
以上約2年間に渡って行ってきたエンジニア転職に関する活動のざっくりまとめでした。
ただここに書かれている内容はほんの一部で、例えば「具体的にどういった学習をしてきたのか?」についてはほぼ触れていません。
そのあたりについて何か聞きたいことやお困りごとがある方がいらっしゃったらDMなどでぜひ遠慮なくお声かけください。
(当然この記事の内容に関する質問などもウェルカムです〜)
https://twitter.com/yusuke_blog1026
この記事が少しでも誰かのお役に立てれば幸いです。
最後までご覧いただき本当にありがとうございました。
この記事が気に入ったらサポートをしてみませんか?