大手ベンチャー企業のソフトウェアエンジニアへ!実務未経験者から転職できるベストプラクティス

今回インタビューさせていただいたのは、大手ベンチャー企業へのソフトウェアエンジニアへ転職を成功させたJohnさん。動画編集業から大手企業への転職を成功させるために将来のビジョンをしっかりと描きながら努力されていました。

  • 実務未経験だかソフトウェアエンジニアとして転職したい
  • 書類選考を突破できる職務経歴書の書き方を知りたい
  • プログラミングの効率的な学習方法が知り合い

そんな方にJohnさんの成功体験をお伝えします。

Johnさん

大手ベンチャー企業への転職!実務未経験からでも成功するには

――Johnさん、インタビューをお受けいただいてありがとうございます。早速ですが簡単な経歴を教えてください。

経歴をお話する前に、自分のことについて少し補足させてください。

私は聴覚障害があり、手話を第一言語として生活しております。その上でエンジニアを目指しRecursionで学習を始めました。そのことをご承知おきいただいたうえで、ブログを読んでいただけますと幸いです。

高校までは、聴覚支援学校(別称:ろう学校)で育ちました。その後、クリエイティブデザインを学び深めたいと思い、聞こえる学生も集う一般大学へ入学し、人文情報学を専攻していました。そこでは主に、ビジュアルインフォメーション(動画編集や画像編集など)を学び、Aftereffectsや3DCGを使って特殊映像を作っていました。

大学卒業後は、新卒で動画編集業に従事しておりましたが、半年たった頃から「IT技術で社会課題を解決する」エンジニアに興味を持ちはじめ、思い切って外資系Mに転職しました。そこで2年間、部署が提供するITトレーニングと、実務開発に従事し、4月からソフトウェアエンジニアとしてT企業へ転職予定です。

――プログラミングの学習については、外資系企業に転職後始めたのですか?

プログラミングは、大学でCとSwiftを書いたことがあります。しかし、コードを書いても、それぞれの処理があまり理解できず、意味がわからずじまいのままでした。そういったネガティブな経験があったことで「プログラミング」に対する恐怖心が沸いてしまい、むしろ避けてしまっていました。

――Recursionを始めたのはどうしてですか?

本気でエンジニアを目指す方々のための学習プラットフォームサービスだと感じたことがきっかけです。

2年前からエンジニアを目指し、本格的に学習を始めました。その時使った某学習サービスは、どちらかというとゲーム感覚に近く、コードを書く楽しさはあったのですが、コードにおける理論概念の理解が深まらず困っていました。

具体的には、「なぜデータ型というものがあるのか」「なぜ変数が存在するのか」といった基本的なことについて、理系ではなかった私にはさっぱり理解できませんでした。

他のサービスを試したり、効率よいプログラミング勉強法を探したりしているうちに、たまたまTwitterで発見したのがRecursionでした。

「初級」が無料だと知ったので、始めは無料のコースだけを試してみるつもりで始めました。しかし、実際に学習してみるとその内容がとても濃く、丁寧な理論概念の説明が豊富でした。まさに求めていたコンテンツプラットフォームだと感じたことから、継続を決意しました。

概論を理解した後コーディング問題に挑戦するスタイルが自分には合っていた

――Recursionを使ってどのように学習を進めましたか?

1日あたり、平日は5時間、休日は10時間かけて集中して勉強していました。個人的に、RecursionのI/O形式が自分に合っていたことが、集中できた要因の一つだと思います。

――どの言語を選択し、学習を進めましたか?

知り合いのエンジニアに相談したところ、最初は一つの言語に絞り、コードにおける概論とロジックの理解を深めることを優先にした方がいいというアドバイスがあったので、Python一択でした。Recursionでも最初はPythonまたはJavaScriptを選択するよう推奨していますよね。

概論とロジカルの理解が深まれば、言語スイッチングに対する柔軟性も高まるのでお勧めです。

――どの項目について一番注力して勉強しましたか?

全て注力していましたが、一つ挙げるとするならば、基礎知識(初級、中級、上級)に力を入れていました。概論を理解したうえで、コーディング問題に挑戦するスタイルが大変楽しかったです。

Recursionは特定のコースを進めるために、いくつかのコースを完結する条件がついています。それに従っていくことで、正しいステップを踏むことができたのが、効率よく確実に 力をつけることができたのだと思います。

――プロジェクトはどこまで学習しましたか?

Projectでは「User Card App」「Sliders」「Banking App」の3つを作成しました。ものづくりが好きだったので、それを可視化できる瞬間がモチベーションになりました。

