プログラミング初心者がメガベンチャーから内定貰えるようになるまでの軌跡

# はじめに

非情報系でもWeb系メガベンチャーから内定を貰うことができたので、これまでにどんな行動をしてきたのかを記事にしたいと思います。
再現性があるかはわかりませんが、少しでも参考になりますと幸いです。

:::note info
オススメの固有名詞が多く出てきますが、あくまで私の主観であることをご了承ください。
:::

Web系メガベンチャーの定義は人それぞれですが、ここでは私の好きなYoutuberである[TECH WORLDさんの動画](https://youtu.be/uprDRNusO3Y)を拝借して、

> LINEヤフー, Amazon, DeNA, サイバーエージェント, メルカリ

を一旦、指すことにします。

ありがたいことに、この中の2社から内定をいただくことができました。

# 自己紹介

- 理系大学院生
- 領域はITと関係の無い物理学、よくわからん微分方程式を解く日々
- 大学３年生からプログラミングの勉強を始める
- インターンシップ経験12社
- 本選考は1社も落ちることなく内定6社

# エンジニア学習コミュニティに所属

まず始めに、エンジニア学習コミュニティに参加しました。

初学者あるあるですが、最初はわからないことが多すぎて独学ではモチベーション維持が難しかったりします。
またわからないことが多すぎてどのようなステップで学習すればいいのか迷ってしまうと思います。

かくいう私も一番最初にProgateのHTML/CSSの初級編講座で挫折し、何をどう学習すればいいのかわかりませんでした。
完全に初学者あるあるにハマってしまったので、それを解決するためにエンジニア学習コミュニティに参加しました。

人は環境に強く影響されるため、周りにエンジニアを目指している人がいない方はすべからくエンジニアコミュニティへの参加をオススメします。
環境を変えて強制的に持続力が高まるようにしましょう！

最近では無料のエンジニアスクールや団体などが存在するため、高額な商材を買うよりまずコミュニティを検討してみてください。

私が参加した中で、特に良い経験をしたコミュニティを2つ紹介します。

## 42Tokyo

https://42tokyo.jp/

私がプログラミングを本格的に始めたきっかけという意味では、42Tokyoは**私の原点**になります。

### 入学試験

42Tokyoには**Piscine**と呼ばれる1ヶ月間の入学試験を突破する必要があります。
このPiscineは最初の一週間で生徒が半分いなくなる位にはハードな試験でした。

私自身も最初の2,3日は本当に何も分からなくてしんどかったです...
ですが周りの人の力を借りて課題を少しずつ解けるようになると、あまりの楽しさに朝起きてから夜眠るまでずっと課題のことを考え続けられる身体になりました。

Piscineは生活習慣を変えてしまうほど楽しかったです。
元々夜型だと思っていましたが、課題を解くのが楽しみすぎて朝早く起きられるようになりました。

無事最後まで走りきり、合格することができました。

### 入学後

入学後に感じた、42Tokyoの良かった点を4つあげます。

- ピアラーニング手法

ピアラーニングとは、教師と受講者という学習形態ではなく、学生同士で分からないことを調べて教え合うスタイルのことです。
人と協力しながらコードを書き、能動的に知識を高め合うため、協調性と自走力が身につきました。
塾でアルバイトをしていた経験もあり、人に教えることが好きな私にとってはこのスタイルが合っていました。

- 課題解決型学習

教科書や授業が無いため、まず課題が課され、それを解決するために自分でひたすら検索しながら学ぶという課題解決型学習を行います。
実務では授業なんてものはなく課題だけがある状態なので、実際の業務に近い状態に慣れることができるこの学習方法は有用だと思います。
英語や中国語の記事も漁るくらいになると、「Googleに無いものなどない！この世の真理ですらググったら出てくる！」と錯覚できるぐらいに検索力が向上しました。
ちなみにこの世の真理は「42」だとかないとか...

- 圧倒的レビュー回数

一つの課題に対して3回連続でレビューを通す必要があり、またそのレビューを受けるには、他者に対しても同じ回数レビューをしなくてはいけません。
このレビューの多さは、他のスクールや大学では経験できない貴重なものだと思います。
自分のコードを他者に説明する力や、他者のコードを理解できる力がある程度身につきました。
駆け出しエンジニアあるあるの「レビューされるのが怖い」という感情が消え失せ、レビューが大好物になりました。

- 優秀すぎる学生たち

エンジニアが病む理由に「人よりできない」という人と比較した結果、病んでしまうという傾向があると思います。
42Tokyoに所属している人は、私より全員優秀だったので「人よりできない」ということに対する耐性がつきました。
普通の学校とは違うので、人と比較せず自分のペースで学ぶことができる点は大きかったと思います。

### 42Tokyoをオススメしたい！(私見)

合否や入学するかに関わらず、入学試験のPiscineを1度は受けてみてほしいです！

C言語とLinuxの本をやっておくとPiscineをより楽しめると思います。
おすすめの書籍は「苦しんで覚えるC言語」と「新しいLinuxの教科書」です。

タッチタイピングできないレベルで突っ込んでいった私でも楽しめたので、これからプログラミングを本格的に勉強したい人にとってはとてもオススメします。

:::note warn
私が所属していた頃はコロナ禍だったのでフルリモートで参加できましたが、今は対面になってしまったので地方在住の方は厳しいかもしれません。
:::

## CODEGYM Academy

https://codegym.jp/academy

CODEGYM Academyはコロナ過限定の無料のプログラミングスクールです。

CODEGYM Academyに関しては、入学試験がwebテストしかなく合格率は50%だったのであっさり入学することができました。

このスクールで初めてwebアプリケーション開発を学びました。
CODEGYM Academyの特徴としては、個人開発のLT会とチーム開発ハッカソンを経験できることだと思います。

個人開発のLT会では、初めて作成したアプリで、1位を獲得することができました。
また1ヶ月以上のチーム開発ハッカソンでは、GMO賞とPERSOL賞を獲得することができました。
このチーム開発ではマネジメントも行いました(といっても工数管理などはせずタスク分解とタスクの割り振りくらい)。
面接のガクチカ(学生時代に力を入れたこと)で一番食いつきが良かったのは**技術的な話よりもマネジメントの話**だったので、ここで経験ができて本当に良かったです。

:::note alert
CODEGYM Academyは2024年現在受け入れ停止中です
:::

## 他のおすすめ先

私は経験していませんが、周りの評判が良く、私自身参加してみたいと思っていたものを紹介します。

### CA Tech Lounge

https://www.cyberagent.co.jp/careers/special/students/tech_lounge/

サイバーエージェントの学習コミュニティスペースです。
42Tokyo同様、学生だけでなく社会人でも参加可能です。
私も参加したいと思っており、立ち上げ初期の1期生として合格をいただいたものの、同時期に実務インターンの合格が決まったため辞退しました。
ですが、正直実務インターンを辞退するかどうかギリギリまで迷うくらい面白そうでした。
所属していた友人からも好評でした。

### Progate Path

https://path.progate.com/

最近できたProgateのプログラミング学習サービスです。
一定の条件をクリアすると長期の就業型インターンシップに応募できるようです。
実務インターンの経験は就活でとても強みになるのでそのハードルを低くしてくれるのは嬉しいですね。

### TechTrain

https://lp.techtrain.dev/

エンジニア塾です。個人的には2年くらい前からずっと気になっていました。
専属トレーナーがついてくれるようなのでモチベーションが保ちづらい初学者に良さそうです。
このサービスだけ完全無料では無いものの、レベルを上げれば安くなり最終的には無料になるので、学生の懐事情的にありがたいですね。

### 大学や地域の学生団体

大学や地域のエンジニア学生団体に参加するのもいいと思います。
知っている人たちと開発ができるという点で、他より参加しやすいのでないでしょうか。
インターンで会う「名古屋から来ました！」って言ってるエンジニアさんは大体強い人が多いんですが、あれは何なんですかね。
つよつよエンジニア製造団体でもあるのでしょうか...?

# 就活サイト

コミュニティに参加しつつ、就活も進めていきました。
就活は情報戦と聞いていたので、人にオススメされたものはとりあえずやってみようの精神で片っ端から就活サイトに登録しました。

最終的に以下の16個の就活サイトに登録していました。

- エンカレッジ
- レバテックルーキー
- LabBase
- dodaキャンパス
- テックオファー
- オファーボックス
- マイナビ
- リクナビ
- ワンキャリア
- キャンパスキャリア
- キャリタス
- サポーターズ
- Wantedly
- Track Job
- 外資就活
- 就活会議

この中で特に良かったものを厳選して紹介します。

## サポーターズ

https://talent.supporterz.jp/

Web系で就活している人は全員サポーターズに登録すべきです。
もう登録しない理由が見当たりません！
色々オススメ理由があるので箇条書きで失礼します。

- 私はサポーターズの1on1イベント経由でインターンや本選考へ進み合格・内定をいただきました。選考免除になる場合もあるので1on1イベントはとてもオススメです。といってもこれは選抜制なので全員に当てはまるわけではないことをご了承ください。
- イベントに参加したりアンケートに答えると就活支援としてお金がもらえます。月に数万円稼ぐことができます。
- サポーターズそのものではありませんが、サポーターズHubというエンジニア学生向けTwitter？みたいなものもオススメです。クローズドなサイトの分、選考体験談がしっかりと書かれており、とても参考になりました。私は見る専でしたが、投稿した場合お金が貰えるみたいです。
- 個人的には「学生ハッカソンといえばサポーターズ」というイメージです。初学者向けハッカソンも開催されているため気軽に楽しめると思います。
- 面白い勉強会が多く開催されているため、成長環境という側面もサポーターズは持っています。就活が始まっていない学年でも登録しておいて損は無いと思います。

## LabBase

https://compass.labbase.jp/

理系学生専用の逆求人サイトです。
Web系以外も幅広く見ている人にオススメです。
私はエンジニアなれるか確信が無かったため、理系のメーカー職や総合職も見ていました。
LabBaseは質の高いスカウトが多く、ちゃんとプロフィールを読んだうえでスカウトしてくる企業が多いです。

## ワンキャリア

https://www.onecareer.jp/

選考体験談を掲載しているサイトの中では1番だと思います。
面接前にどんな質問をされる傾向にあるのか、ワンキャリアで確認していました。
他にもエンジニア就活の対策方法講演会などもあり勉強になりました。

## おまけ: 魔法のスプレッドシート

https://magic-spreadsheets.github.io/

就活サイトではないですが、エンジニアインターンの一覧が掲載されたサイトです。
エンジニア就活界隈では割と有名らしいです。
web系エンジニアのインターンが多く掲載されているので、これを参考にインターンを探すと良いと思います。

# 会社選び

## 自分だけの企業DBを作ろう

就活サイトで多くの企業を知ると思います。
その際必ず自分の企業DBに加えるようにしていました。

企業DBでは、レコードに会社名を、カラムに募集要項のURLやインターン情報、会社の種類(Web,SIer,SESやToC,ToBなど)、年収、出社の頻度などなど...自分の気になることを色々書いていました。

DBサービスとしてはNotionを使っていました。
ですが行と列があればDBサービスはなんでもいいです。

私は「質より量」よりも、「圧倒的な量による質」を大事にするタイプなので、数十社だけ見て就活終わりというのは納得できませんでした。
企業DBを4月頃から作成を始め、最終的には370社まで記録しました。
途中からもう十分だと思い追加するのはやめました。

この企業DBを作成したおかげで、世間には会社が多く存在し、掃いて捨てるほど良い会社がたーくさんあるということもわかりました。
そのため2,30社くらいなら落ちても大丈夫という謎の余裕が生まれました。
この余裕がいい方向に向かったのかもしれません。

# インターン

## インターンに合格するためにはインターンの経験が求められるけど、そのインターン経験を積むためにはインターンに合格しなくてはいけない

就活を終えた方々であればこの二律背反の問題に共感してもらえると思います。

極稀に未経験でも雇ってくれる心優しき会社がありますが、基本的にはインターンへ行くためにインターン経験が必要という理不尽な世の中になっています。

:::note info
周りを見ている限り、本選考では実務経験について気にされていなさそうだったので、インターン限定だと思います。
:::

コミュニティに入っているとインターンの募集が大体あると思うので、その募集経由で最初のインターン経験を積むことが一番良いと思います。

仲良くなった人からインターンを紹介してもらえることもあるためコミュニティ参加はやはり必須ですね。

## 長期インターンか短期インターンか

個人的には長期インターンより短期インターンを推したいです。
長期インターンの定義は1ヶ月,3ヶ月,半年~など様々ですが、ここでは「長期インターン = 3ヶ月以上」とします。

ちょっと脱線しますが、非可逆な人生において後悔を最小限にする方法は、**将来の自分視点**で物事を考えることが重要だと思っています。

もし私が社会人だとして学生の頃の自分に、限られた就活期間の中で2,3社を深堀りするのか、浅くても複数社を経験するのか、どちらがいいかアドバイスをするとしたら、未来の自分は複数社と答えると思います。

社会人になれば思う存分1社を深堀りすることができます。
人生の中でここまで様々な会社を知ることができる機会は**新卒就活**しか無いと思います。
就活生という特権階級をフル活用してもいいんじゃないかな〜と思う所存です。

ここまで短期インターンをおすすめしていますが、これは完全に私の意見です。
世間的には**長期インターンに行くべき**と書かれている記事の方が多いと思います。

たしかに長期だとやれる幅も違いますし、技術的に高難易度な数ヶ月かかるプロジェクトを任せてもらえることもあるため、そのエピソードは就活で有利になるはずです。

もし行きたい企業が確定しており絶対に落ちたくない場合は、迷いなく長期インターンに参加した方が良いと思います。

## インターン経験

以下は私の12社分のインターン経験です。

- CODEGYM (1ヶ月半)

AI Labに所属し、Chatbotの開発を行いました。
初のインターンで多くのことを学ばせていただき大変お世話になりました。
CODEGYMでの実務インターンを通して、「もしかしてエンジニアになれるんじゃないか？」と思いはじめ、「じゃあどんなエンジニアになりたいのか」を面談でお話でき、自分のキャリアを考えるうえでのとても重要な経験をさせていただきました。
またリーダーの方から社会人において大切なことを教えていただき、考え方や行動がだいぶ変わったので、いい出会いに恵まれたと感謝しています。

- ナレッジワーク (3days)

https://qiita.com/nakaC256/items/04025446d201a5126507

- ワンキャリア (2days)

https://qiita.com/nakaC256/items/d1d2844fec355b317be6

このインターンでシステムデザインが学べたのは大きかったです。
本選考の技術面接では簡単なインフラ設計について聞かれることがありましたが、このインターン経験のおかげでなんとか耐えることができました。
~~ていうか新卒に設計まで求めるんじゃあないよ！~~

- オプティム (2weeks)

https://qiita.com/nakaC256/items/7b5a588098a452d23591

- ヤフー (2weeks)

https://qiita.com/nakaC256/items/d92cd0269f8a18f6f1df

- エキサイト (1week)

https://qiita.com/nakaC256/items/448fdbec5132f3ee3add

- CARTA HOLDINGS (1week)

https://qiita.com/nakaC256/items/05dfb58266cb5b302259

サポーターズを運営しているだけあって、学生やインターンに対する熱量がすごかったです。
実は夏に開催されるTreasureも合格しており色々と迷っていましたが、Sunriseの方に参加しました。
参加された方々によるとTreasureが一番良いインターンだったと噂なので、CARTAのインターンであればSunriseにしろTreasureにしろ全力で行くことをオススメします。

- RIZAPグループ (3days)

web制作を行いました。
フロントエンド初学者の私でもついていけるかと不安でしたが、思った以上にターゲット層が初学者でした。
懇切丁寧だったので、プログラミング始めたばかりでチーム開発経験が少ない人向けだと思います。

- マイナビ (4days)

https://qiita.com/nakaC256/items/99c3a0499e3dc5ccb1f0

- PKSHA Technology (1week)

AI SaaS事業部に所属し、CS向けの管理画面の作成を行いました。
自分の作成物を、ユーザー(CS)にヒアリングしてそこから更に改善するという経験を積むことができとても学びになりました。

- MIXI (2months)

https://qiita.com/nakaC256/items/5520f877f4f7dfe189fe

- サイバーエージェント (1month)

https://qiita.com/nakaC256/items/3d10deae9ab319472634

# 面接

ESやコーディングテスト・面接対策は他に多くの記事が出ているため、ここでは面接について私の考え方？みたいなものを紹介します。

## 面接前

面接は準備が9割です！
(XXXが9割って言ってみたかった)

聞かれそうなことや聞かれたことは箇条書きでNotionなどにメモし、面接前に軽く見返すとやりやすかったです。
また、暗記するのではなく、こう聞かれたらこのことを話そうと漠然としていたおかげで、質問に対して柔軟に対応することができました。

## 面接中

先輩と会話するくらいの感覚で、普段通りに振る舞うことを意識しました。

よく面接では結論ファーストと言われますが個人的には一貫性の方が大事だと思います。
自分とはこんな人間であると一貫性を持って話すことで矛盾が生まれないため、深堀りされても問題なく対応できます。

またせっかくやるのであれば面接を楽しもうと最大限努力することも大切だと思います。
よく「つまらない」という人がいますが、それは当人の**楽しむことのできる能力**も関係していると思います。

面白さを受動的に他人から与えてもらうのではなく、どう楽しむか能動的に考えることで、面接もホストやキャバクラに様変わりします。
まあホストもキャバクラも行ったことないんですけどね...

私は以下のようにそれぞれの面接に挑んでいました。

- **技術面接:**

技術面接は技術のニーズが知れるチャンスであり、無料でプロのエンジニアから学べる最高の機会です。

私は大学3年から勉強を始めたこともあり、他の人より知識が足りませんでした。
そのため技術面接のときに知らないことがあれば積極的に逆質問をしていました。
質問に答えられないと落ち込みそうになるかと思いますが、むしろ答えられる質問しかされないときは**何の学びにもならないので時間を返してほしい**と思うくらいのメンタルがちょうどいいと思います。

また逆質問で教えてもらい、その場で理解力をアピールすることもできます。
実際はアピールのためではなく単純に好奇心から会社のことそっちのけで技術のことばかり聞いていましたが、フィードバックで意外とその点が評価されたので、この手法は割と使えると思います。

- **人事面接:**

人事面接は人生占いや性格テストができる！くらいの感覚で取り組んでいました。

自己分析はしなかったので、面接が終わった後の自分の発言によって自己?を分析していました。

~~就活サイトにある自己分析ってあれ意味あるんですかね?(宣戦布告)~~

予期していない質問にはその場で瞬時に考えて答えるので、自分の深層心理を探ることができ面白かったです。

- **役員面接**

役員面接はとんでもなくすごい人が自分に対して時間を作ってくれて話せる良い機会です。

地下アイドル(平社員)は簡単に会えますが選抜(出世競争)を勝ち抜いてきたアイドル(役員)は生で見ることすら難しく、話すことなど本来できません。
この社会を勝ちに勝ち抜いた完璧で究極のアイドルだと想像し、有名芸能人と話せる！ぐらいのワクワク感で挑んでいました。

何でこんなこと考えてたんだろう...就活のストレス...?

## 面接後

面接が終わった後は、「くよくよしない」、これに尽きると思います。

就活はメンタルが大切なので、自分のコントロールできる範囲でのみ悩むべきです。
面接前に合格できるかどうかの責任の所在は私たちにあります。
ですが面接後、合格の判断を下すか否かの責任は面接官や人事の方にあります。
私たちがいくら終わった面接のことを考えたところで何も変わりません。
やれることは質問内容を質疑応答集に足すくらいです。

また、仮にもし考えるとしても、落ちる前提で考えた方がいいと思います。
どんなに手応えのある面接でも落ちたものと考えてください。
自分のコントロール範囲から出たものは最悪ケースを想定して次のアクションに備えたほうがいいです。
落ちた場合は既にリスクヘッジできているため大事にはなりませんし、受かった場合は喜びが倍になります。

ですがインターン選考においては落ちる前提のマインドは辞めた方がいいと思います。
インターンの場合、合格者数が正確に決められており、もし辞退しようものなら企業にとても迷惑がかかってしまいます。
もし別の気になるインターンと被ってしまい、まだ片方が選考途中の場合は、合格が出ても承諾せずに猶予をもらいましょう。

### 落ちたとき

この世の終わりのように捉えなくても大丈夫です！

嫌なこと・悪いことがおきたとき、その瞬間は辛く苦しいものですが、大きな期間で見ると意外と大したこと無かったりします。

私は高校生のとき、睡眠障害(病院にいってないので正確な診断はない)になったことがきっかけで鬱になりかけ、治るのに2年ほどかかりましたが、その結果自分の中で絶対に病まない条件を見つけることができました。

また、大学受験に大失敗し人生詰んだと思っていましたが、滑り止めの大学に進学したことで多くの経験をすることができました。

就活では行きたいインターンに落ちたものの、その期間中に別のインターンを入れたら、そのインターンがとても良かったなんてこともあります。

このように失敗しても実は良い方向に向かうことが往々にしてあるので、落ちたときはむしろ運が良かったと思って切り替えましょう！...

っていっても落ちた瞬間は辛いですよね〜
とりあえず挑戦しただけですごい！！よく頑張った！！

# 就活を終えて思ったこと

## アウトプット大事

正直エンジニアにとってアウトプットが大事なことは言わずもがなですが、就活においてもアウトプットは大切です。

自分が面接官だった場合、たった30~1時間程度で一緒に働くかどうかを決めるのは不安です。

そう、面接官も不安なはずです！

変な人間を次の選考に進めてしまったり、はたまた内定まで出してしまうと大変です。

どんな技術に興味を持っているのか、他社のインターンシップではどんなことをしていてどんなことを考えていたのか、できるだけ判断材料を増やすと面接官にとっても採用しやすいと思います。

技術ブログと体験記ブログを持つことをオススメします。

## チーム開発経験大事

面接で一番聞かれたのはチーム開発経験だと思います。

エンジニアといえばパソコンの前で一人カタカタするというイメージがありましたが、インターンを通して、想像以上にエンジニアはミーティングをするということがわかりました。

そのため、いくら技術力が高くてもチームとして動けない人は問題外になってしまいます。

チーム開発経験があると、しっかり人とコミュニケーションを取って開発を進めていく能力があると思ってもらいやすいので、コミュニティなりハッカソンなりで経験を積んでおくと良いと思います。

## connpassやyoutubeなどの勉強会コンテンツが役に立つ

connpassの勉強会は有名ですが、各社のYoutubeの技術チャンネルにも有益な勉強会の記録があります。

毎日勉強会に参加していると、技術面接で答えられる幅が大きくなります。
ご飯を食べながら、家事しながら見るだけでも全然違います。

またインターンの際に、ミーティングで技術用語が飛び交っていたので耳慣れしておくことも大切だと感じました。

「ｲﾁｸﾆ･ｲﾁﾛｯﾊﾟ!」みたいな謎の呪文はテキストで出てきませんし、技術用語は読み方がそもそも独特な場合も多々あります。
入社した後のミーティングについていくためにも、勉強会などの**目だけでなく耳でも学ぶ**ことをオススメします。

# おわりに

ここまで読んでいただきありがとうございました！
私のこれまでの経験が、少しでも参考になれば幸いです！

就活が思ったよりうまくいったので、過大評価されているのでは？と若干不安ですが、面接で関わってくださった方々の期待に応えるためにも、これから精進したいと思います。