ハードウェアエンジニアからソフトウェア開発者への転職を成功させる秘訣とは?

今回はハードウェアエンジニアからの転職を成功させたNoriさんに、どのようにプログラミングを学習し、どのようなポートフォリオを作成したのかについてインタビューを行いました。

  • 異業種からソフトウェアエンジニアに転職したい
  • ハードウェアエンジニアからソフトウェアエンジニアへ仕事を変えたい
  • ポートフォリオを参考にしたい

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

Noriさん

Recursion歴2年半。大学では計算化学を専攻し修士号取得。卒業後はハードウェアエンジニアとして産業機械メーカー、総合電機メーカー、医療機器メーカーでの機械設計職を歴任。前職の待遇等に不満はなかったがソフトウェアエンジニアとしてのキャリアを目指し転職。

Noriさんが開発したソフトウェアについては、こちらの動画でも紹介しているので是非ご覧ください。

ハードウェアエンジニアからの転職を目指して、コンピュータサイエンスを学習

――Noriさん、インタビューをお受けいただいてありがとうございます。早速ですが簡単な経歴と、プログラミング経験の有無について教えていただけますか?

大学の専攻は計算化学で、大学院卒業後は、ハードウェアエンジニアとして産業機械メーカー、総合電機メーカー、医療機器メーカーでの機械設計職を経験しました。プログラミング経験は大学院の研究でFortranを使って数値計算した程度です。

――ハードウェア関連のエンジニアをされていたのですね。Recursionを始められたのはどうしてですか?

転職を目指していたわけではないのですが、独学でプログラミングを学習していました。今から2年半ほど前の話です。プログラミングを学習できるサイトを見つけては色々と試していたところ、Twitterのタイムラインに、「Recursionがテストユーザーを募集している」というツイートが流れてきました。

プログラミングだけではなく、コンピュータサイエンスを学べるという点に惹かれ、テストユーザーとして応募したのが始めたきっかけです。

コンピュータサイエンスを学習し、木構造を可視化するソフトウェアを開発

――どのようにRecursionで学習を進められましたか?選択した言語に一番注力したか教えてください。

Recursionでは最初に選択するプログラミング言語について Python か JavaScript を薦めていましたから、最初は Python で学習しました。

その後は、JavaScript、C++と広げていきましたが、コンピュータサイエンスを学習すると言語の種類はあまりこだわる必要がないと思いました。C#、Swift、Go などにも手を出しましたが、Recursionでコンピュータサイエンスの基礎を1周していると、新たな言語習得にそれほど労力を払わなくてすんだからです。

――コンピュータサイエンスの基礎コースではどの項目に注力されましたか?

一番注力したのは上級コースにある「データ構造」です。連結リストや木構造の考え方がとても面白かったです。かなりハマりました。

最初は、要素がただ横に並んでいるだけの配列から、木構造の形をイメージするのが難しかったです。それで、その構造をビジュアル化して見ることができればもっと理解しやすいのではないかと思いました。

――その延長で木構造を可視化するライブラリを開発されたのですね。

私が書いたNoteの記事を見ていただけると、ライブラリ開発に至る過程について詳しく説明しています。

ただの自己満足にならず、より実践的に開発するためにRecursionの開発者であるJeffryさんから話を聞き、木構造を可視化する付加機能の開発に挑戦しました。

RecursionではOSS開発にチャレンジしてみることを推奨されていました。何か挑戦してみようと思いましたが、ただ自己満足で開発するのではなく、誰かの役に立つものを作りたいと考えました。

それで、より実践的に開発するためにRecursionの開発者であるJeffryさんから話を聞き、木構造を可視化する付加機能の開発に挑戦しました。

木構造の可視化は、初めてRecursionで「二分木」を勉強したときに欲しかった機能でしたので、Recursionで使っていただいてとても嬉しく思います。

Recursionでの学習の伸び率とアウトプット量を評価されエンジニアとして転職成功

――Noriさんの転職活動についても教えてください。まずは会社選びはどのような方針にしましたか?