プロジェクト3のBanking App まで進めた後は、フレームワークの概念理解を進めたく、Vueプロジェクトに挑戦しました。Vueのエコシステムを理解した時は、コードが影響する可能性の無限に感動すら覚えました。

――Recursionを始めたことで何か変化がありましたか?

自分の中の世界観が変わりました。コードを読む楽しさ、問題をコードで解決する楽しさ、何よりエンジニアとして働くビジョンの明確化ができたことは自分の中での大きな変化だと思ってます。

――Recursionを知人におすすめできますか?

もちろんです。本気でエンジニアを目指す仲間に一番使ってほしいサービスです。理工学部でなかった方々は特に、コンピュータサイエンスを体系的に学ぶことができるので強くお勧めします。

たまに友人から、なぜコンピュータサイエンスを学ぶ必要があるのかと聞かれることがあります。その答えとしては、将来エンジニアとして働く上で必要不可欠なスキルの一つに、「最適化した設計を元にコードでソリューションするチカラ」があり、このスキルは、コード概論、データ構造&アルゴリズム、OOP、OS、セキュリティ、インフラなど、網羅した知識を持つことが必要不可欠です。

書店で参考書を買い漁り、独学することも可能ですが、Recursionは、正しいステップをロードマップでサポートしているので、学習管理コストも減り学習進捗の可視化ができるので大変お勧めです。

大手ベンチャー企業の面接で高評価!備えて準備したこととは

――どういった方針で会社選びをしましたか?

ソフトウェアエンジニアとしてキャリアを積むことがまず重要だと思ったので、以下2点を会社選びの軸として就活を進めました。

  • 「社会課題にコミットできる事業」
  • 「エンジニアの成長環境」

選んだ企業のHPやスライドで、ビジョンやバリュー、エンジニアリングカルチャーなどを確認し、それに基づいて自分がどのようにコミットし体現するのかを言語化できるように整理して面接にのぞみました。

――だいたい何社ほど応募しましたか?また転職活動を始めてどれくらいで内定をもらいましたか?

面談は25社くらい応募しました。その中で面接をお願いしたのは8社です。8社の中から最終面接に進んだのは4社、そのうち内定を頂けたのは2社です。

活動を本格的に始めてから2ヶ月で内定をいただくことができました。

――選考の流れはどのように進みましたか?

ほとんどは書類選考から3回面接をして内定をいただく一般的な方法でしたが、書類審査の前にコーディング試験が実施されるケースや、インターンをするケース、5次審査まであったあと最終面接に進むケースもありました。

――コーディング試験はどのように実施されましたか?

外資系のG社では、コーディング面接が3回行われました。難易度はRecursionでいう上級コースの理解や最適なアルゴリズムの選出が必要なレベルでした。

U社では、技術課題が1回実施されました。内容はクラス図設計・オブジェクト指向に沿った機能作成です。

そして、T社ではコーディング課題が1回実施されました。数理問題に回答するもので、計算過程をコードで書きました。

――内定をもらえた一番の要因は何だと思いますか?

「ポテンシャルの高さ」が内定をいただけた理由だと思います。成長意欲が非常に高いことをアピールし、具体例として開発におけるコミット数の高さをお話しました。

実務未経験者がソフトウェアエンジニアに転職成功するためにやるべきこと

――実務未経験者が内定を取るために何かアドバイスしていただけますか?

未経験から内定を勝ち取るために最も大事なことは、面接を突破できる高いスキルを備えておくことです。

特にエンジニア採用においては、「技術面接・技術課題」選考が実施され採用者のスキルを確認します。そのような企業では経歴よりスキル重視であることが多いので、実は「経歴がない(少ない)未経験エンジニア」ほどチャンスが増えると言えます。

有名なTech企業ほど高い技術力は必要不可欠です。技術面接を理由に応募企業の範囲が狭くなって困ることがないよう「面接を突破できる高いスキル」を身に着けるべく努力しましょう。

私は主に以下の2つについて万全の用意ができれば、外資日系の大手・ベンチャー問わず行きたい企業へ挑戦できると思います。

  1. コンピューターサイエンス基礎のナレッジとロジックの理解を深めること。
  2. オブジェクト指向とデザインパターンの理解を深めること

これについてのベストプラクティスは以下です。

  • Recursionの初級から上級、オブジェクト指向、デザインパターンをクリアすること
  • 最適法の選出と具体的な説明ができるようにする。
  • 自分の書いたコードについて時間計算量と空間計算量を考察しBigO(計算量の表現方法)で説明できるよう練習すること
  • チーム開発経験を積むこと

