MechaToraのブログ

記事のアイキャッチ画像
キャリア・資格

エンジニアのポートフォリオの作り方 - 実績で語る自己PR

「エンジニアとして転職したいけど、実務経験がない」「スキルをアピールする方法が分からない」——そんな悩みを解決するのが「ポートフォリオ」です。実際に動くアプリを作って公開することで、履歴書では伝えきれない技術力を証明できます。

この記事では、MechaToraで15個のWebツールを公開し、実際に社内で評価された経験から、効果的なポートフォリオの作り方を解説します。何を作るべきか、どう公開するか、どう見せるかまで、具体的なノウハウをお伝えします。

なぜポートフォリオが重要なのか

採用担当者が見るポイント

転職活動で、採用担当者がポートフォリオでチェックするのは:

私のポートフォリオの効果

MechaToraのポートフォリオを作ったことで、以下の成果がありました:

良いポートフォリオの3要素

セクション画像

1. 実用性のあるアプリ

Todoリストやメモアプリだけでは差別化できません。以下のような実用的なアプリが評価されます:

MechaToraの例:

2. 技術スタックの明示

使った技術を明確に示すことで、スキルセットが一目で分かります:

## 技術スタック

### フロントエンド
- HTML5 / CSS3 / JavaScript (ES6+)
- React 18.2.0
- Tailwind CSS

### バックエンド
- Node.js 18.x
- Express 4.18
- Firebase Firestore

### インフラ
- GitHub Pages
- Firebase Hosting
- Cloudflare CDN

### ツール
- Git / GitHub
- VS Code
- Figma(デザイン)

3. ソースコードの公開

GitHubでソースコードを公開することで、コーディングスキルを直接評価してもらえます:

ポートフォリオに載せるべきプロジェクト

最低3つ、理想は5〜10個

評価 コメント
1〜2個 不十分 継続力が疑われる
3〜5個 合格ライン 基本的な技術力を証明できる
6〜10個 高評価 技術の幅と継続力をアピール
11個以上 かなり高評価 ただし質も重要

バランスの取れたプロジェクト構成

以下のように、異なる種類のプロジェクトを組み合わせると効果的です:

1. 基礎力を示すプロジェクト(1〜2個)

2. 実用的なプロジェクト(2〜3個)

3. 技術力を示すプロジェクト(1〜2個)

MechaToraのプロジェクト構成

私のポートフォリオ(15個)の内訳:

ポートフォリオサイトの作り方

セクション画像

必須要素

  1. 自己紹介:名前、スキルセット、経歴
  2. プロジェクト一覧:作品を見やすく配置
  3. 技術スタック:使える技術を明記
  4. GitHub / 連絡先:リンクを明示

シンプルなHTML構成例

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>MechaTora - Portfolio</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <!-- ヒーローセクション -->
    <section class="hero">
        <h1>MechaTora</h1>
        <p>社労士 × エンジニア</p>
        <p>HTML/CSS/JavaScript, R言語, データ分析</p>
    </section>

    <!-- プロジェクト一覧 -->
    <section class="projects">
        <h2>プロジェクト</h2>
        <div class="project-grid">
            <!-- プロジェクトカード -->
            <div class="project-card">
                <img src="earthquake-monitor.jpg" alt="地震モニター">
                <h3>地震モニター</h3>
                <p>気象庁APIを使ったリアルタイム地震情報通知</p>
                <div class="tech-stack">
                    <span>JavaScript</span>
                    <span>Leaflet.js</span>
                    <span>API連携</span>
                </div>
                <div class="links">
                    <a href="https://mechatora.com/earthquake-monitor">デモ</a>
                    <a href="https://github.com/mechatora/earthquake-monitor">GitHub</a>
                </div>
            </div>

            <!-- 他のプロジェクトカード... -->
        </div>
    </section>

    <!-- スキルセクション -->
    <section class="skills">
        <h2>技術スタック</h2>
        <div class="skill-category">
            <h3>フロントエンド</h3>
            <ul>
                <li>HTML5 / CSS3 / JavaScript (ES6+)</li>
                <li>React, Vue.js</li>
                <li>Responsive Design</li>
            </ul>
        </div>
        <!-- 他のカテゴリ... -->
    </section>

    <!-- コンタクトセクション -->
    <section class="contact">
        <h2>お問い合わせ</h2>
        <p>GitHub: <a href="https://github.com/mechatora">@mechatora</a></p>
        <p>Email: contact@mechatora.com</p>
    </section>
