今回は、有名企業に未経験からフルスタックエンジニアとして内定を獲得したJumpeiさんに、どのようにプログラミングを学習し、どのようなポートフォリオを作成したのかについてインタビューを行いました。
- フルスタックエンジニアになるための条件が知りたい
- 未経験からソフトウェアエンジニアを目指している
- 有名企業から内定がほしい
そんな方にJumpeiさんの成功体験をお伝えします。
北海道大学大学院情報科学研究科メディアネットワーク専攻卒業。TBSテレビに入社し、独学でプログラミングを学習し、有名企業へフルスタックエンジニアとして転職。
Jumpeiさんのインタビューについては、こちらの動画でも紹介しているので是非ご覧ください。
目次
コンピュータサイエンスを学習して、独学のモヤモヤをスッキリ解決
――Jumpeiさん、インタビューをお受けいただいてありがとうございます。早速ですが、まずは経歴とプログラミング経験について教えていただけますか?
北海道大学大学院情報科学研究科メディアネットワーク専攻卒業で、その後は株式会社TBSテレビに入社しました。大学は情報系で、メディアネットワーク専攻として最終的には5Gに関する研究をしていました。プログラミングについては大学の授業でやった程度です。
――Recursionを始められたのはどうしてでしょうか?
エンジニアとして転職を考えていて、独学でPython、Go、Javascriptを学習していましたが、コンピュータの知識に関して体系的に学習したかったのに加えて、デザインパターンやオブジェクト指向についての理解や基礎を固めたかったからです。
――Recursionをどのように利用されましたか?
平均して1日2時間くらい学習しました。言語はPythonを選択していましたが、Javaも少しRecursion内で触れました。私の場合は、オブジェクト指向とデザインパターンを学びたかったので、Javaの知識が必要だったからです。
――エンジニアを目指す方にRecursionはおすすめできますか?
かなりおすすめしたいです!その理由は、結局一番大事なのは「開発スキル」だと思うからです。
これは独学を続けてきた人なら分かる感覚かもしれませんが、どんなにプログラミングを勉強し、どんなに周辺知識や自作アプリを作っても、「本当にこのコーディングが正解なのか、もっといい書き方があるんじゃないか?」というモヤモヤがずっとあるんです。
Recursionは、そんな人に正解やヒントを教えてくれているサービスだなと感じています。今まで何となく書いていたクラスって実はこうなっているよ、デザインパターンってこういう風にするとリファクタリングしやすいよ、など私にとっては目から鱗でした。
また、コンピュータサイエンスプロジェクトやチーム開発も提供されているので、基礎から応用まで幅広く学習できるサービスだなと感じます。
このRecursionを基軸としつつ、他の学習素材も織り交ぜながら勉強していくのが最適ではないかなと思います。
――Recursion以外にネットワークなどWeb周りの知識も勉強しましたか?
ネットワーク、データベース、セキュリティ、アルゴリズムなどは主に本で学びました。興味があれば、以下の本を参照してください。
- ネットワークはなぜつながるのか
- マスタリングTCP/IP 入門編第5版
- Web を支える技術
- 安全なWebアプリケーションの作り方
- SQL 第2版
- 暗号技術入門 第3版
- CPUの創りかた
- プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
- 新しいLinuxの教科書
などです。プログラミングに必要な周辺知識についてはUdemyで、コンピュータサイエンス関連はRecursionにお世話になりました。
――何かエンジニア関連の資格を取りましたか?
何も取っていません。今だとAWSの資格とかは評価されるかもしれませんが、正直、資格勉強は時間がもったいない気もします。
フルスタックエンジニアとして内定を獲得したJumpeiさんの転職活動
――Jumpeiさんの転職活動について教えていただけますか?まずは、どのような方針で会社選びをされたのでしょうか?
具体的には、GoかPythonで開発をやりたいと考えていて、またクラウドもしっかりIaCを意識しているような環境、技術力がある会社かどうかを一番優先的に考えていました。
一方で年収面に関しては、現年収より下がることは承知の上でしたが、あまり下げすぎたくはありませんでした。なので、技術スタックと年収を天秤にかけていた感じです。
日本だけかもしれませんが、やはり一度大幅に下がってしまった年収を取り戻すのはかなり厳しいと思います。
――採用試験はどのような流れで進みましたか?また、書類や面接でどのようなことをアピールしましたか?
書類選考→カジュアル面接→1次選考→最終面接のように進みました。
書類ではとにかく「いかに自分が努力をしてきたか」をアピールするため、Githubのアカウントはもちろんのこと、自分がこれまでに学習した教材を一覧で書きました。面接では「今の会社でいかに積極的に仕事に取り組んできたか」をアピールしました。
私の場合、今の会社ではエンジニアというよりもマネジメント中心の仕事になってしまっていたので、自分で積極的にITの仕事を取りに行ったり、自分でプロジェクトを立ち上げたりして、半ば無理矢理エンジニアの仕事をやっていました。そういった積極性や自走力などを面接ではアピールしました。
――採用試験において何を重視して確認されたと感じていますか?
経歴(開発経験あるか、技術スタック、技術力)をもっとも重視されているかなと思います。実際、コミュニケーションや自走力は評価していただけたところもありますが、数社は経験不足を理由に落とされたイメージがあります。Recursionや今の会社でも何でもいいので、なるべく経験値をつけた方が良いかもしれません。
――年齢は転職活動時に影響あると思いましたか?
日本だと年齢は大いに影響あるかと思います。特に未経験の場合は若い方が有利でしょうね。
やはりスキルレベルが同じの志願者がいた場合は「若い人の方が可能性あるよね」となるのは、日本の労働市場では特に顕著かなと思います。私も現在29歳で業界的には未経験でしたが、同じ努力や同じ熱量であっても、あと数年遅れていたらかなり厳しかったなと感じています。
とは言っても、そこは自分次第であったり、年収面を考慮しない、などの色々な要素や運も絡んでくると思いますので何とも言えないです。
一方で、スキルが高い方ならあまり年齢は関係ないと思いますし、むしろどんな年齢になっても「その時の技術を追いかける熱量」があれば何歳でも転職可能かと思います。
――内定をもらえた一番の要因は何だと思いますか?
熱量とコミュニケーションスキル、あと現在の仕事でやってきたこと、が一番評価されたかなと思います。現在の仕事での積極性や新しい技術を常に追いかける意識、それに伴う自走心、コミュニケーションスキルなど総合的に判断して頂いたかなと思います。
実務未経験者がエンジニア転職で成功するために、やっておくべき3つのこと
――実務未経験者が内定を取るためにやっておいた方が良いことがあったらアドバイスしていただけますか?
自分自身でできることは
- 今の仕事でできることを考え積極的に取り組むこと
- 何を目指しているかを意識した努力をすること
- 転職用のポートフォリオを作ること
の3つかなと思います。
今の仕事でできることを考え積極的に取り組むこと
まず、今の仕事をどんな姿勢でやってきたかがかなり大事でしょう。例えば自分のITスキルを使って「こんな提案をしました」「こんなアクションを起こしました」という経験があれば強いでしょうね。
これは私の感覚なのですが、日本のIT企業は積極性があるエンジニアを求めていると感じています。具体的には「言われた通りのことしかやらないエンジニア」と、「自分で色々と考えて提案や発言ができるエンジニア」だと後者が魅力的に映るでしょう。
日本の環境で転職する場合、「自分で考えて積極的に行動できるエンジニアです」ということを上手くアピールできればかなり高評価になると思います。
何を目指しているかを意識した努力をすること
努力面に関してもやはり重要ですが、闇雲に努力をするよりも「開発の場面で使用するスキルセットは何か?」というところを意識して努力をすべきだと思います。例えばバックエンドをやりたいという場合は、単にプログラミングを勉強するのではなくて、Recursionなどを通してアーキテクチャやデータベースのことも勉強するとか、ネットワークのことも勉強するとか、自分が何を目指しているのかを意識した努力をした方がいいと思います。
また、表面上の勉強だけにとどまらず、具体的な仕組みはどうなっているのかまで学習できれば、かなり高く評価されると思います。表面上の学習だけだと、面接時にそれっぽいことは言えるのですが、深く突っ込まれると答えられなかったりするので、「どれだけ深く技術を理解できているか」も問われると思って学習すべきと思います。例えば並列処理って具体的にどうなっているの?とか。
それにプラスして最新の技術も勉強しているとかなりアピールになるでしょうね。例えば、フロントエンドならTypescript、インフラならkubernetesとかです。
転職用のポートフォリオを作ること
最後にポートフォリオについてですが、人に見せることを意識して作ることをおすすめします。私は自分の作りたいアプリを自由に作っていただけでしたが、もっと見せることを意識してアプリを作るべきだったかなと思っています。
米国株売買判定ツール : https://github.com/jumpei00/gostocktrade
今、Githubのページを元に企業の人が声をかけてくれるサービスなどがあったり、Githubを利用した採用が多くなったりしています。したがって、自分のGithubのページはなるべく充実させ、人に見られているという意識でポートフォリオを作るといいかと思います。
また、ただ作るのではなくてCI/CDを意識した作りになっているといいでしょうね。例えば「マージをきっかけにCIツールが走り、デプロイまで自動化させてます!」だと、採用側は「おおっ!」と絶対になります。
某有名企業へフルスタックエンジニアとして転職成功
――最後になりましたが、内定獲得本当におめでとうございます!Recursionユーザーの成功は創業者としてとても嬉しいです。新しい業務内容を差し支えない範囲で教えていただけますか?
Goでのバックエンド開発を担当します。また、インフラの強化、ビックデータを用いていかにサービスを大きくできるかなどの業務だと聞いています。
――今後の展望はどのようにお考えですか?
フルスタックエンジニアとして主にバックエンド、インフラ、少しフロントエンドなど幅広く活躍できる環境で働かせて頂くので、まずはバックエンドをしっかりやりつつ、インフラに関してもスキルを高めたいです。
特にバックエンドはGoであったり、アーキテクチャはマイクロサービス化をしていたりと、モダンな技術やアーキテクチャに触れることができるので、いかに自分自身がスキルアップできるかという意識でいます。
また、会社としても0→1のフェーズから1→100のフェーズになってくるので、よりサービスを大きくするためにどうすればいいかという視点でも仕事をしたいと思います。
――Jumpeiさん、貴重なお話を聞かせていただいてありがとうございました。今後の活躍を期待しています。