今回インタビューさせていただいたのは、外資系のデータアナリストから投資銀行のソフトウェア開発者への転職を成功させたyutaさん。Recursionで効率よく学習することでスキルセットを増やすことができ、前職の給与水準を下げることなく転職することができました。
- エンジニアに転職したいが年収が下がるのが心配
- 効率よくプログラミングのスキルセットを増やしたい
- 転職を成功するためのプログラミングスキルの磨き方を知りたい
そんな方に、yutaさんの成功体験をお伝えします。
yutaさん
年収下げずに転職するためRecursionでプログラミングスキルを磨く
――yutaさん、インタビューをお受けいただいてありがとうございます。早速ですがまずは簡単な経歴を教えていただけますか?
高校までは日本にいましたが、大学からアメリカに留学し、学士号を取得しました。卒業後は日本に帰国し、外資系の金融情報機関において株式の業績予想データの分析をしていました。コードは業務の10%程でその他は、マニュアルなデータの更新・修正を行なっていました。現在は投資銀行のトレーディング部門でPythonのSoftware Developerをしています。
――大学では何を専攻していましたか?
大学では純粋数学を専攻してました。履修の大半は理論系だったので代数学の授業が多かったです。副専攻で応用物理学を履修していました。当時は仕事でプログラミングをするとは思ってもいませんでした。
――プログラミングの経験はありましたか?
プログラミングの経験は大学4年生のときに、統計学の授業を取っていたためRをやっていました。授業と並行して、機械学習の取り扱いが容易なPythonを一学期間独学でやっていました。大学時代にはPythonを少しかじった程度です。
――Recursionを始めたきっかけは何ですか?
Twitterで創業者のShinyaさんを見かけて、興味本位で初級を無料トライアルで始めたことです。始めた当初は、PythonのPandasを触ったことがある程度で、エンジニアに転職するとは思っていませんでした。
勉強していくうちにゲーム感覚で楽しめ、ここから知識を広げていきたいと思い、ロードマップがしっかりと確立されているRecursion有料版を始めました。また自学自習に重きを置くサービスでも、Discordでのサポートがあることや、コミュニティで仲間を見つけられることに魅力を感じたことも大きな理由です。
――どの言語を学習しましたか?
Recursionで選択した言語は、PythonとJavaScriptです。だいたいPythonが70%、JavaScriptが30%くらいだと思います。基本的にはPythonで上級まで進め、並行してJavaScriptでプロジェクトを行なっていました。
どれをどのようなタイムラインで学習するかというのは人それぞれではありますが、モチベーションを保つというのであれば、言語を一個に絞ってやるというのもありだったかもしれません。後述しますが、私はPythonでの仕事を当時は探していたので、良いバランスだったのかと思います。
――1日の学習量はどれくらいでしたか?
平日は大体仕事が7-8時に終わり、3時間、休日は1日休みが取れる時は大体6時間程していました。
ただ勉強をしていくことで気をつけたことは、「何もしない日を作らないこと」です。これは、YouTubeでJeffryさんがおっしゃっていて、私もまったくその通りだと思い意識していました。プログラミングは特に習慣が途絶えたらまた始めることが難しくなってしまうので、1日1日を大切にすることが重要だと思います。
――どれを一番注力して勉強しましたか?
個人的にはコンピュータサイエンス基礎初級・中級・上級に注力して勉強しました。これに加えフロントエンドの知識を蓄えるためにコンピュータサイエンスプロジェクト1-3を勉強しました。短期的にジョブチェンジをしたいという気持ちが強かったのでこの順序で優先しました。転職後は特にFrameworkの勉強(React)、OOPの勉強を始めています。特にOOPは内容も詰まっていて、僕の中ではお気に入りのコースです。
――Recursionを始める前と後で、何か変化を感じられましたか?
Recursionは自学自習を尊重するサービスなので、基本的には自分の頭で考え、手を動かしながら学習を進めます。自力で取り組むうちに、「プログラミングに対する抵抗が減ってきたこと」、「自力でプロジェクトを考えて取り組む力がついたこと」の2点が変化としてあげられます。特にプロジェクトでは、ある程度のガイドラインが与えられた中で自分で進めていくというスタンスが、自分にとってもバランスがよくやり切る力が身につきました。
――Recursionを知人におすすめできますか?
はい、エンジニアを目指す過程で、色々な書籍やサービスに手を出してしまいがちで、特に新卒でエンジニアとはかけ離れた仕事をしている人は結構ジョブチェンジに向けて焦ってしまうと思います。何すればいいかわからないという人は、騙されたと思ってRecursionのカリキュラムに沿って基礎をを試行錯誤しながら学んでいくことがとても近道になると思います。何よりコミュニティがあることによってモチベーションを高く保てると思います。
転職で年収を下げないためにスキルセットを明確にしアピール
――転職活動についても教えてください。会社選びはどういう方針にしたのですか?
条件としてあったのは以下です。
- 前職の給与水準を落とさないことと、
- 数年の経験があった金融業界でのPythonのエンジニア
一つ目の給与水準を落とさないというのは、特に2社目の転職では大切になってくる点だと思います。焦りから「年収を下げてもすぐに転職したい」という気持ちもありましたが、ぐっと堪えて、自分にとって最善の機会を探していました。隣の芝生は青いという言葉がありますが、転職するからにはステップアップを目指すという心構えで臨むことが大切だと思います。
また金融業界を志望した理由として、一社目の金融業界を気に入っていたので引き続きこの業界に残りたかったことと、ただでさえ職務経験のない人がエンジニア転職というのはハードルが高いため、せめて同じ業界内で転職する方が転職の選択肢が広がると思ったことでした。
また短期間の転職活動において、自分のスキルセットを明確にすることでアピールポイントに重みが出たと思います。僕の場合はプログラミングのスキルセットをPythonに絞り、他の言語はレジュメにすら載せずに提出していました。
――何社応募して、通過率はどれくらいでしたか?
書類選考で30社ほど、一次面接20社ほど、二次面接で15社ほど、最終面接4社で内定が2社でした。内定をいただいた会社は人事面接1回、チームとの面接が4回(うちコーディングが2回)ありました。
――転職活動を始めてどれくらいで内定が出ましたか?
最初の2ヶ月くらいはフィットする会社を求人で見つけるたびに応募するという感じでしたが、最後2ヶ月は自分からかなり求人情報を探して就活をしていました。
――採用者様から興味を持ってもらえたポイントはどこだったと思いますか?
僕の場合、データアナリストでありながら金融業界での経験、複雑なワークフローを簡潔に説明できたことかと思います。
なぜこれができたかというと、業務中はほとんどコードは書いていませんでしたが、社内Githubを閲覧して、コードと社内document/JIRAのタスクを照らし合わせながら、エンジニアの人がどのような仕事をしているかを業務時間外に見ながら実際に手を動かしたことでよりテクニカルなワークフローを勉強してきました。
ここで得た知識を日常の業務の説明に織り交ぜて話せたことはかなりのアピールポイントになりました。非エンジニアでも考えようによっては、情報が得られる機会はかなりあると思います。
――内定をもらえた一番の要因は何だと思いますか?
まず一つ目は、前述の通り、現職の業務を端的に説明できたことだと思います。これは現職の業務に限らず、自分で取り組んでいるProjectでも通用すると思っていて、自分で下したアクションに対して根拠を持って説明できる能力・ポテンシャルは評価してもらえたと思います。
エンジニア転職したいプログラミング初学者へのアドバイス
――転職成功おめでとうございます。今後は仕事としてどうしていきたいとお考えですか?
仕事が落ち着いたら新しい言語(静的型付け言語)を習得して、スキルセットの幅を広げ、最終的にはフルスタックにシフトしていきたいです。またドメイン知識を深めることで、金融業界で求められるスキルセットを増やしていきたいです。
――最後にRecursionを始めたばかりのユーザーがやっておくべきことについてアドバイスいただけますか?
最初は焦りからいろいろなプログラミング言語への誘惑があるかと思いますが、中期目標を設定し、プログラミング言語を一つに絞り、カリキュラムに忠実に取り組むことが一番の近道だと思います。その中でも必須なのは上級まで同じ言語で一通りやって、コンピュータサイエンスプロジェクトを間違っててもいいから完成させることが大切です。ある程度基礎の力がついた時に新しい言語を始めた方がスムーズに進められると思います。
転職活動においては、未経験者が”内定”を取るということでしたら、まずRecursionの初級・中級・上級をしっかり取り組むことです。プロジェクトをある程度まで進めることも大事でしょうね。
そして、エンジニアの友達・同志・メンターを見つけることでモチベーション・メンタルを保つことと、コーディング面接の対策に関しても一緒にやる人を見つけることが重要だと思います。
僕も週に一回社内で仲のいいエンジニアとLeetCodeの問題を出し合い、模擬面接のようなことをしてました。相手に説明することで、意外と自分では分かっていなかったようなことにも目がいくようになりました。
最後に、プログラミングは楽しむのが一番ですが、成長するためには苦しみを経験するのが成功への近道だと思います。技術の知識は開発やバグの処理に苦しんだ数に比例して力も付きますし、Recursionは苦しめるギリギリとめげないギリギリを攻めているので信じて取り組めば取り組むほど力がつくと思います。
――yutaさん貴重なお話を聞かせていただいてありがとうございました。