新卒就活向け個人開発のすゝめ

## はじめに
現在情報系の大学院に在学しており長期インターンでアルバイトをしています。
Webアプリ開発歴は一年で、実務は半年です。2026卒のメガベンチャー志望で受かったり落ちたり、ちょうどボーダーの人間です。
就活もほぼ終わり、足に毛が生えてきたくらいの私だからこその視点で語れる個人開発、そして受けてきた中で感じてきた企業の基準を投稿させていただきます。

**この記事のゴール**：長期インターン **or** 新卒で**内定**を目指す個人開発をする

## なぜ個人開発をするのか？
個人開発を行う理由として独断と偏見で初心者は以下に分けられると思います。
- 好きなサービスを作りたい
- **ポートフォリオを制作したい**（長期インターンや就活に向けて）

今回は就活に向けたポートフォリオを作る人に向けて、有益な情報になれば幸いです。

## どんなポートフォリオを作成するか
ポートフォリオをとにかく作成したいという方において大事だと考えるのは技術力ベースで開発することだと考えており、具体的には以下のステップだと考えます。
自分は2026卒、メガベンチャー志望で就活をしていたのですが、ここ数年でかなり就活生のレベルも上がっているようで他の就活生から聞いた話や受けた肌感でレベル分けしていきます。
- 基礎編 ：当たり前レベル（結構みんなやっていた）
- 応用編1：評価が上がる項目 (あまりやっている人がいない)
- 応用編2：評価がかなり上がる項目 (ほとんどやっている人がいない)

**基礎編**
1. 使用技術を決める
1. CRUD処理を実装する
1. 認証を実装し、ユーザーごとにデータ管理

**応用編1**
1. セキュリティを高める
1. デプロイをする

**応用編2**
1. 外部APIの利用
1. クラウドサービスの利用（機能関連）

## 開発 （基礎編）
### 使用技術を決める
ここが初心者にとって一番の壁だと思います。実際に実装をするのは分からなくてもChat GPTを使えばなんとかなるのでここを意識していくのと、実用的かつ勉強コストが低いものを選びます。

**求人者ベースで考える**
求人者はできるだけ自分の会社の有益になる方を採用したいです。新卒で入社する場合はポテンシャル込みで問題ないのですが長期インターンでは話は別です。なのでよく使われている技術で開発することが必須だと考えます。

まず必須の技術についてです。これは基本的にほとんどの会社が使用しているものなので使えるようにしなければなりません。
- Github　(バージョン管理ツール)
- VS Code　(コードエディター)

そして以下は自身が考えるに初心者にとっては一強だと考えます。
- Typescript　(プログラミング言語)
- Vercel　(デプロイ用)

次に選ぶ必要があるものです。
**フロントエンド**
Next.js ( React ) **or** Nuxt.js ( Vue.js )

**バックエンド**
Lambda & API Gateway( AWS ) **or** Firebase Functions ( GCP )

**データベース**
Dynamo DB ( AWS ) **or** Firebase Firestore ( GCP )

#### 決まったら開発に取り組みます

### CRUD処理を実装する
開発にはCRUD処理と呼ばれるいわば雛形の機能があります。大まかな動作は表のようになっており、これをデータベースを用いて作成します。
| **TODOアプリ** | 機能例  |
|---|---|
|C （Create）  |タスクの作成|
|R （Read）    |タスクの読み取り|
|U （Update）  |タスクの更新|
|D （Delete）  |タスクの削除|

### 認証を実装し、ユーザーごとにデータ管理
次に認証を実装します。ユーザーIDとパスワードでログインするあれです。これによってユーザーごとにデータベースを管理することができます。
認証部分は実装しようと思えば一から可能ですが、セキュリティを担保するには難しいので基本的にはクラウドサービスを使用します( [Firebase Authentications](https://firebase.google.com/docs/auth?hl=ja)など)。

## 開発 （応用編1）
### セキュリティを高める
これは他のユーザーや悪意のあるユーザーにデータを流出しないようにしたり、自身のアプリを悪用させないようにします。
開発では環境変数（APIキー）などを使用しますが、その中には他人に覗かれてはいけない重要なキーもあります。これらをenv（環境変数）ファイルなどを用いて隠すことによってアプリの安全性を担保します。

**以下チェック項目です**
- 環境変数をコードに直書きしていない（.envのみ）
- 重要なデータはフロントでなく、サーバーサイドで扱っている
- データベースにセキュリティルールを掛けている


### デプロイをする
自分のサービスをネットに公開します。これによって誰でも簡単にアプリを利用できるようにします。この経験があるだけで就活での評価が上がります（実際に友人が褒められたそうです）。
近年様々なデプロイサービスがあり、そのほとんどにお金がかかります。無料枠というものもありますが、初心者にとって難しいです。
VercelというサービスはHobbyプランを選択すればお金がかかる心配はありません。本サービスはGithubと連携すれば自動的にデプロイも可能です。よって以下の項目を行うだけで簡単にデプロイが可能です。
- Githubと連携する
- 環境変数をVercelのプロジェクトに登録する

## 開発 （応用編2）
### 外部APIの利用
ここまでくるとおそらくAPIの知識が多少なりともついてくると思います。そこで自分が作成したAPIではなく、他人が作成したAPIを使用することで自身が機能を実装しなくても素晴らしい機能を借りることができます。
APIには様々なものがあり、Google社や楽天グループなど様々な企業がほぼ無料で提供しています。また面白いものを探したい人は以下の記事がおすすめです。

https://qiita.com/danishi/items/42d8adf6291515e62284

### クラウドサービスの利用（機能関連）
ここではGCPを例に話します。以下の例では自分の作ったAPIを指定の時間に動作させる例です。
ここまでできれば基本的なWeb開発はもちろん、実務でもかなり戦えると思います。
#### 例: 毎日決まった時間にメールを送信する機能を実装したい
Cloud Schedulerで毎日○時にシステムを起動してCloud Functionsを動かしてメール送信処理を行う、という仕組みを作成する。

## まとめ
以上が就活において重要な個人開発における要素だと自分は考えます。
就活には他にもコーディング対策、面接対策など様々ありますがポートフォリオの充実はその大切な一つの要素であり、**足きりの役割**を担っているのでここがしっかりしていないとそもそも面接にも進めません。

私は応用編2に関して就活までできていなかったですが、外資系でない限りここまでできれば書類選考で落とされることはほぼなかったです。
始めは色々なところで躓くと思いますがやっていけば就活だけでなく自身のエンジニアの成長としてもつながると思います。
#### レベルアップを目指して目標の企業から内定をいただいてください！！