また、開発経験による学びや自身が大事にしていることをお話するとよりPlusな印象を持っていただけるのではと思います。ちなみに私の2年間の開発経験は以下の通りです。

  • Recursionが提供する開発
    • Project1-3
    • Vueプロジェクト
  • 現職の実務開発
    • ExcelシステムのWeb移行(フルスタックエンド)
    • GUIアプリケーション開発(フロントエンド)
  • 個人団体によるチーム開発
    • HP制作(フルスタックエンド)
    • 認識アプリ開発(バックエンド・機械学習)

ソフトウェアエンジニアの転職に必要な職務経歴書の書き方

――実務未経験者が書類で気をつける点はありますか?

転職を希望する場合、まずは書類選考から始まるケースが多いです。しかし、聞いた話では約80%の応募が書類選考で落とされるそうです。

まずは最低条件である書類選考を突破するために、職務経歴書はしっかりと意識して作成することをお勧めします。以下は私が転職活動を通じて重要だと感じた点、学んだ点になります。ぜひ参考にしてみてください。

  • 未経験というキーワードを、できるだけ使用しないようにすること
  • 功績は数値で表すとよりインパクトや明確なイメージを持たせることができる(例:レンダリング速度30%向上にコミット)
  • 読みやすいデザイン、レイアウト作成を意識する

これらを意識したうえで、以下の項目を必ず記入することをお勧めします。

  • エンジニア要素を含むようなエピソード(例: VBAで業務効率を40%自担することができた)
  • スキル(言語、フレームワーク、DB、クラウドサービス、開発手法)
  • 資格取得(Recursionやその他のサービスや、資格取得したものを記述)
  • 携わった開発プロジェクト

開発プロジェクトは以下の例のように、開発名、期間、内容、担当、役割、ツールを1プロジェクトごとにまとめると良いでしょう。

(開発プロジェクトの例)

開発名○○
期間〇年〇月〜◯年◯月(◯ヶ月)
内容〇〇サービス名の特徴やシステムについて簡潔に説明〇〇
担当フルスタックエンド
役割要件定義、外部設計、内部設計、開発、テスト、デプロイAPI設計、構築
環境Linux ubunts, docker, Java, spring boot, MySQL, 〇〇、〇〇

※ベストな職歴の作り方は、英語で検索するとたくさんのリソースが紹介されているので、それを日本語に作り直すなど工夫しました。

もしスカウトサービスなどを利用する場合は、職務経歴書に書いたものと同じ内容を登録しておきましょう。私はこのやり方で200社から「気になる」やスカウトメッセージをいただきました。

Recursionのロードマップに沿って網羅することが転職成功への近道

――最後になりましたがソフトウェアエンジニアへの転職成功おめでとうございます。転職後の業務内容について差し支えない範囲で教えていただけますか?

自社サービスのWebアプリケーション開発に従事予定です。会社との契約で、給与明示や推測できる情報の共有が禁じられているため、こちらについては遠慮させてください。

――今後仕事としてどうしていきたいですか?

まずは、念願のソフトウェアエンジニア職を思いっきり楽しみながらキャリアを積んでいきたいです。そして具体的には以下についても考えています。

  • 美しい設計や、コードの可読性を極めたい
  • クラウドサービスを使用したスケーラビリティ設計が必要になってくるので、AWS学習も積極的に行いたい
  • 様々な開発プロジェクトへ挑戦し、問題解決力の高いエンジニアを軸としてキャリアを積んでいきたい

また、これらとは別に経済の勉強も始め、ゆくゆくは「経営に強いエンジニア」になるとさらにキャリアの幅も広がるかなぁなんて膨らましたり考えています。

また、個人団体で開発活動も続けているので、そこにコミットして社会的に何かしら影響を与えるOSSなどにもコントリビュートしたり挑戦したいなと思っています。

――Recursionを始めたばかりのユーザーにむけてアドバイスをお願いします。

ステップが進むと、分からない部分がたくさん出てくると思います。

そこを疎かにせず、自分の中で言語化できるように時間をかけてもいいので丁寧にキャッチアップすることをぜひ心掛けてください。そうすることが、活躍するエンジニアとして成長する1番の近道だと思います。

また、Recursionが提供するロードマップを参考に、全コースを体系的に、正しいステップで網羅していくことが、重要です。Happy Coding :-)!

――Johnさん、貴重な時間を割いていただいてありがとうございます。今後のご活躍をお祈りしています。