今回インタビューさせていただいたのは、第一志望の自社開発企業においてバックエンドエンジニアとしてサマーインターンの内定を獲得したToshiさん。Recursionのバックエンドプロジェクトコースの課題をポートフォリオとして活用し、無事選考を突破しました。
- バックエンドエンジニアとしてサマーインターンの内定が欲しい
- バックエンドエンジニアになるにはどのように学習を進めるのが良いか知りたい
- 面接で興味を持ってもらえるポートフォリオを作りたい
そんな方にToshiさんの成功体験をお伝えします。
Toshiさん
目次
自社開発企業でバックエンドエンジニアのインターンに内定
――Toshiさん、インタビューをお受けいただいてありがとうございます。早速ですが簡単な経歴と、プログラミング経験の有無について教えていただけますか?
現在は学生で専攻は電気電子工学です。大学1年の12月にRecursionでコンピュータサイエンスの学習を始めました。大学2年の8月からは自社開発の企業でバックエンドエンジニアのインターンをしています。
プログラミング経験については、大学の授業でC言語を使って数値計算をしたことがあります。Recursionを始めるまでは個人では何もしていませんでした。
――Recursionを始めたのはどうしてですか?
YoutubeでRecursionのチャンネルをたまたま見かけて、アメリカの大学の教材に沿ったカリキュラムだというところに惹かれ無料枠から始めました。
また、ただコーディング力を上げるのではなく、コンピュータサイエンスという幅広い分野の知識が必要だと考えたため、他のサービスではなくRecursionを選びました。
バックエンドエンジニアに必須のデータ構造やデータベースを学習し自走力が身についた
――Recursionをどのように利用して学習を進めましたか?
Pythonで初級・中級をまずは一周しました。上級では静的型付け言語での学習がRecursionのロードマップで推奨されているので、Javaに変更して学習を進めました。
一日の学習量については、私の場合、学習時間に波があって丸一日学習している日もあれば、全く何もしない日もありました。ですが、少しの時間でも毎日触れておけばよかったと今は少し後悔しています。触れれば触れるほど楽しくてモチベーションが上がると思うからです。
またインターンシップを始めてからは、業務をしていて必要だなと思った知識を補う際に利用することが多くありました。
――どの項目を一番注力して勉強しましたか?
中級・上級ででてくるリストやハッシュテーブル、木構造といった基本的なデータ構造の部分に特に注力して取り組みました。
またデータベースもインターンでは必須になるので、実際に手を動かしながら取り組んでいました。
プロジェクトに関してですが、私の場合バックエンドエンジニアを志望しているので、プロジェクト3のClicker Empire Gameまでしかやっておらず、バックエンドのプロジェクトを優先して進めました。自分がやりたいことを優先して取り組むといいと思います。
――Recursionを始める前と後で何か変化がありましたか?
一番変わったと感じたのは自分で考える力がついたことです。
チュートリアルのようなものに沿って学習したこともありましたが、それでは自分で考えることはほとんどないので、あまり身についていませんでした。
ですが、Recursionでは学んだ知識を応用して自走することが求められるので、自分で考えることが多くなり、自然と自走力が身についていきました。
――Recursionを知人におすすめできますか?
おすすめできます。本などでもインプットはできるかもしれませんが、自ら考えてアウトプットする機会はなかなかないです。学んだ基礎知識を元に応用させていくことが求められるRecursionは学習に最適だと思います。
またRecursionのユーザーは優秀な方が多く、そういった方達のプログラムを見ることもできるのでとても勉強になると思います。
第1志望の企業でのサマーインターン募集に合格!バックエンドエンジニアのとして1歩を踏み出した
――インターンの採用面接についても聞かせてください。応募する会社選びはどういう方針で行いましたか?
私が会社選びの軸としていたのは、以下の2点です。
- 成長途中で多くの人に影響を与えることができるような企業かどうか。
- 自信のスキルを高められる環境かどうか。
初めは特に行きたい企業や興味のあるサービスがなかったので、いくつかの企業の逆求人イベントなどに参加してみました。いくつかの企業の方とお話ししていくうちに、自分が何に興味があってどのようなことをしたいのかが明確になってきました。
またエンジニア組織としては、優秀な方が多くて自身のスキルを高められる環境かどうかについても見ていました。技術力が高い環境に身を置くことで、吸収できる技術レベルも高くなるので、エンジニアとしてのスキルアップにつながると思うからです。
――インターンの選考過程においてどのような選考が行われましたか?
インターンシップの選考過程については、まずは「カジュアル面談」、その後「人事面接」、「書類審査」、「現場面接」という流れで進みました。
――書類や面接ではどのようなことをアピールしましたか?
企業と自分のビジョンが一致していて、その企業でなければならない理由を強くアピールしました。
また技術が好きなこととユーザー視点を大事にしていることもアピールしました。エンジニアとして応募するなら技術が好きで興味があることは重要だと思います。
またサービスはあくまでユーザーのためのものなので、開発の段階からユーザー視点を意識していることは企業にとってもプラスになるとアピールしました。
――活動を始めてどれくらいで内定が出ましたか?
その逆求人イベントの約1ヶ月後には第一志望の企業からサマーインターンの内定をいただくことができました。
――内定をもらえた一番の要因は何でしょうか?
企業と自分のビジョンが一致していたからだと思います。
企業研究の際に、その企業のサービスとビジョンについては把握していました。私自身が描くビジョンについては、かなり丁寧に質問され、具体的にどういったことを達成したくて、志望しているのかを聞かれました。
これらについて、きちんと言語化して準備をしておき、その意志をはっきり伝えられたことが大きかったと思います。
会社によっては、とにかくエンジニアとしての技術力を重視している場合もあるので、選考の間になにが求められているのかを感じとってアピールすることも必要だと思います。
インターン選考でアピールしたのはバックエンドプロジェクトで作成したポートフォリオ
――内定をもらえた一番の要因は何でしょうか?
主に選考で使ったのはバックエンドプロジェクトのRPC実装の部分です。RPCとは、ネットワークを通じて他のコンピュータのプログラムを呼び出し、機能やタスクを実行させるための技術です。
https://github.com/TakaToshi0801/remote-procedure-call
クライアントとサーバが異なるプログラミング言語で書かれていても、クライアントプログラムがサーバ上の機能を呼び出せるようなシステムを構築しました。
サーバ側ではクライアントからの接続を並列化するために、スレッドを使用しています。これにより、サーバが複数のクライアント接続を並列処理し待ち時間を短縮するようにしています。
また例外が発生した時にプログラムがクラッシュしないように、try-except文で適切にエラー処理をするように実装しました。クライアント側では非同期処理によってデータを順次送信することで、サーバ側でも適切に処理が行えるようにしました。
――作成したポートフォリオについてどのような点が評価されたと思いますか?
自分の力で考察し開発したことと、それについてきちんと説明できていたことだと思います。どのような目的をもって、その処理や技術を取り入れたのか言語化しておくことでよどみなく説明することができました。
バックエンドエンジニアとしてインターンに合格するためのアドバイス
――実務未経験者が内定を取るためにやっておいた方が良いことはありますか?
私はインターンで経験を積んでいましたが、いくつかの企業と話していて感じたのは、一つでもいいので自分の力でこだわって開発したものがあれば十分だということを感じました。
自分または誰かが本当に必要としているものを開発し、それについてきちんと説明できれば開発力だけでなく、課題定義から解決までの自走力もアピールできると思うからです。
――Recursion を始めたばかりのユーザーがやっておくべきことについてアドバイスをお願いします。
中級と HTML/CSS コースを終了したら、ある程度の基礎知識が身に付きますので何か自分でアプリケーションを作ってみることをおすすめします。実際に作ってみることで楽しさが見えてきたり、新たな発見があります。
Recursionのバックエンドプロジェクトやフロントエンドプロジェクトは、ポートフォリオにできるのでおすすめです。
また、調べる力もエンジニアとして非常に重要です。わからないことは調べて、自分のものにしていくことが重要だと思います。
――Toshiさん。貴重なお話を聞かせていただいてありがとうございます。インターンから本採用目指してぜひ頑張ってください。