📆

半実務未経験から自社開発への転職戦略

2022/09/13に公開

はじめに

2021年10月に内定をいただき、2022年1月からWebエンジニアとして転職しました。
前職ではWeb技術を用いたコンテンツ開発や研究開発を行っており、サービス開発には携わっていないものの、Webに関する知識・スキルは無いわけではないという状況でした。
そのため、実務未経験と言い切るわけにはいかないものの実務経験ありとも言い難く、似たような状況の方がおらず、なかなか参考になる情報を見つけることができませんでした。

そこで、今回似たような状況の方の役に立てばと思い、こちらの記事を作成しました。
業務で下記のようなことをしたことがあるけど、Webエンジニアに転職するとしたら、どの程度価値がある人材なのか、どうすれば転職できるのかをお伝えできればと思います。

  • HTMLやCSS・JavaScriptでWebページを作成した
  • PythonやRubyなどのプログラミング言語でスクリプトを動かした
  • 実サービスで使うわけではないがAWS上にWeb APIを作成した

転職活動開始時のプロフィール

初めて転職活動をしたのは2019年の8月。
社内スキルしか身につかない上に、希望する仕事をさせてもらえない・自由奔放な方が多い・プライベートの時間を犠牲にして働かざるを得ない職場環境に辟易していました。
年齢は30歳、年収は800万円程度と、Webエンジニアに転職するにはいささか高い年齢、下がるのを覚悟しても高い年収ということで苦戦することは自分でも分かっておりました。
ただ、このまま働き続けても心身共に壊してしまうという危機感が自分にも妻にもあったため、すべて覚悟の上で転職に向けて動き始めました。

当時の業務での経験は下記のとおりです。

  • HTML・CSS・JavaScriptを用いた作画システムの開発
    • CSVファイルを読み込んで、ボタンを押したらグラフを作画
  • RubyでTwitter APIからリツイート数を取得してアンケート結果に反映させるシステム
  • AWS(API Gateway + Lambda + RDS)上に構築した実験用API(既存APIの模倣)
    • 実験用なのでトラフィック量は1日数回叩かれる程度
    • アクセスを制限しており、使う人も限られるので、そこまでセキュリティレベルも高くない

いずれも書籍を読んだり、Webで情報収集したりして開発したものです。
OJTや指導を受けたことはありません。
業務で取り組んだとはいえ、お世辞にも “実務経験” と呼ぶのは難しいと個人的に思っていました。

転職戦略

転職活動開始時には “実務未経験と見られるか、実務経験ありとして見られるか” すら分からず、そのままの状態で転職できるのか、何らかの努力が必要なのかを探るところからのスタートでした。
そこからどのように転職活動を進めていったかを下記に記します。

1. 自分の現在地を知る

転職活動をした際の現在の市場価値がわからないため、まずは現在地を知る意味で次の行動を起こしました。

  1. 転職サイトに登録する
  2. エージェントの方に話を伺う
  3. 実際に応募してみる

1.1 転職サイトに登録する

はじめは右も左も分からず、とりあえず 転職サイト に登録して求人を眺めていました。
知人から転職エージェントに登録すると声をかけてもらえると教わっていたのですが、転職サイトを転職エージェントと思い込んでいたため、まったく状況は変わりませんでした。
転職すると決めたら、どんな媒体があって、それを使うとどんな転職活動を行えるかを知ることから始めるべきでしたね。

1.2 エージェントの方に話を伺う

そんな中、転職活動を始める3か月ほど前に、LinkedInでお声がけいただいたエージェントの方と初めてお話して転職活動の概要を伺いました。
どういった企業を紹介できるかということはもちろん、Webエンジニアとして転職するにあたっての基本的なところからお伺いし、現状を正直に伝えて転職できそうか聞いてみました。

その方の答えは次のとおりでした。

  • 実務とみなすには少し弱い
  • 紹介できる企業がないわけではないが、年収はかなり下がる
  • AWS上にAPIを構築できたといことで、もう少し業務で深く取り組むことができれば今よりは良くなるかも
  • 自分の紹介できる企業では難しいかもしれないが、他のエージェント経由だと違うかも

今より良くなる可能性はあまり考えられなかったこともあり、他のエージェントにも登録して意見を伺いました。
そこで言われたことは次のとおりです。

  • 現状でもそこまで年収を下げずに紹介できることろはあるし、可能性は低くない
  • 手応えを確かめる意味でもまずは10社ほど応募してみましょう

ということで、まずは10社ほど応募してみることに。

1.3 実際に応募してみる

結果は9社が書類選考落ち、1社がカジュアル面談で経験不足による見送りとなりました。
カジュアル面談の内容としても、こちらの業務についての反応は今ひとつで、RDBのチューニング経験や負荷分散、並列処理の経験などを問われました。
事業内容としては、これまでの業務経験と重なる部分もあり、知識・経験が活かせる部分があったものの、スキルとして求められるレベルを満たしているものはなさそうに感じました。

