「このポートフォリオで通用するんだろうか」
作っている最中も、完成した後も、この不安は消えません。基準が分からないから当然です。
僕は現役エンジニアとして、未経験の方のポートフォリオを添削しています。
その立場から、思い切ったことを先に書きます。
未経験の技術力なんて、どんなに頑張っても大したものにはなりません。
これは厳しい話ではなく、朗報です。
採用する側もそれを分かっているので、技術力では見ていないからです。
結論:見られているのは「過程」です
採用する側が見ているのは、この2つです。
- 基礎をしっかり理解できているか
- 自分で考えてコードを書く力があるか
つまり技術力ではなく過程です。
- どうやって壁を乗り越えたのか
- 何を課題だと考えて、それを解決するために何を勉強したのか
- 実際に解決できたのか
だから「レベル」とは、技術の難易度ではありません。理解の深さのことです。
機能を10個積んでも、説明できなければ評価は上がりません。
最低限の合格ライン
そのうえで、土台としてここは押さえてください。
1. ログイン機能がある
ユーザー登録・ログイン・ログアウトができる。Laravelなら標準の認証機能で構いません。
2. 登録・一覧・編集・削除が一通り動く
この4つが動けば、Webアプリの基本は押さえていると判断されます。
3. 入力チェック(バリデーション)が入っている
- 未入力のまま送信できない
- 文字数の上限がある
- エラーメッセージが表示される
意外にも、ここが抜けている作品がとても多いです。
入っているだけで「実務を意識できている」と評価されます。
4. 非同期処理が1か所ある
ページ全体を読み込み直さずに、一部だけが変わる動きです。
お気に入りボタン、チェックの切り替え、絞り込み検索などが入れやすいです。
全部を非同期にする必要はありません。1か所でいいので必ず入れてください。
理由は後で書きますが、僕が面接で失敗した場所だからです。
5. 実際に触れる状態で公開されている
GitHubのコードだけでは不十分です。URLを開いてすぐ触れる状態にしてください。
- サーバー:Xserver、さくら、Render、Railway など何でもOK
- ログインが必要な場合は、テスト用アカウントをREADMEに明記
6. READMEが書かれている
何のアプリで、誰の何を解決するのかが書いてあること。
ここが無いと、そもそも中を見てもらえません。
機能は4つほどで十分です
「もっと機能を足したほうがいいですか」とよく聞かれますが、必要ありません。
機能は4つほどがちょうどいいです。
- 多すぎると、一つひとつが浅くなる
- 面接で全部は説明できない
- コードが散らかって読みにくくなる
10個の機能を浅く積んだ作品より、4つを説明しきれる作品のほうが強いです。
僕が面接で落ちた話
なぜ「説明できるか」がすべてなのか。実体験を書きます。
当時の僕のポートフォリオは、自問自答クイズアプリでした。
彼女が管理栄養士を目指していて、間違えた問題だけを集めた問題集をスマホで作れたらいいな、というところから作ったものです。
面接では、コードは軽く見られただけでした。じっくり読まれてはいません。
その代わり、こう聞かれました。
このボタンを押したら、どうなっているんですか?
あれは画面読み込みのぐるぐる(ローディング)について聞かれていました。
でも僕は答えられず、「ルートからコントローラーで…」という話しかできませんでした。
自分で作ったアプリなのに、です。
ここから分かることは2つあります。
- 面接官はコードを全部読まない。動きについて質問してくる
- 聞かれるのは「画面で何が起きているか」。ファイル名の話ではない
だから機能の数を増やすより、4つを完全に説明できる状態にするほうが早いんです。
評価を大きく上げる要素
1. 「誰の、どんな困りごとを解決するか」が明確
ここが一番大きいです。ストーリーがある作品は、それだけで他と分かれます。
身近な人の困りごとで十分です。僕は彼女の資格勉強から作りました。
2. 詰まったポイントと、その解決過程が語れる
詰まらずに作れる未経験なんていません。
だから「どこで詰まって、どう調べて、どう直したか」が話せる人は信用されます。ここがまさに「過程」です。
3. 書き方が統一されている
実務で僕が一番よく指摘されるのが、実はここです。
Ahagate
ahaGate
AhaGate
aha_gate
どれが正解ということはありません。混ざっていることが問題です。
作品の中だけでも書き方を1つに揃えてください。読む人の負担がまったく違います。
4. コミットが機能単位で刻まれている
コミットが3件しかなかったり、メッセージが「update」ばかりだと、コピーを疑われます。
逆に、いらないもの
| いらないもの | 理由 |
|---|---|
| テストコード | 未経験の段階では不要。そこに時間を使うなら、動きを説明できるようにするほうが効く |
| 決済機能 | 実際には動かせず、実装も重い |
| 凝ったデザイン | 見られるのは中身。時間の使いどころが違う |
| 流行りの技術を無理に使う | 説明できないなら逆効果 |
| 機能を10個以上 | 全部が浅くなる |
| Reactなどを慌てて足す | 1つを深くやるほうが評価される |
最後の行は特に伝えたいところです。
資格やいろんな言語に手を出す人がいますが、大事なのは1つを極めることです。
制作期間の目安
| 期間 | やること |
|---|---|
| 1週目 | 誰の何を解決するか決める/画面とテーブルを紙に書く |
| 2〜3週目 | ログイン+登録・一覧・編集・削除を作る |
| 4週目 | 非同期処理を1か所入れる/READMEを書く/公開する |
1カ月前後が目安です。実際、僕が伴走したSさんもポートフォリオは約1カ月で作っています。
長くかけるほど良いものになるわけではありません。
むしろ作った時期から時間が空くと、面接での温度感が冷めます。完成したらすぐ応募してください。
完成したら必ずやってほしいこと
作品の中でよく使うボタンを3つ選んで、押してから画面が変わるまでを声に出して説明してください。
- ボタンを押すと、どこに情報が飛ぶのか
- そこで何を判断して、何を保存または取得しているのか
- 結果が画面のどこに、どう返ってくるのか
詰まったところが、そのまま面接で落ちる場所です。
僕はここをやらずに面接へ行って、答えられませんでした。
よくある質問
Q. 何本作ればいいですか?
A. 1本で十分です。説明しきれる1本のほうが、浅い3本より強いです。
Q. Laravelでないとダメですか?
A. そんなことはありません。僕の兄は素のPHPで作った作品で、30歳近くに転職を決めています。
Q. AIを使って作ってもいいですか?
A. 使ってもいいですが、使ったぶんだけ読んでください。「これどうやって実装したんですか」と聞かれて答えられないと、そこで終わります。
Q. 学んだ言語の会社にしか入れませんか?
A. そんなことはありません。Sさんに教えたのはLaravelでしたが、受かった会社はRubyを使っていました。言語より、自分で考えて書けるかどうかが見られています。
まとめ
- 未経験の技術力は大したものにならない。だから技術力では見られていない
- 見られているのは過程。どう詰まって、どう解決したか
- 合格ラインはログイン・登録編集削除・入力チェック・非同期1か所・公開・README
- 機能は4つほど。数より、説明できるかどうか
- 完成したら、ボタン3つ分の動きを声に出して説明してみる
レベルを上げようとして機能を足すのは、たいてい逆効果です。
作ったものを説明できる状態にするほうが、はるかに評価されます。
次に読む記事
ポートフォリオの無料添削をしています。LINEから送ってください。営業は一切しません。