新卒IT就活体験記

# はじめに
この記事は僕が24卒のIT就活を終えて思ったことや、取り組んできたことをまとめたものになります。日記程度のマインドで書いていますので、参考程度に読んでもらえると嬉しいです。

# 対象読者
- リアル後輩
- これからIT業界で新卒就活をする人(学部生)

# 筆者の情報
- 情報系の学部生(成績下の下)
- AtCoder 緑
- web開発歴2年ちょい
- web系のIT企業志望

# この記事で書くこと
- 就活のスケジュール
- 自己分析の方法
- 企業選びについて
- 成果物について
- 企業研究について
- コーディング試験対策
- 面接対策
- まとめ

# 就活のスケジュール

僕の実際のスケジュールです。理系は大学院に進学する友達が多いため，やる気のある文系の友達に影響されて比較的早めに始められたので良かったと思っています。

**3年生4月：　自己分析始める**
**3年生5,6月：サマーインターンES提出**
**3年生7月：　サマーインターン面接**
**3年生8,9月：サマーインターン参加**
**3年生10月： 本選考ES提出開始**
**3年生12月： 大量の面接**
**3年生1月：　内定**

# 自己分析の方法
就活=自己分析と言ってもいいほど、自己分析は大切だと思っています。企業研究をしている時も、ESを書いている時も、面接をしている時も、お祈りメールを貰ったときも、内定を貰ったときも、なぜその会社に行きたいのか、その会社で何がしたいのかを自問し続けるからです。自己分析ができていないと、その問いに明確に答えられないと思います。会社に入ってから後悔する、なんてこともありえます。

ネットで調べたら色々出てくると思いますが、一応僕の自己分析を軽く紹介します。基本的には以下のような質問に対して自分の回答の深掘りや抽象化をします。

**今までどんなときに喜びを感じてきたか？**
→サッカーをしてるとき、バンドをしてるとき、友達と競プロの大会に挑戦したとき...なぜ？
→みんなと喜びを共感できたから、仲間の役に立てて嬉しかったから、感謝されて嬉しかったから
→人付き合い、他者思考

**今まででどんなことに成功したか？**
→小中高と、代表として良好な団体を作ってこれた
→部員みんなと仲が良かったから、チームのため、友達のために努力したから
→人のために努力できることが強み

同様に、失敗した経験など、今までの印象的な出来事について分析をしていくと段々と自分がどんな性格なのか、価値観などがわかってくると思います。

実際にはこのプロセスを、ESや面接のたびに何度も何度も繰り返します。ESを書く際などに、受ける会社に影響されて変動するのですが、最終的には残っている価値観が本当に自分に大切なものなのだと思います。あとは、家族や友達に話すのもいいと思います。親密な人なら共感してくれるかもしれないし、新しい発見もあるかもしれません。

# 企業選びについて
自己分析が終わったら企業選びの軸を決めていきます。メガベン or ベンチャー，web系 or SIer，toB or toCなどいろんな選択肢があると思いますが，自己分析の結果を踏まえて，どんな会社に行きたいのかを考えます。僕は，技術者として成長できる環境として裁量権があること，仲間と一丸となって自社のサービスを育てていける環境，たくさん人の暮らしを豊かにできるようなサービスを開発できる環境，という主軸をもって就活をしていました。それ以外にも，年収や福利厚生，副業ができるかなども判断軸に入れていました。

僕は最初は，メガベン，ベンチャーと幅広く考えていましたが最終的には，メガベンになりかけのベンチャーが一番良いと考えるようになっていました。会社規模が大きいほど給料や福利厚生はよくなる傾向にあると思うのですが，そのような考えに至ったのは，何でもできるエンジニアになりたい，部署ガチャを引きたくない，大人数のうちの一人になりたくない，と思ったからです。

これに関しては，完全にその人次第になると思うので，自己分析の結果と相談しながら，考えてみると良いと思います。

