就活のために自主開発した話
はじめに
タイトルの通り、自主開発で植物病害診断のWebアプリを作りました。
今回はこれを作るにあたった経緯と、実際就活で役に立ったかどうかを話していきたいと思います。
本記事は 法政大学理工学部 Advent Calendar 2023 3日目の記事です。
経緯
私はWebエンジニア志望で就活しています。
就活は今年(2023年)の春から始めており、就活初期はWeb系メガベン中心にインターンを受けまくってました。
結果としては惨敗で、何とか一社受かった程度でした。
自分は喋るのが得意ではないですが、Web系のスタートアップでアルバイトしていた経験があり、ほかの就活生よりはアドバンテージあるだろうと高を括ってた結果がこれです。
ESは通ってましたが、大体一次面接で落ちました。
その面接で一番見られてたと感じたのは「どういった意図をもってその開発をしたのか」でした。
- なんでその技術を選んだの?
- その技術の利点は?
- なんでその機能が必要なの?
- etc
アルバイトで、言われた通りに機能を作り、言われた通りに開発していた私はそこで見事に破壊されたわけです。
インターン募集が終了した頃、焦りを感じた私は某就活エージェントに登録しました。
その就活エージェントに言われたのが「自主開発をしろ」でした。
インターン面接惨敗の結果から、自分で考えて技術選定から機能要件までやる必要があると感じた私は、就活エージェントの指示を真に受けて自主開発することにしました。
技術選定・機能要件
まず「何を作るか」から考える必要がありました。
ちょうど植物病害自動診断システムに関する研究をしていたのもあったので、これをWeb上で実行できるSaaS的なものを作ることに決めました。
機能要件としては以下の機能を考えました。
- ユーザー登録
- ログイン
- 診断
- 診断モデル作成
- 診断モデル削除
この機能を実現するために以下の理由と共に技術選定を行いました。
- 診断サーバー:Python (FastAPI, Pytorch)
研究をPytorchでやっているためPythonで実装する必要があった。 - バックエンドサーバー:Go (Echo)
アルバイト経験をゴリ押しするため。バックエンドと診断サーバーの分離による責務の切り分けのため。 - フロントエンドサーバー:Next.js
いい感じのUIにするため。 - データストア:Postgres
知見があるため。 - ミドルウェア:nginx
Apacheより強いらしいので。 - インフラ:GCP (Compute Engine)
無料クレジット枠がAWS通らなかった...
開発自体は未経験のフロントに苦労したのもあって、大体2ヵ月くらいかかりました。
就活で役に立ったか
結論から言うと、メガベンには一切刺さらず、中堅企業にはガン刺さりしました。
インターンのESはアルバイト経験をゴリ押して書いていましたが、本選考のESはアルバイト+インターン経験と自主開発を押し出して書きました。
その結果、インターン時にES通ってたメガベンは大抵ESで落とされました。?????????
一方で、中堅企業は自主開発に対する食いつきがよく、面接で深い実装や技術選定の部分まで話せたのもあってかなり好印象な感じでした。
終わりに
これを書いてる段階で、第一志望群の持ち駒が残り三つ程度なので、自分は結構就活失敗したほうかなと思ってます。
後悔としては、現状の技術力に満足せず、もっと早い段階で自主開発したり、多くのインターンに参加しとけばよかったなと思ってます。
Web系の人以外にも通ずる話かなと思うので、これから就活を始める人は反面教師にして頑張ってほしいと思います。
Discussion