今回は実務2年目でエンジニア転職し、年収アップに成功したkeisukeさんに、プログラミング学習方法や、転職活動での具体的な戦略についてインタビューを行いました。
- 現役エンジニアからのキャリアアップを目指したい
- エンジニアの経験年数が少なく転職するか迷っている
- キャリアアップに何を学習すれば良いかわからない
そんな方にkeisukeさんの成功体験をお伝えします。
keisukeさん
商学部を卒業し、SESに就職し9ヶ月間テスターを経験。その後、別の企業へ入社し、Ruby on RailsとVue.jsを使い自社サービスの機能拡張を担当。バックエンドエンジニアとして転職を成功させ、年収アップを実現。
目次
実務2年目からのエンジニア転職を見据えてコンピュータサイエンスを学習
――keisukeさん、インタビューをお受けいただいてありがとうございます。早速ですが簡単な経歴と、プログラミング経験の有無について教えていただけますか?
現役エンジニアなので実務未経験ではありません。
エンジニアになる前に1年ほど勉強していて、現職は2年経験があるので合計3年の経験ですね。言語としてはRuby(Ruby on Rails)が3年、JavaScript(Vue.js)も2年ほど経験があります。
大学は商学部でした。なのでプログラミングに関しては大学では全く習いませんでした。高校の時理系を選択していればとかなり後悔しています。
大学を卒業した後はSESとして9ヶ月間テスターをしました。その後は現職に入社してRuby on RailsとVue.jsを使い自社サービスの機能拡張を主にやってきました。
――Recursionを始めたのはどうしてですか?
コンピュータサイエンスの学習をしたかったからです。
当時から「開発の仕事で困る」みたいなことは特段なかったのですが、今後を見据えたときに基礎であるアルゴリズムやデータ構造などは抑えておく必要があるなと思い、サービスを探していたときにRecursionの創業者の方がテストユーザーを募集していたので応募しました。
――Recursionをどのように利用しましたか?
アルゴリズム、データ構造に1番力を入れて学習しました。次点でOOP(オブジェクト指向プログラミング)やデザインパターンですね。
特にコンピュータサイエンス基礎「上級」のデータ構造、木構造は最高でした。これらを学ぶことでプログラミングで表現・実現できることが格段に増えました。難しいという意見もありますがぜひ完遂して欲しいです。
コンピュータサイエンスプロジェクトは1〜4と6を完成させました。5のBlack Jackは難しく、途中で断念しています。
プロジェクトは上述したデータ構造やOOP、デザインパターンを試す良い機会だったので、結構楽しんでやってましたね。
――Recursion以外にも何かサービスを利用していますか?
Leetcodeというサービスをコーディング試験対策として使っていましたが、それ以外は特に使っていません。
基本的にはRecursionで学んだ内容をアウトプット、またRecursionでインプットしてアウトプットの繰り返しでした。
UNIXやネットワーク周りに関しては、本を読んで学習しました。
などです。Recursionでこれらのコースが用意されるのを楽しみにしています!
――エンジニア関連の資格は取りましたか?
資格は何も持っておりません。
もちろん資格は持っていて無駄ではないと思いますが、僕は資格取得のために勉強するよりも物作りを通じて勉強する方が性に合っていると思ったからです。
――keisukeさんは、ポートフォリオを用意していらっしゃいますか?
Recursionのプロジェクトの他には、インターネットに公開してはいませんが「HTMLとCSSを自動で開発するサービス」を作りました。
https://github.com/keisuke713/grid_layout_generator
html/cssでよく使われるgridというレイアウトをユーザーが好きなように配置して最終的にそれをプログラム側でコードに変換するというサービスです。
コンピュータサイエンスを学んだことで、転職に必要な即戦力をアップ
――Recursionを始める前と後ではどのような変化があったと思いますか?
作れるシステムの幅が広がった気がします。
Recursionを始める前はよくある掲示板などしか作れませんでしたが、Recursionでデータ構造を学んだおかげで作れるシステムや機能が格段に増えました。ちなみに上記のサービスもDOM操作はもちろん木構造・キューを使ったりOOPやデザインパターンを意識して開発をしています。
Recursionは僕にエンジニアとしての引き出しをたくさん与えてくれたと思います。
――Recursionを友人や同僚におすすめできますか?
もちろんおすすめできます。
まず1つは、「Recursionでは特定のプログラミング言語やフレームワークに依存しない事柄を学習できること」です。例えば、アルゴリズムやデータ構造などです。言語やフレームワークが異なっても、使われるアルゴリズムやデータ構造は基本的には変わらないと僕は思います。
それらを学習することによって、言語やフレームワークに左右されることなく、安定して力を発揮することが出来るようになります。
もう1つは、「コミュニティで気軽に質問できること」のも大きな魅力だと思います。僕もそうだったのですが、初学者って本当に何も分からないと思います。
どこでどう質問したら良いのか分からなくて結局嫌になりプログラミングそのものを諦めた人を何人も知っています。その点Recursionはコミュニティがあり分からないことは何でも無制限に質問できます。
また、どう質問すれば良いか分からないって人のために質問テンプレートもあるので安心だと思います。
以上の理由から僕はエンジニアを目指している人はもちろん、エンジニアになれたけどなんか仕事で詰まることが多いなって人もRecursionをぜひ使って欲しいです。
このクオリティで61ドル/月なのもかなり良心的だと思います。
キャリアアップで年収60万アップ!エンジニア転職成功の秘訣
――転職活動についてもお聞かせください。まずは、どういった方針で会社を選びましたか?
次の3点です。
- バックエンド開発で人気が出てきているGoやKotlinなどを採用していること
- 開発に関しての価値観
- 保守運用よりかはソフトウェア開発したかったので、新しく立ち上がったプロジェクトやサービスに携われること
特に二つ目の価値観に関しては譲れない条件でした。
具体的には、自動テストやレビューなどで全体の品質を担保する意識があること、プロダクトの機能の量だけでなく質(パフォーマンスや拡張性)にも重きを置いていることです。
カジュアル面談や企業の技術ブログでこれらを確認して合致しているなと思った企業を中心に応募していきました。
――転職活動を始めてどれくらいで内定をいただけましたか?
最初に内定を頂いたのは転職活動を始めて2ヶ月経過した頃だったと思います。有難いことに合計で3社から内定を頂きました。
――何を重視して確認されましたか?
現職でどんな価値を残したかですね。
特に上から与えられたタスクだけでなく、「自分で考えて何かしたことがあるか」を複数企業(大手、ベンチャー問わず)で聞かれました。
その点に関しては僕は自分で勝手に社内ツールを複数作っていたので割と評価されたと思います。
――選考の流れはどのように進みましたか?
多かったのは以下の流れです。
書類審査->一次面接(orコーディング面接)->二次面接->最終面接
――コーディング面接はどうでしたか?
アルゴリズムやデータ構造を問ういわゆる競プロに近い課題や、その会社で扱うプロダクトの簡易的なものを作るなどの問題でした。アルゴリズムやデータ構造に関しては、特にグラフや木構造に関する問題が多く出た気がします。
中にはRecursion内の問題と全く同じ問題が出てきてビックリしました。
――前の仕事に比べて給料はアップしましたか?
有難いことにUPしました!年収ベースで60万ほどです。
――転職後の業務内容の概要を差し支えない範囲で教えていただけますか?
まだ働いていないので分かりませんが、Go言語でAPIを作ったりインフラの整備と言われています。
Go言語でのAPI作成はもちろんインフラの経験も今後積みたいと考えているのでとても楽しみです。
――今後の展望などあれば教えてください
ソフトウェアエンジニアとして社会の自動化に貢献していきたいです。そして日本の労働環境を少しでも良くしていけるようなサービスを開発出来たら良いなと思います。
あとはGoogleやAmazonのような世界トップ企業で一度は働いてみたいです。
Recursionユーザー、実務未経験者へのアドバイス
――実務未経験者が内定を取るためにやっておいた方が良いことは何だと思いますか?
自分でソフトウェアを一から開発する経験を積むことです。
「教材に載っていたから作った」などというものではなく、自分で課題を発見して解決するところから作られたサービスは面接担当者から高い評価をもらえると思います。
それこそ現職や普段の生活で何か不満がある人は、それを解決するようなシステムを作るのが良いと思います。
――Recursionを始めたばかりのユーザーがやっておくべきことは何だと思いますか?
出来るだけアウトプットをした方が良いです。もちろんインプットも大事ですが、実際に使うことで「どういった場面で役に立つのか」「どう使うのがベストなのか」など様々なことに腹落ちすると思います。
真の意味で理解していると言えるようになるにはやはりアウトプットは避けては通れない道かなと。
あとはそもそも論ですが途中で辞めないこと、毎日続けることですね。スポーツなどと同じで数ヶ月でレベルアップするとかは、よほど地頭が良くないと無理だと思うので。
自分を信じて、自分のペースで続けることが一番大事かなと思います。
――keisukeさん、貴重なお話を聞かせていただいてありがとうございました。今後のご活躍を期待しています。