# 企業研究
企業選びの軸が決まったら、実際に企業を調べていきます。企業研究は自己分析と同じくらい大事なフェーズだと思っているのでしっかりと時間をかけて行いました。僕が行った企業研究は以下の通りです。

- テックブログをざっと読む
- 説明会に参加する
- 採用ホームページ・ブログを読む
- openworkで調べる
- インターンに参加する
- 外資就活，ワンキャリアで他の人の志望動機，企業研究を読む

企業研究を行うことで，もちろんESや面接の対策にはなりますが，何より自分が本当にその会社に行きたいのかがわかってきます。就活に割ける時間と労力は限られているので，本命の会社の準備に時間をかけられるように企業研究はしっかり行うべきだと思います。





# 成果物について
学部生だとまだ研究をしていないと思うので，技術力はもちろん，プログラミングに対する姿勢を示すのに一番有効なのが成果物だと思います。本選考までにまだ時間がある場合は，何か一つでいいので以下の項目を説明できるようなものを作ってみることをお勧めします。
- なぜ作ろうと思ったか(何を解決したかったのか)
- なぜその技術選定をしたのか
- 作った結果どうなったか

この経験があると，ESで有利になると思いますし，面接でも好印象につながることは間違いないと思います。僕は，サークルの技術ブログを作った話や，個人開発で作っている途中だったスマホアプリの話をしていました。作りかけのものでも問題はありませんでしたが，作った結果の話や，ユーザーフィードバックからの機能改善の経験の話を聞かれたこともあったので，完成しているに越したことはないと思います。


# コーディング試験対策
コーディング試験には主にアルゴリズムの試験(競プロ)と実装の試験とアプリ開発の試験の3種類があります。

