アメリカでバックエンドエンジニアとして内定獲得!コンピュータサイエンス学習開始から成功までの道のり

今回はアメリカにてバックエンドエンジニアとして内定を獲得したkwonさんに、プログラミングの学習方法や就職活動についてインタビューを行いました。

  • アメリカに留学中に現地で仕事がほしい
  • 未経験からバックエンドエンジニアを目指したい
  • コンピュータサイエンスを学習していきたい

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

Kwonさん

日本の大学では経営学を専攻。アメリカの大学でコンピュータサイエンスを学習し、見事バックエンドエンジニアとして現地で内定を獲得。

コンピュータサイエンスプロジェクトの楽しさにハマり1日8時間学習

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

大学では経営学を専攻していました。ラグビー部に所属していて、練習が終わって寮につくのが夜の9時とかだったので、学業に励む時間は正直あまりありませんでした。授業以外で補習する習慣もなかったです。

プログラミング経験については、1か月程Progateとドットインストールで学習していました。

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

プロラグビー選手としてのスカウトがもらえなかった事で一般企業への就職を考えたのですが、今までスポーツしかしてこなかった自分が一般企業に就職してやっていけるのか自信が持てませんでした。体育会系特有の忍耐強さだったりリーダーシップだったりは自分の強みだと思うのですが、それだけでは厳しいだろうと考えました。

その時は曖昧な知識でしたが、「コンピュータサイエンスを学べば自分のスキルとして自信をもって社会に出れる」と思ったので、コンピュータサイエンスを学びにアメリカの大学へ留学する事を決めました。

いきなり英語でコンピュータサイエンスについて学ぶことは難しかったので、Recursionを利用させていただきました。

――Recursionをどのように利用されていますか?

最初はJavaScript, Javaを選択して学習を進めました。C++を学校の授業で以前学習したことがあったので、上級コースはC++で進めていました。

1日の学習時間については、正直、コンピュータサイエンスプロジェクト3を完成させる前までは勉強時間に波はありました。でも、プロジェクト3の課題を完成させてからは習ったことを応用して何かを作るという事に楽しさを感じ、最低でも大体1日8時間はやっていたと思います。

――8時間はすごいですね。どのあたりまで進んでいますか?

コンピュータサイエンスの基礎「上級」コースやOOP(オブジェクト指向プログラミング)などを終え、今はDjangoのコースまで進んでいます。

特に注力して学習したのは、上級コースのデータ構造です。Recursionのコースでも中級に比べかなり難しくなる部分です。それまでEasyレベルの問題しかすらすら解けなかったのが、上級コースを学習してからは、Medium問題でも解けるようになり自分の実力がついてきたと実感しました。

――プロジェクトは進んでいますか?

コンピュータサイエンスプロジェクト5のブラックジャック以外はすべてやりました。そのうちいくつかはポートフォリオにさせていただいてます。私のポートフォリオはこちらです。

ポートフォリオの完成度についてはまだまだだと感じていますが、Recursion創業者の方にアドバイス通りに、GitHubのREADMEや、ポートフォリオサイトでの説明文などをしっかり書くようにしました。

ポートフォリオを作る際に意識したのは、RecursionのコンセプトにもあるようにThink for yourselfを実現するようにして作ったことです。

――Kwonさんのポートフォリオにはチーム開発で作成したプロジェクトもありますね。参加してみてどうでしたか?

今までチーム開発に2回参加させていただきましたが、参加するごとに一番成長できたと感じました。

特に他のメンバーの方が書いたコードを見たり、お互いレビューしあったりする事で、自分の中で新しい発見があり成長につながったと感じています。また、Gitの使い方についても学べたので非常に得られる部分が多かったです。

1回目のチーム開発で一緒のチームになったユーザーの方々とは、1ヵ月の期間が終わってからも実装できなかった部分を追加で実装するなど、交流を続けていることも非常に嬉しいです。

チーム開発の一番の醍醐味は、1ヶ月という短い期間で自分一人では到底作ることができないものでも、チームのみなさんと協力することで素晴らしい成果物を作る事ができるということだと思います。

また、Recursion内のプロジェクトを進めていく際にどのように設計していくのかわからないといった疑問があったのですが、チーム開発ではメンターの方がうまくタスクを分解してくださっていたり、締め切り日から逆算して優先的なタスクは何か判断してくださったりするので、それを間近にみて教わる部分は特に多かったです。

――コンテンツはどのように学習しましたか?

学習方法としては、レイナさんの学習方法を参考にさせていただきました。

また、コース内にあるエディタは飛ばさず課題をクリアしてから進めるように意識しました。詰まってしまった時には、Discordのコミュニティを見るとすでに同じような質問があったのでそれを参考にさせていただいたり、積極的に自分でも質問を書き込んだりしました。