</body>
</html>

デザインのコツ

テンプレートの活用

デザインが苦手な場合は、無料テンプレートを活用:

GitHubを効果的に使う

README.mdの書き方

プロジェクトごとに、以下の内容を含むREADME.mdを作成:

# 地震モニター

リアルタイムで地震情報を取得して通知するWebアプリ

## デモ
https://mechatora.com/earthquake-monitor

## スクリーンショット
![地震モニター](screenshot.png)

## 機能
- 気象庁APIから最新の地震情報を取得(30秒ごとにポーリング)
- 震度5弱以上でブラウザ通知
- Leaflet.jsで震源地を地図に表示
- 過去24時間の地震履歴を一覧表示

## 技術スタック
- フロントエンド: HTML, CSS, JavaScript
- ライブラリ: Leaflet.js
- API: 気象庁API
- ホスティング: GitHub Pages

## セットアップ
```bash
git clone https://github.com/mechatora/earthquake-monitor
cd earthquake-monitor
# ローカルサーバーで起動(Live Serverなど)
```

## 開発の背景
2024年の元日に能登半島で大きな地震があり、リアルタイムで情報を知る手段が必要だと感じたため開発しました。

## 今後の改善予定
- [ ] WebSocket対応(ポーリング→リアルタイム)
- [ ] 震度別の色分け
- [ ] 通知設定のカスタマイズ

## ライセンス
MIT

GitHubプロフィールの最適化

# 特別なリポジトリ(ユーザー名と同じ名前)を作成

# README.md の例
# Hi, I'm MechaTora 👋

社労士 × エンジニアとして、人事データ分析とWebアプリ開発をしています。

## 🛠 技術スタック
- **言語**: JavaScript, R, HTML/CSS
- **フレームワーク**: React, Vue.js
- **ツール**: Git, Firebase, Leaflet.js

## 📊 統計
![GitHub Stats](https://github-readme-stats.vercel.app/api?username=mechatora&show_icons=true)

## 🚀 最近のプロジェクト
- [地震モニター](https://github.com/mechatora/earthquake-monitor): リアルタイム地震情報
- [日本酒検索](https://github.com/mechatora/sake-search): 楽天API連携

## 📫 連絡先
- Website: https://mechatora.com
- Email: contact@mechatora.com

コミットメッセージの書き方

分かりやすいコミットメッセージで、開発プロセスを示します:

# 良い例
feat: 震度5弱以上でブラウザ通知を追加
fix: 地図の初期位置が日本の中心になるよう修正
docs: README.mdにセットアップ手順を追加
refactor: API呼び出しを別ファイルに分離

# 悪い例
修正
バグ直した
更新

ポートフォリオの公開方法

1. GitHub Pages(無料・おすすめ)

# リポジトリ設定 → Pages → Source: main branch
# https://username.github.io/ でアクセス可能

# カスタムドメインも設定可能
# https://mechatora.com/

2. Netlify / Vercel

3. Firebase Hosting

実際の面接での使い方

事前準備

面接での見せ方

  1. 概要説明(30秒):「どんなアプリか」を簡潔に
  2. 技術説明(30秒):使った技術とその理由
  3. デモ(1分):実際に操作して見せる
  4. 学び(30秒):開発で得た知見

私の例:

「地震モニターは、気象庁APIを使ったリアルタイム地震情報通知アプリです。JavaScriptでAPIを30秒ごとにポーリングし、Leaflet.jsで地図に震源地を表示します。開発の中で、API Rate Limitingへの対処法や、リアルタイム通知の実装を学びました。実際に使っており、震度5以上の地震を見逃さずキャッチできています。」

まとめ

効果的なポートフォリオのチェックリスト

ポートフォリオ作成のロードマップ

  1. 1ヶ月目:基礎プロジェクト1つ(Todoアプリなど)
  2. 2〜3ヶ月目:実用的なプロジェクト2つ
  3. 4ヶ月目:ポートフォリオサイト作成
  4. 5ヶ月目以降:継続的にプロジェクト追加

ポートフォリオは、作って終わりではありません。継続的に更新し、新しい技術を学び続ける姿勢を示すことが重要です。MechaToraも、2年間で15個まで増やし、今も月1個ペースで追加しています。

まずは小さなプロジェクトから始めて、徐々に拡充していきましょう!