フロントエンドエンジニアの内定獲得!未経験、新卒が成功するために取り組んだこととは?

今回は新卒で有名企業にフロントエンドエンジニアとして内定を獲得したhiromuさんに、プログラミングの勉強方法や就職活動のコツについてインタビューを行いました。

  • 新卒で有名企業に就職したい
  • フロントエンドエンジニアとしてキャリアをスタートさせたい
  • 非情報系からソフトウェアエンジニアとして内定をもらいたい

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

Recursionユーザー hiromu

hiromuさん

物性物理学専攻の大学生。コンピュータサイエンスを学習し、某有名企業でのフロントエンジニアの内定を獲得。

コンピュータサイエンスを学び、自力で実装できるように

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

現在、大学4年生で専攻は物性物理学です。大学ではほとんどプログラミングを扱わないため、独学でプログラミングを学んでいました。

スキルとしては、Ruby on RailsとVue.jsを使って簡単な掲示板を作れるくらいでした。

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

フレームワークを使って、簡単なwebアプリを作れたものの、圧倒的に基礎が足りておらず、考えてコードを書くということができていませんでした。

そこで、書籍か何かでコンピュータサイエンスを勉強しようかと考えていました。そのためRecursionに出会ってすぐ「これだ!」となりました。

――知り合いや友人にRecursionをおすすめできますか?

フレームワークを学んでも、そのフレームワークが数年で廃れてしまうことはざらにあります。一方で、ネットワークやアルゴリズム、データ構造をはじめとしたコンピュータサイエンスの知識は今後廃れることは無く、フレームワークやデータサイエンスなどの各専門領域を学ぶ上でとても強力な土台となると考えています。

しかし、日本ではコンピュータサイエンスを扱っているサービスはとても少なく、いきなり大学の教科書や海外のサービスで勉強するのも敷居が高いです。Recursionならわからないことを教え合えるコミュニティがありますし、コンテンツも非常に質が高いのでおすすめです。

また、自分は時間の関係上参加できませんでしたが、チーム開発の経験は就活やインターンの選考等でとても役に立つと思うので、その経験を積める点もおすすめできる理由の1つです。

――他のサービスを利用していましたか?

技術書を月に1,2冊購入して勉強していました。主にWeb周りの技術書を読みました。HTTP、DB、SQL、セキュリティ、ネットワークの領域で1冊ずつといった感じです。あとは個別の言語、フレームワークのための本や、コンピュータサイエンス関連で面白そうな技術書を読みました。

新卒就活の準備のため、コンピュータサイエンスの基礎を重点的に学習

――Recursionでどのように利用されましたか?また、どの言語を選択されましたか?

コンピュータサイエンスの基礎「初級」から「上級」、OOP、データベース、コンピュータサイエンスプロジェクト1〜5まで終わりました。

基本的には、JavaScriptで学習を進めました。途中で型付きの言語もやりたくなったのでJavaやTypeScriptも進めました。TypeScriptは、VSCodeでの開発体験がかなり良く、他の静的型付け言語の経験があれば学習コストも低いのでおすすめです。

――1日どれくらい学習しましたか?また、どの項目に注力しましたか?

大学の長期休みに集中して取り組んでいたので、1日4,5時間はやっていました。

注力して学習したのは、コンピュータサイエンス基礎「初級」から「上級」までのカリキュラム、データ構造やアルゴリズムです。コンピュータサイエンスの基礎として一番重要だと感じたからです。

コンピュータサイエンスの学習で意識したのは、複雑な箇所を紙に書き出し状況を整理しながら進めていたことです。

――Recursionのプロジェクトを使ってポートフォリオにしましたか?作成の際、意識したことやこだわりを教えてください。

画像をクリックすると拡大することができます

https://hiromu617.github.io/BlackJack/

自分はフロントエンドの領域が好きなのでUIや見た目にこだわって作りました。具体的には、レスポンシブの対応をしてスマホでも遊べるようにしたり、ボタンで押せない状態の時には、半透明にしたりと遊びやすさ、使いやすさにこだわりました。