コーディング問題に関しては、自分で解いたあとに必ず模範解答を見て、より良いコードの書き方は何か確認するようにしました。

――Recursion以外のサービスを利用しましたか?

アメリカ企業のインターンではコーディング問題が出ますから、その対策としてLeetcodeという競プロのサイトを利用しはじめました。

他には、最近、データベース、ネットワーク関連の本を読み始めました。アルゴリズムとデータ構造に関するものはRecursionでのカリキュラムに加えて本でも学びましたが、ネットワークやWeb周りの知識は最低限の事しか知らないので、これから本格的に学んでいく予定です。

コンピュータサイエンスを学習して、公式ドキュメントが難なく読めることに成長を実感

――Recursionを始める前と比べて何ができるようになったと感じますか?

Progateを終えてRecursionを始めたばかりの頃、コンピュータサイエンス基礎コース「初級」の機内食オーダーの問題で何時間も悩んでいたのを覚えています。

それからRecursionで初級、中級、上級を進めていくにつれて、以前よりもコードの可読性やDRYを意識するようになりました。Recursionを始める前は可読性やDRYなど考えず、とりあえず出力だけ意図したものが得られればと思っていたのでその点が大きく変わったと思います。

それにRecursionを始める前と比べ、公式ドキュメントを読んで理解できる部分が増えました。始める前は公式ドキュメントは難しく避けていましたが、Recursionでのコースを進めるにつれて公式ドキュメントに書いてある内容が理解できるようになってきました。

したがって、新しいフレームワークなどを学ぶ際の学習コストは以前に比べてかなり低くなったと思います。

また、今の大学ではコンピュータサイエンスを専攻していて、Recursionを利用してからは授業の内容をすぐ理解できるようになりました。わからない事があっても自分で調べて解決できる自走力がついたのがRecursionを始める前の自分と比べると大きく変わった点かと思います。

――今後どの分野を勉強していきたいですか?

仕事も主にバックエンド開発がメインなのと将来バックエンドエンジニアとして働きたいのでバックエンドをしっかりやっていきたいと思います。

特にデータベース、ネットワーク、Web周りの知識が足りないので補っていきたいと思っています。

バックエンド開発で内定獲得!チーム開発の経験を評価された

――Kwonさん内定獲得おめでとうございます!新しい業務の内容を差し支えない範囲で教えていただけますか?

在籍している大学と提携を結んでいる企業が主なクライアントで、C# .NETとSQLでのバックエンド開発がメインだと聞いています。

――採用試験ではどんなところが評価されたと感じましたか?

自分で何かを作っていた経験ですね。

特にチーム開発の経験や、ポートフォリオに載せていた成果物を評価してもらえました。

現地の方よりもやはり英語力では劣ってしまうので、自分を目立たせるためには何かしらの成果物がないと難しいと思いました。Recursionでコンピュータサイエンスの基礎を学習したこと、チーム開発に参加したことは、大きな評価につながったと改めて感じています。

――試験ではコーディング試験はありましたか?

Kwon

Recursionの中級コースを学習していれば解けるような問題が3問と、SQLの簡単な問題が1問ありました。

――書類や面接でどのようなことをアピールしましたか?

大学での活動とは別に自分が取り組んだ部分について特にアピールしました。

学校の授業だけでは、チーム開発やコンピュータサイエンスの基礎的な部分を完全に網羅することができなかったので、別でRecursionのようなサービスを使って学習を進めてきた事を特に強調して伝えました。

――試験において何を重視して確認されました?

プロジェクト > コーディング問題 > コミュニケーション > 人柄の順で重視されていたと思います。

――面接対策として準備したことや取り組んだことはありますか?

以前、RecursionのユーザーとしてセイトさんのYoutube動画に出演させていただきました。

この動画でセイトさんが指摘されているように、自分の考えがまとまっていなかったり、質問の意図に沿った答えができなかったりしていることがわかりました。自分自身の考えの浅さを思い知りましたね。

その際に色んな方々からフィードバックをいただいて、それを元に今回の面接では事前に受け答えのシミュレーションをしたり、いくつかの想定される質問に対しては自分の考えをまとめて整理したり、ある程度考えをまとめてから試験に臨みました。

Recursion初心者ユーザーへのアドバイス

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

優秀なユーザーはたくさんいますが、自分のペースでRecursionの学習ロードマップに従って継続的にカリキュラムを進めていけばいいと思います。

加えて、チーム開発に参加する資格があればぜひ参加したほうがいいと思います!

――Kwonさん、貴重なお時間を割いていただいてありがとうございました。これからのご活躍を期待しています。