会社選びの方針は、自社開発であり、そのプロダクトに対して興味が持てるかという点を重視しました。ただ、私自身が業界知識をほとんど持っていないため、少しでも興味が持てる企業には応募を出して、その企業から直接話を聞いてみることにしました。そうすることで業界知識を得ると同時に、自分が本当に興味を持っているものは何なのか洗練されていったと思います。

現職でのハードウェアエンジニアとしての業務に大きな不満はなかったため、時間がかかっても本当に興味があり、待遇も比較的良いところを選びました。

――転職活動を始めてどれくらいで内定が出ましたか?

1月ごろからポートフォリオを作成したり、転職に向けて必要な準備をしたりし始め、本格的に書類選考に応募し始めたのは4月ごろです。最初に内定をもらったのは7月上旬でした。

――ポートフォリオの完成度、意識したことを教えていただけますか?

ポートフォリオサイトはこちらです。

どちらかというとフロントエンドよりもバックエンドが希望だったのと、IoT等にも興味があったので、それらに関連したポートフォリオを作成しました。

完成度としては、作ろうと思った時点で考えていた機能追加はほぼ実装できました。

ただ、作成中に様々な課題が見つかったため、未経験エンジニアとしては多少できるものの、実務レベルにはほど遠いと感じています。

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

  1. 書類選考
  2. コーディングテスト
  3. 一次面接
  4. ライブコーディングテスト+二次面接
  5. 最終面接

という流れで進みました。

――何を重視して確認されましたか?

ポテンシャル面を特に重視されました。

他は、コミュニケーション=人柄 > 経歴 > Project >ブランク の順ではないかと思います。

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

主に人柄とポテンシャルの面で評価されました。特に、いかに速くキャッチアップできるかという点で、自己学習する習慣があるのか、プログラミング学習開始時からどれくらいの伸びがあるのかなどを見ていたと思います。

Recursionで学習した知識では、そのアウトプットの多さが評価されていたと思います。

エンジニアへの転職を見据えて開発力を身に付けたいならRecursion一択

――実務未経験者が内定を取るためにやっておいた方が良いことは何かありますか?アドバイスお願いします。

書類選考や面接を受けて、実務にたいして実力がどれくらい乖離しているかを把握することだと思います。

乖離しているのであれば、それをすぐにキャッチアップできそうな姿勢をポートフォリオやコーディングテストで示すことに注力したほうがいいと思います。

同時に、業界の知識も得られますし、逆にその中でポテンシャルを評価され、希望の企業へ転職できるかもしれません。

――Recursionを始めたばかりのユーザーがやっておくべきことは何でしょうか?

時間がかかってもすぐに答えを見ずに自分で解くことが大切だと思います。ただ転職するだけでなく、希望の職種や好待遇のエンジニアとして転職するには、自走力も大事です。

その時は効率があまりよくない回答だったとしても、試行錯誤した過程や調べた知識は、後になって役立つことがあるはずです。一見すると遠回りかもしれませんが、確実に自分のスキルとして身に付けることで、自分が希望する転職への近道になります。

特に、開発は絶対的な答えのない仕事なので、こういった答えを模索する能力や経験は重要です。

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

もちろん、Recursionは友人や同僚にもおすすめできるプロダクトです。ベータ版から参加しているので贔屓目に見てしまう部分もあるかもしれませんが、学習のモチベーションを維持しつつチームで開発できるまで経験したい、という目標があるならRecursion一択だと思っています。

Recursionには、

  • コミュニティ内で質問できること
  • アウトプットする場が多いこと
  • チーム開発という、基本的に業務内でしか経験できないことが経験できること

という特徴があるからです。

私自身はチーム開発に参加はしていませんが、チーム開発メンバーのレベルが非常に高く、モチベーションが皆高いのでかなりの刺激になると思います。

――転職後の業務内容の概要と今後の展望をお聞かせください。

転職後の業務は、大規模データの高速データ処理のためのインフラ構築、アルゴリズム改善などと聞いています。内定先のプロダクトは、医療関連のソフトウェアであるため、自身のスキルアップがプロダクトの改善に貢献し、プロダクトの改善が人の健康や命にかかわります。まずはとにかくキャッチアップすることを重視したいと思います。

――Noriさん、貴重なお話を聞かせていただいてありがとうございました。Noriさんのこれからのご活躍を楽しみにしています。