また、このまま業務を行って転職に必要なスキルを身につけることは難しいであろうと推測することができたことも大きな収穫でした。

2. ゴールと現在地のギャップを埋める

ゴールはWebエンジニアとして転職すること。

書類選考・面談の経験から、そのままのスキルではWebエンジニアとしての転職は難しいと現在地を自己評価しました。
業務でスキルを身につけることが難しいことから、個人的な取り組みで何らかのWebサービスを形として作り上げることで、実務経験として扱ってもらうのは難しいかもしれませんが、やる気・ポテンシャル・キャッチアップ力を評価してもらうことに方向性を定めました。

2.1 個人開発の技術選定

年齢が高めであることから、ありきたりな技術選定をしては他と差をつけることはできないと感じていました。
当時はRuby on Railsなどのバックエンドのフレームワークを用いてWebアプリケーションを開発し、ポートフォリオを作成し評価材料としてもらうのが一般的でした。

ただ、それだけでは若い方々に前述の評価軸で勝つことは難しいだろうと予想し、以下の要素を組み込むことにしました。

  • JSライブラリを利用する
  • SPAを実現する
  • IaCで構築する
  • AWSにデプロイする

実際に転職活動を再開する際には時折見かける技術スタックかと思いますが、技術選定をした当時は「ここまでやれば安泰だろう」と考えていました。
たった数年でここまでレベルがインフレするとは予想していませんでした…

2.2 開発サービスのテーマ選定

続いて技術力に関する評価材料は定まったので、具体的に何を作るか考えました。
はじめはメルカリのようなフリマアプリを作り始めたのですが、2人以上のユーザーがいないとアプリケーションの機能として成り立たないものが多く、採用担当の方に触っていただく上で機能の詳細が伝わりにくいと感じました。

そこで、ひとりでも利用することができるアプリケーションにテーマを変更し、再度ゼロから作り直しました。

いずれのテーマも、日常的に自分が課題に感じていることを解決するようなアプリケーションとし、アプリケーションの売りやサービスモデルも頭の片隅で検討しておきました。
面接ではどうしてそのサービスを作ったを聞かれることが多く、その点しっかりと悩んでおいて良かったです。

2.3 開発フェーズ

実際に開発したアプリケーションはこちら。
ToDoRo(トゥドーロ)〜タスク管理アプリ〜

使用した技術スタックは

  • バックエンド
    • PHP 7.4.6
    • Laravel 8.54.0
  • フロントエンド
    • HTML
    • Sass
    • JavaScript
      • axios 0.21.1
    • Vue.js 2.6.11
      • Vue CLI 4.5.13
      • vuex 3.4.0
      • vuetify 2.3.0
      • vuerouter 3.3.2
  • インフラ
    • Docker/Docker Compose
    • MySQL 5.7.30
    • NGINX 1.20
    • CircleCI 2.1
    • ecspresso 1.3.2
    • Terraform 1.0.1
    • AWS(VPC, ACM, Route53, IAM, ALB, ECR, ECS(Fargate), RDS, ElastiCache(Redis), S3, CloudWatchLogs, Parameter Store)
  • テスト/静的コード解析
    - PHPUnit 9.5.8(テスト)
    - PHPStan 0.12.94(静的コード解析)
    - ESlint 6.8.0(静的コード解析)
    - Prettier 1.19.1(コードフォーマッター)

となっています。
IaaCやCI/CDの部分は面接でもキャッチアップ力・学習意欲・自走力・を評価してもらえることが多く、苦労しましたがやってよかったと感じています。
アーキテクチャ図やER図などを作成していた点も高評価でした。

作り直したりしているうちに、業務が忙しくなり、なかなか時間がとれず開発期間はかなり長くなってしまいました。
この点は評価いただける企業といただけない企業とはっきり別れました。
働きながら長い時間をかけて完成させた粘り強さ・やりきる力を評価いただけた企業もあれば、もっとプライベートを犠牲にする本気さが欲しかったという評価だった企業もありました。

3. ゴールに向かってラストスパート

ポートフォリオを作りきって、いよいよ転職活動を開始しました。
2021年8月中旬のことです。

転職活動は、一番初めにLinkedInでお声がけいただいたエージェントさんと転職ドラフトを中心に行いました。
最終的にはご縁あって転職ドラフトでお声がけいただいた企業に転職を決めました。

3.1 エージェント経由の転職活動

エージェントさん経由で応募した企業の結果は下記のとおりです。

選考段階 応募数 通過数
書類選考 6社 3社
一次面接 3社(内1社2ポジション) 3社(2ポジション中1ポジション)
二次面接 3社 0社

