コンピュータサイエンスを学習して有名ベンチャー企業へ見事内定|hiromuさんインタビュー

今回インタビューさせていただいたのはhiromuさん。

もともと、フレームワークを使ってwebアプリなどを作成した経験はあったそうですが、自力でコードが書けずに悩んでいたそうです。去年からRecursionでコンピュータサイエンスを学び、見事、某有名企業でのフロントエンジニアの内定を獲得されました。

hiromuさんにRecursionを使ってどのように学習されたのかなど詳しくお話を伺ってみました。


hiromuさん:

Twitter:https://twitter.com/hiromu666666

コードが書けずコンピュータサイエンスを学びたいと思っていた時Recursionに出会った

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

hiromuさん(以下敬称略):

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

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

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

hiromu :

Twitterで見つけて面白そうだったのではじめました。フレームワークを使って、簡単なwebアプリを作れたものの、圧倒的に基礎が足りていなかったので考えてコードを書くということができていませんでした。

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

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

hiromu :

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

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

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

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

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

CSの基礎を重点的に1日5時間の学習!

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

hiromu :

初級、中級、上級、OOP、データベース、プロジェクト1〜5まで終わりました。

基本的には、JavaScriptで学習を進めました。途中で型付きの言語もやりたくなったのでJavaも進めました。

独学ではTypeScriptを学びました。(現在はRecursionもTypeScriptで学習できますが…)TypeScriptは、VSCodeでの開発体験がかなり良く、他の静的型付け言語の経験があれば学習コストも低いのでおすすめです。

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

hiromu :

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

注力して学習したのは、初級〜上級のコンテンツ、データ構造やアルゴリズムです。CSの基礎として一番重要だと感じたからです。

CSの学習で意識したのは、複雑な箇所は、紙に書き出し状況を整理しながら進めていたことです。

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

hiromu :

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

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

――Recursionのプロジェクト5 BlackJackですね。他にも何か作ったものがありますか?

hiromu :

​​https://github.com/hiromu617/sukettome

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

Recursionを始めたことでできるようになったこと

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

hiromu :

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

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

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

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

hiromu :

プロジェクトは絶対にやることをおすすめします。基本のコースで学んだことをアウトプットできるのでCSの知識がかなり身につくと思います。

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

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

Recursionのプロジェクトなどをポートフォリオに技術力をアピール

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

hiromu :

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

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

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

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

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

hiromu :

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

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

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

hiromu :

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

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

hiromu :

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

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

hiromu :

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

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

Recursionのプロジェクトを作ったり、チーム開発に参加してみるといいと思います。

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