今回インタビューさせていただいたのは、現在大学院生のponzuさん。
この夏に有名企業でのサマーインターンに参加されて、そこで作成したwebアプリは最優秀賞を獲得されたのだそうです。ponzuさんに、エンジニアインターンでの面接を乗り切るためのコツをお話していただきました。
- ソフトウェアエンジニアのインターンに興味がある
- ポートフォリオとして何を作れば良いかわからない
- 教材の真似ではなく、自分でアプリを開発できるようになりたい
そんな方にponzuさんの成功体験をお伝えします。
ponzuさん
4年制専門学校を卒業し、現在は大学院で統計学やデータ分析を学ぶ。Recursionで学習し作成したプロジェクトをポートフォリオとして、大手企業でのインターンの面接に臨んだところ無事合格。インターン中に開発したWebアプリは最優秀賞を獲得。
目次
自力で開発できるエンジニアを目指しRecursionを学習
――ponzuさん、インタビューをお受けいただいてありがとうございます。早速ですが簡単な経歴と、プログラミング経験の有無について教えていただけますか?
私は大学ではなく、4年制専門学校の経営情報学科を卒業しています。主に簡単なプログラミングやERPを学びました。専門学校を卒業し、現在は大学院に進学して統計学やデータ分析を勉強しています。
プログラミング経験についてですが、授業ではVB.net, Java, PHPを触っていました。
独学でRuby on Railsのチュートリアルを勉強して、それを少し改良したWebアプリを作成しました。
――Recursion以外のサービスでもプログラミングを学習していましたか?
Udemyを利用しました。基礎知識がなかったためかあまり合わなかったです。Recursion学習後の今なら以前よりも理解できると思いますが、公式のドキュメントをまず見るようになったため、Udemyはあまり利用しなくなりました。
――Recursionを始めたのはどうしてですか?
自分で考えて開発できるようになりたかったからです。
独学でRuby on Railsを学びアプリケーションを作成しましたが、チュートリアルに沿って作成したので自分の力で開発できたという実感が持てませんでした。Recursionでコンピュータサイエンスとプロジェクトに挑戦することで、自力で開発ができるようになるのではないかと思い学習を始めました。
――実際、Recursionで学習をしてみてどうでしたか?始める前と変化がありましたか?
コーディング問題のロジックに関しても、コンピュータサイエンスプロジェクトでアプリケーションを作成することに関しても、自分で考えてコードを書けるようになったと思います。
さらにコンピュータサイエンスを学習してベースとなる知識を得たことから、これまで使用したことのない言語やフレームワークでもすぐに対応できるようになったと思います。
――どのように学習を進めましたか?
最初はRecursionでおススメされているようにPythonを選択して学習を始めました。その後、ロードマップに従ってJavaでやり直しました。プロジェクト課題はJavaScriptを使って取り組みました。
Recursionを始めて1年ちょっと経ちますが、1日の学習時間は30分から1時間くらいです。インターン中や、学業が忙しい時には少し休んでしまいました。あまり勤勉ではないです。
――どの項目について一番注力して学習しましたか?
コンピュータサイエンスを学習したかったので、特に「データ構造の連結リスト」に注力しました。連結リストをJavaで勉強した時、「クラスを使えば、自分でデータの構造を定義できるんだ」と感動しました。
今まで動的型付けのスクリプト言語で型を気にせず勉強していたため、クラスがなぜ必要なのかいまいち納得してなかったのですが、ここでようやく理解できたと思います。
――コンピュータサイエンスプロジェクトに関してはどうですか?
コンピュータプロジェクトは、Project4のLibrary Applicationまで学習しました。また、Project3のClicker Empire Gameは、他のユーザーのコードを参考にしてリファクタリングし、ポートフォリオにしました。
インターンの面接でポートフォリオを見せ技術力をアピール
――ポートフォリオの完成度や意識したことを教えてください。
Recursionのプロジェクト3「Clicker Empire Game」をポートフォリオとして掲載していました。
- URL:https://ponzukun.github.io/ClickerEmpireGame/
- Github URL:https://github.com/ponzukun/ClickerEmpireGame
このプロジェクトは先ほどお話したように、Recursionのユーザーが作成したコードを参考にさせていただきリファクタリングしています。ポートフォリオ作成時には特に以下の点について意識しました。
- 可読性
- データ構造
- デザイン性
まずはコードの可読性を向上させました。コントローラからビューを呼び出すことを意識して、イベント処理を記述したControllerと画面表示を行うViewにファイルを分けました。
次に、データ構造についても意識しました。ユーザーがアイテムを保持し、そのアイテムの効果を反映させること、その状態でLocalStorageに保存できるようにするために、データ構造を意識しました。
最後に、インターン面接の採用者の目に留まるよう綺麗なデザインを目指しました。Bootstrapによるデザインやハンバーガーをクリックしたときのアニメーションなど、他のユーザーを参考にしてデザイン性も意識して作成しました。
エンジニアインターンの面接を突破できた最大の要因とは
――エンジニアインターンへの応募方針についても教えてください。
自分のレベル感に合う企業にまずは応募しましたが、サマーインターンの募集だったこともあって、少し背伸びをして有名企業にも応募しました。
――インターン選考の流れについて教えてください。
私がインターンに参加した企業では以下の流れで進みました。
- A社:書類審査 → 面接 → インターン参加
- G社:書類審査 → インターン参加
この2社の面接では、コーディング試験はありませんでしたが、他の有名企業ではほとんどがサマーインターンの面接でもコーディング試験を実施していました。
――面接ではどのようなことをアピールしましたか?
まずは、書類で開発したアプリをリポジトリとリンクを合わせて紹介しました。そこでは、「自分が何を意識して開発したか」を簡潔に記述しました。
そして面接では、技術力に加えてコミュニケーション能力と主体性をアピールしました。エンジニアとしてチームで働くにはコミュニケーション能力も大事だからです。
――有名企業でのエンジニアインターンに参加できた要因は何だと思いますか?
私が有名企業のエンジニアインターンに参加できた一番の要因は、Recursionのプロジェクト課題に取り組み、それをGitHubやポートフォリオで公開していたことだと思います。
プロジェクト3 のコードを GitHubで公開し、GitHub Pagesでアプリをデプロイし、アプリとそのコードにすぐにアクセスできるようにしていました。
インターンで作成したアプリが最優秀賞を獲得
――今まで経験されたエンジニアインターンの内容について教えていただけますか?
A社では、8月末から5日間のインターンに参加させていただきました。
内容は、SNSによる口コミなどを収集・分析し、改善施策に繋げられるようなアプリケーションの開発です。私は、TypeScript, Vue.js, Nuxt.js を用いたフロントエンド開発を担当しました。
次にG社では、9月初めの5日間のインターンに参加しました。
ここでは、5人のメンバーと共に健康に関連するWebアプリをフルスクラッチで開発しました。TypeScript, Reactを用いたフロントエンド開発を担当しました。この時開発したアプリケーションは、参加した5チームのうち最優秀賞をいただくことができました。
インターンで作成したアプリケーションについてや、成果物、いただいたフィードバックなどは、以下のポートフォリオに詳しく記載しています。
エンジニアインターンを経験したいRecursionユーザーへのアドバイス
――Recursionでは多くの学生ユーザーが学習中です。有名企業でのエンジニアインターンに参加したいと考えているユーザーのためにアドバイスをいただけますか?
コンピュータサイエンスの勉強と並行して、早めにプロジェクトに取り組むべきだと思います。それと、コンピュータサイエンスは静的型付け言語で勉強した方が良いと思います。
Recursionは、学習するコンテンツの量が多く時間がかかりそうに見えますが、実際は学ぶべき順序で勉強することができるので、エンジニアとしての就職やインターン合格など目標に向かって最短でたどり着けると思います。
私の場合、最初にRuby on Railsから勉強を始めてしまったのですが、そうではなくJavaScriptから勉強するべきだったと考えています。
まずはデータベースを使わないWebアプリを開発してから、必要になったらデータベースを使用し、バックエンド開発をしていく方が理解が深まると思うからです。
最初にJavaやRuby, Pythonなどのバックエンド開発で使われる言語の勉強がしっくりこないという方がいれば、JavaScriptからフロントエンド開発をするのもありだと思います。特にRecursionのプロジェクト課題は初学者にとってちょうど良い難易度です。
プロジェクトをポートフォリオにすれば、インターンの面接でも技術力のアピールができると思います。
――ponzuさん、貴重なお話を聞かせていただいてありがとうございました。