今回はアメリカのスタートアップでソフトウェアエンジニアとして働いているShokiさんに、アメリカでエンジニアとして就職するために、どのような準備をしたのか、就職活動を乗り切るための戦略を教えていただきました。
- アメリカでソフトウェアエンジニアとして働きたい
- 海外での就職対策に興味がある
- プログラミングの学習方法が知りたい
そんな方にShokiさんの成功体験をお伝えします。
Shokiさん
文学部英文学科卒業後にプログラミングを学習開始。コンピュータサイエンスの学位を取得し、2年でアメリカでエンジニアとして就職。現在はバックエンドエンジニアとして活躍中。
目次
アメリカで就職したいならコンピュータサイエンスの学位が必要
――Shokiさん、インタビューをお受けいただいてありがとうございます。早速ですが簡単な経歴と、プログラミング経験の有無について教えていただけますか?
大学の専攻は文学部英文学科で、特に英語教育を専門に学びました。プログラミング経験については、3ヶ月ほどHTML/CSS、 JavaScriptをウェブサイトの模写、オンライン教材(Udemy)など使って独学しました。
正社員としての経験はありませんが、大学在学中に、アメリカに留学(1年)、ベトナムでインターンとしてスポーツ大会の企画、運営 をしました。
――Recursionを始められたのはどうしてですか?
アメリカでエンジニアとして就職したいと思った時、条件として挙げられるのが「コンピュータサイエンスの学位を持っていること」です。新卒であれば、コンピュータサイエンスの学位を持っていないと、面接さえ受けられないことがほとんどです。
それを知っていたので、University of the Peopleというオンラインの大学に通っていましたが、コンピュータサイエンスは非常に難しい分野であり学習の仕方に悩んでいました。
そんな時、Recursionユーザーの皆さんがコーディング問題やソフトウェア開発について呟いているのを見ているのを見かけました。「これならコンピュータサイエンスを手軽に学習でき、エンジニアとして必須の知識を習得できる」と思ったのが始めたきっかけです。
そして呟いているユーザーさんたちが、どんどんレベルアップしているのを目の当たりにしてその勢いに背中を押されました。
アメリカでの就職はポートフォリオで技術力とポテンシャルをアピール
――どのように学習を進めましたか?
言語についてはまずJavaScriptを選択し、初級から上級まで一周しました。その後、Javaでも一周しています。TypeScript、 Pythonは独学です。
学習していた時間は、1日当たり平均でRecursionは8時間、その他にUdemyを5時間の計13時間ほど毎日学習していました。
たくさんあるコンテンツの中でも、コンピュータサイエンスの知識を身に付けたかったので、データ構造と、OOPは特に力を入れて勉強しました。
僕はアメリカでのエンジニア就職を目指していたこともあって、面接のコーディングテスト対策にデータ構造の知識は必須でした。またOOPも、Javaのフレームワークを理解する時に必要性を感じたので、時間をかけて勉強しました。
――コンピュータサイエンスプロジェクトにも挑戦しましたか?
コンピュータサイエンスプロジェクトは、プロジェクト4のBanking Appまでやってみました。Recursionと並行して、自分で作成したいアプリのアイディアを考えて作成していたので、あまりプロジェクトは進められていないです。
――ポートフォリオを作成しましたか?完成度や作成時に意識したことを教えてください。
アメリカでエンジニアになるには、ポートフォリオサイトが必要です。多くの企業が面接時にスキルや経験などをまとめたサイトの提出を求めます。
私のポートフォリオはこちらです。このポートフォリオは、以下の構成になっています。
- 使えるスキル
- 今までの経歴
- 自分で作成したプロジェクト
- 自分のブログ記事
ポートフォリオ内のプロジェクトは見てもらえないだろうと思ったので、ポートフォリオだけを見ただけで、私がどのような人物か分かってもらえるように意識しました。
特に「技術力+ポテンシャル」を見てもらうために、下記のことを意識しました。
- ポートフォリオ自体にReactを使って動きをつけ、技術力があることを証明
- プロジェクトの説明は、なぜ作りたかったか、何が目的だったのかを明示
- 疑問に思ったことを調べて記事を書くことで、自分で考え自走できることをアピール(記事自体も見てもらえない前提で、何についてか、なぜ書いたのかをポートフォリオ内に明記)
――ポートフォリオを作成しましたか?完成度や作成時に意識したことを教えてください。
Progate、Udemyを利用しました。Udemyでは10講座ほど学習しました。
他には、
- Readable Code
- はじめて学ぶソフトウェアのテスト技法
- webを支える技術
- 達人に学ぶDB設計徹底指南書
- Clean Architecture達人に学ぶソフトウェアの構造と設計
- A Philosophy of Software Design
- Effective TypeScript
などの本も色々と読みました。
ネットワークやWeb周りの知識も本を読んで勉強しました。Rest APIとは何なのか、ログインのセキュリティの仕組み、ネットワークの仕組みなどです。
――Recursionを始める前と後で、何か変化がありましたか?
ドキュメントや他のエンジニアの方々の説明が分かるようになりました。ドキュメントや記事などで、当たり前のように使われているコンピュータサイエンス関連のワードを理解している状態になれたことで、勉強の速度=成長の速度が上がりました。
――Recursionを知人におすすめできますか?
できます!今でもフレームワークやアーキテクチャを使う時に、Recursionを通して学んだコンピュータサイエンスの知識が役に立っているからです。OOPやデザインパターンなどを理解していることでドキュメントを読むスピードが早くなります。
アメリカでエンジニアに就職するために必要なことは
――アメリカでソフトウェアエンジニアとして無事内定を獲得されたそうですね。おめでとうございます!アメリカでの就職活動はどうだったでしょうか。
アメリカで就職するために大事なのは、正しい情報を収集し、きちんと準備を整え、正しい方向へ向かってコツコツと努力することだと思います。僕はまず、情報の収集をすることから始めました。
アメリカの求人サイトで、ソフトウェアエンジニアに求められるスキルを調べたり、面接対策として質問集もチェックしました。
そのうえで、まずは経験を積むことが大事だと思い、インターンでも自分の学習している技術と合っているところであれば候補にいれ企業探しをしました。
就職活動を始めて4ヵ月ほどで今の会社から内定をいただくことができました。
――アメリカでの採用面接はどのように進むのですか?
一般的には書類選考があり、コーディング試験、面接と言う流れで進むと思います。
今の会社はスタートアップということもあり、一回のCEOとの面接+1ヶ月のインターンとしての試用期間で内定をいただけました。1ヶ月の試用期間中でどれくらいコーディングができるか見られました。
他の会社ではコーディング試験があったところもあります。
――コーディング試験のレベルはどうでしたか?
僕はLeetCodeなどをつかってアルゴリズム対策をしていましたが、Recursionのコーディング問題が解けていれば問題ないレベルだと思います。
――採用試験ではどのようなことをアピールしましたか?
書類では、自走力があることをアピールしました。具体的には自分が書いた記事を載せて、なぜ記事を書いたかなどの説明を書きました。
面接では、自分は考えて行動していると分かるように、なぜそうしたのか、思ったのかを言えるように準備しました。
また先ほどお話しましたように、アピールすべき内容をまとめたポートフォリオサイトを用意し、一目で思考過程や人柄などがわかるようにしていました。
アメリカの就活では、自分で考える力 > 人柄 > 経歴 > Project の順に重要視されているのかなと思います。
アメリカでエンジニアとして就職を目指す方へのアドバイス
――今の会社の業務内容と待遇を差し支えない範囲で教えていただけますか?
主にバックエンドエンジニアとして働きます。GCPでインフラ、データベースなどを触ったり、APIを作ったりしています。顧客のセキュリティ情報を取り扱う業界なので、最近はセキュリティ周りも勉強し始めました。
給料に関しては、学生としてインターンとしての経験しかなかったので、他のエンジニア職と比べることはできませんが、アメリカの新卒水準の1.5倍以上はもらえていると思います。
――今後の展望などありますか?
技術的視点も持ったプロダクトマネージャーになりたいです。個人的にはビジネス的視点で物事を考えるのも好きなので、技術方面とビジネス方面の両方の知識を持って、プロダクトを大きくしていきたいと考えています。
――アメリカでエンジニアとして就職を目指す方へアドバイスを頂けますか?
アメリカで就職するにはまず、ビザの取得という大きな問題があります。そして、エンジニアとして就職を考えるなら、コンピュータサイエンスの学位も必要です。
それらを大前提としたうえで、常に自分の行動に対して「なぜ」というのを考えておくことも大事だと思います。プロジェクトを作成した理由、エンジニアになりたいと思った理由などなどです。
技術力や面接対策はもちろん当たり前ですが、正しい方向に導いてくれる先輩エンジニアの存在も重要だと思っています。
一人で勉強を進めていくよりも、人と関わって、何が足りていないか、面接は何が重要かなど話し合える存在がいることで、時間配分を間違わず、効率よく勉強を進められると思います。
――Recursionを始めたばかりのユーザーがやっておくべきことは何でしょうか?
分からなくても大丈夫というマインドを持っておくことかなと思います。
最初は分からなくても、2周3周したり、何かを勉強したりしてると点と点が繋がってそういうことだったのかと理解できるようになります。
――Shokiさん、貴重なお話を聞かせていただいてありがとうございました。