――Recursionのコンピュータサイエンスプロジェクトですね。他にも何か作ったものがありますか?

画像をクリックすると拡大することができます

https://github.com/hiromu617/sukettome

あとは色々と途中で終わってしまっているのですが、個人開発でNext.jsを使ってレビューサイトを作りました。ディレクトリ構造の設計を工夫したり、Reactのベストプラクティス的な書き方に準ずるコードかを意識して開発しました。

新卒でエンジニア就職したい学生がやるべきこととは?

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

前述した通り、Recursionを始める前は簡単なWebアプリケーションが作れる程度のスキルでしたが、Qiitaなどのサンプルコードをコピペしている箇所も多く、自分で考えてコードを書けていませんでした。そもそもWebアプリケーションがどう動作しているのかさえ知りませんでした。

Recursionでデータ構造やアルゴリズムを学び、コーディング問題に取り組むことを通して考えてコードを書けるようになったと感じています。具体的には、コードを書く際、計算量やデータ構造を意識するようになりました。結果的に、始める前よりも、可読性が高く簡潔なコードを書けるようになりました。

またデータ構造やアルゴリズムは身近なところで使われており、例えば、ブラウザのHistory API(履歴に関するAPI)にはスタックのデータ構造が使われています。コンピュータサイエンスの知識はこのような仕組みを理解することにも役立っていると感じています。

――Recursionを始めたばかりのユーザーがやっておいた方が良いことは何だと思いますか?

Recursion内で提供されているコンピュータサイエンスプロジェクトは絶対にやることをおすすめします。基本のコースで学んだことをアウトプットできるのでコンピュータサイエンスの知識がかなり身につくと思います。

フロントエンドの知識が必要なので慣れるまでは大変ですが、単純に動くものを作るのは目に見えて達成感が感じられるので楽しいです。

別の言語、フレームワークを使ってみたり、デザインを工夫してみたりと自分だけのオリジナルな成果物を作るのも良いと思います。

就活用にポートフォリオ作成し、未経験ながら技術力をアピール

――内定獲得おめでとうございます!hiromuさんの就職活動についても教えてください。まずはどのような方針で会社を選びましたか?

以下の3点で企業を選びました。

  • 社会的意義があり、やりがいがありそうな面白そうなプロダクトを扱っているか
  • フロントエンド的にやりがいが大きいプロダクト、具体的にはユーザー体験の向上が事業の価値の向上につながりやすそうなプロダクトか
  • エンジニアとしてスキルアップできそうか、働いているエンジニアのレベルが高いか

1つめ、2つめに関して、自分はプロダクト志向のエンジニアだと思っているので、どういったプロダクトを扱っているか、企業としてどういうビジョンを持っているかという観点で企業を見てました。

3つめに関しては、その企業がどのくらいのレベル感かを知るためにその企業の技術ブログを読んでいました。

――書類でアピールしたこと、面接でアピールしたことを教えてください。

Recursionのコンピュータサイエンスプロジェクト以外にも個人開発やハッカソンでの開発物があったので、それらの開発物を実績としてアピールしました。

エンジニアとして長期インターンで開発を行っていたので、その経験もアピールに使いました。

――内定をもらえた一番の要因は何だと思いますか?

中途採用がメインの企業ということもあり、インターン等の開発経験も含め、現時点での技術力を一番に評価していただいたと考えています。

――新しい業務の内容を差し支えない範囲で教えていただけますか?

フロントエンドエンジニアとしてプロダクト開発をする予定です。また、バックエンド側のタスクもやらせていただけるみたいです。

――これから実務未経験者が内定を取るためにやっておいた方が良いことをアドバイスいただけますか?

以下の2点はやっておいた方が良いと思います。

  • 手を動かして自分の成果物を作る。その成果物について工夫した点や解決したい課題を語れるようにする。
  • 何かしらのチーム開発の経験

Recursionのコンピュータサイエンスプロジェクトを作ったり、チーム開発に参加してみるといいと思います。

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