### アルゴリズム
企業によって難易度はバラバラですが，AtCoderのA～Dくらいの範囲だと思います。制限時間は1～2時間くらいのことが多いです。
ベンチャーだと，A + B + (C)，メガベンだと，B + C + (D)みたいな難易度構成が多いです。これに関しては，AtCoderの過去問を解いて対策するのが一番早いと思います。
具体例を挙げると，Aでは簡単な四則演算，Bではif文for文を使った計算，Cでは構造体や簡単なアルゴリズム(2分探索, dfs等), Dでは複雑なアルゴリズム(桁DP, ダイクストラ法等)が出題されました。特に「答え決め打ちの二分探索」は何度か出題されたのでおさえておくと良いと思います。AtCoderだと[この問題](https://atcoder.jp/contests/typical90/tasks/typical90_a)などです。

### 実装
メガベンの一部の企業で出題されます。施設の予約システムや注文受付システムなどの身の回りにあるシステムを，与えられた具体的な仕様通りに実装をします。制限時間は2～3時間くらいのことが多いです。アルゴリズムというよりは，構造体の仕組みを理解しておくことや適切に使い分けることが重要になってくると思います。対策としては，LINEなどが[過去問の解説](https://engineering.linecorp.com/ja/blog/commentary-of-coding-test-2021/)をあげているのでそれを解いてみて，雰囲気をつかむのが良いと思います。


### アプリ開発
勢いのあるベンチャーやメガベンの一部で出題されます。あらかじめ指定された仕様通りにwebアプリやサーバ構築を行います。制限時間は1～2週間程度のことが多いです。アプリ開発に関しては株式会社ゆめみさんが公開している[フロントエンドコーディング試験](https://notion.yumemi.co.jp/0e9ef27b55704d7882aab55cc86c999d)が非常にいい練習になると思うので一度自分で作ってみるといいと思います。サーバ構築に関しても，ec2, NginxやApache等と好きなフレームワークを使ってAPIサーバーを自分で構築してみるのがいい練習になると思います。

全体を通しての対策として，サマーインターンを片っ端から応募するという方法が一番いいと思います。本選考前に実際のコーディングテストの経験を積むことができるからです。

# 面接対策
面接はおそらく，人事面接，技術面接の2つに分けられると思います。どちらも，30分から1時間ほどの面接で，自己紹介➝面接➝逆質問，という構成になっています。「ワンキャリア」や「外資就活」で過去5年間くらいの体験記を読み漁るのがおすすめです。会社によっては，採用面接に関する記事をブログにあげていることがあります。求められている人物像や，面接の意図などが書かれていることがあるので，調べておくことをお勧めします。

https://www.cyberagent.co.jp/way/list/detail/id=25850

https://about.yahoo.co.jp/hr/linotice/20221025.html

### 人事面接
人事面接はよくある面接と一緒で，これまでの人生についてや，会社の志望理由，入社後の計画等について聞かれます。変な質問は滅多にされないので，自己分析，企業研究がしっかりできていれば基本的にはちゃんと受け答えできると思います。よくある質問集などをネットで調べて対策しておくと安心して挑めると思います。

**実際によく聞かれた質問例**
- 今までに遭遇した最も困難だった経験とその解決方法
- 就活の軸
- 他社の選考状況
- プログラミングを始めたきっかけ
- 苦手な人の特徴とその人との付き合い方
- どんなエンジニアになりたいか
- 今まで最も力を入れて頑張ったこと




### 技術面接
技術面接では，これまでの開発経験や技術スタックなど技術的な内容を聞かれます。中には，その場で出されたソースコードの解説や，実際にコーディングをするものもありました。この面接は，現場のエンジニアとの面接になるので付け焼き刃では通用しません。自分が今までの開発したものについてまとめておくと良いと思います。あと，わからない質問は素直にわからないと言うのがいいと思います。（多分ばれるので，，）

**よく聞かれた質問例**
- これまでに開発したプロダクトについて
  - 開発したきっかけ
  - 技術スタック
  - 技術の選定理由
  - 開発で苦労した点とその乗り越え方
- チーム開発の経験とその時の役割について
- なぜ(フロント，バックエンド)志望なのか
- コーディング試験の発展問題をその場で解け



### 逆質問
逆質問の時間は面接によって変わります。大体5～15分くらいのことが多いです。その会社について気になっていたことを質問して，時間が余ったら汎用的な質問をして，時間一杯使うようにしていました。再度企業分析を行うときにも使えるので，質問に対する回答は許可を取ってからメモるようにしていました。僕が良くしてた質問をまとめておきます。

<details><summary>逆質問例</summary>

- 面接官の普段の業務について
- 会社のいいところ，強み
- なぜその会社で働いているのか
- 若手の裁量について
- 技術スタックについて
- チーム体制について
- 自分に足りないもの
- どんな新卒に期待するか
- 会社の今後の展望について
</details>

# まとめ
最後に特に伝えたいことを簡単にまとめます。

### 自己分析，企業研究をしっかりする
ESや面接の対策になるだけでなく，その会社に自分が合っているのか，やりたいことができるのか，後悔しないためにもとても大切だと思います。

### ライバルは情報系大学院生という意識
有名企業のインターンに行くとわかりますが，周りはほとんど良い大学の大学院生です。しかもほかの会社のインターンで顔馴染みなんてこともよくあります。ライバルは2歳年上の大学院生ということを肝に銘じて，消して油断しないで全力で準備をするべきだと思いました。(あの人たちがサマーインターン枠を占領してるのではないか...?)

### サマーインターンの選考をたくさん受ける
ES, コーディング試験, 面接の練習を本選考前にいっぱい経験することができます。また，その結果で自分の現状の実力がわかるので，いろんな会社のサマーインターンを積極的に受けるべきだと思います。

# おわりに
就活はただの会社選びだけではなく、自分がどんな人間なのかを突き詰める活動でもある気がしました。
あくまで学生の一意見ではありますが，少しでもこれから就活をする人の参考になれば嬉しいです。