書類選考落ちの主な理由は経験不足、面接NGの理由は即戦力を求めている・給与面とのことでした。
面接を受けていても、学習意欲・キャッチアップ力は認めるものの、実運用されたサービス開発の経験が求められていると感じることが多かったです。
これは個人開発で補いきれるものではなく、お互いのニーズのミスマッチで致し方ない結果だと諦めがつきました。

ただ、2019年には書類選考落ちばかりだったものが、二次面接まで進められるようになり、ポートフォリオの効果は確実にあると実感しました。
また、IaaCやCI/CDの影響か、バックエンドエンジニアとして応募していた企業様が、SREのポジションでも面接してみたいと仰ってくださったこともあり、幅広くチャレンジしてよかったとも感じました。

3.2 転職ドラフト経由の転職活動

転職ドラフトでの転職活動[1]結果は下記のとおりです。

選考段階 応募数 通過数
スカウト 13社
カジュアル面談 3社
一次面接 5社 2社
二次面接 1社(途中辞退) 0社
最終面接 1社 1社

非常に多くの企業様からお声がけいただき、ほとんどの企業様がポートフォリオに目を通してくださっていました。
エージェントさん経由での転職活動を先に始めていたため、スケジュール的に多くの企業様に選考辞退のお返事をしなければならなくなったのが心苦しかったです…

先方からオファーをいただく形の転職サービスなので、エージェントさんにご紹介いただいた企業よりミスマッチは少なかった気がします。
ただ、研究開発をしてきたという経験から、エンジニアとしてよりもデータサイエンティストとしての活躍を期待されている割合が高いことが多く、ポジション的に希望との若干のズレがありました。

最終的にはバックエンドエンジニアとしてのポジションで内定を出してくださった企業に転職を決めて、2019年から始まった長い転職活動に終止符を打ちました。

4. ポートフォリオを作るなら

4.1 今から実務未経験・半未経験でポートフォリオを作るなら

最後に転職活動から約1年経ちましたが、2022年9月現在でポートフォリオを作り始めるならどういう技術を使うか、自分の考えを書こうと思います。

  • バックエンド
    • Ruby & Ruby on Rails
    • Java & Spring Boot
  • フロントエンド
    • TypeScript
    • React
  • インフラ
    • Docker/Docker Compose
    • PostgreSQL
    • NGINX
    • GitHub Actions
    • Terraform

自分は将来的に行きたい企業が採用しているPHPを使って開発しましたが、今なら間口が広いRubyかJavaを選択します。
Javaの方が学習コストが高いですが、設計やコーディングの書籍はサンプルがJavaであることが多いので、Javaを選んでおくと後の成長にも繋がりやすい気がしています。

フロントエンドはTypeScriptとReact一択です。
Vueも良いのですが、コミュニティの活発さや思想の安定感はReactの方が上回ると思います。

インフラにはPostgreSQLを使います。MySQLでも構わないのですが、やはり実務で触ったりする機会が多いのはPostgreSQLな気がしています。
SQLはRDBMSごとに方言があるので、実務で使うものに慣れておく方が早く活躍できそうです。

GitHub Actionsも自分が個人開発を始めた頃はリリースしたばかりで情報が少なかったのですが、今ではだいぶ主流になっているかと思います。
扱えるようになっておくと他の応募者と一線を画すことができそうです。

4.2 実務経験約半年でポートフォリオを作るなら

  • バックエンド
    • Go(DDD)
  • フロントエンド
    • TypeScript
    • React(Atomic Design)
  • インフラ
    • Docker/Docker Compose
    • PostgreSQL
    • MongoDB
    • NGINX
    • GitHub Actions
    • Terraform
    • ElasticSearch

GoでDDDどうやるのかとかよく分からないですが、「やってみたい」の気持ちを中心に考えてみました。
SQLとNoSQLを組み合わせたり、ログの管理もしたりとか、未経験時代に気が回らなかったところにまで手を伸ばしてみたいです。
マイクロサービスアーキテクチャのように、サービスを拡充していけるようなアーキテクチャにできると尚面白そうです。

まとめ

この記事では実務半未経験から自社開発企業へ転職するまでの戦略をご紹介しました。
戦略というほど大それたものではないかもしれません。
ただ、

  • 自分の現在地を知る
  • ゴールを見据える
  • ゴールに向かって歩み続ける

この3つができれば、経験不足の状態からも転職することは可能だと思います。
ぜひ実務未経験や自身で経験不足と感じている方の参考になり、転職への一助になれば嬉しいです。

脚注
  1. 転職ドラフトの体験談はブログ記事にしています(【体験談】転職ドラフトで転職しました | DevLog↩︎

GitHubで編集を提案

Discussion