「このポートフォリオで通用するんだろうか」

作っている最中も、完成した後も、この不安は消えません。基準が分からないから当然です。

僕は現役エンジニアとして、未経験の方のポートフォリオを添削しています。
その立場から、思い切ったことを先に書きます。

未経験の技術力なんて、どんなに頑張っても大したものにはなりません。

これは厳しい話ではなく、朗報です。
採用する側もそれを分かっているので、技術力では見ていないからです。


結論:見られているのは「過程」です

採用する側が見ているのは、この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つあります。

  1. 面接官はコードを全部読まない。動きについて質問してくる
  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つ選んで、押してから画面が変わるまでを声に出して説明してください。

  1. ボタンを押すと、どこに情報が飛ぶのか
  2. そこで何を判断して、何を保存または取得しているのか
  3. 結果が画面のどこに、どう返ってくるのか

詰まったところが、そのまま面接で落ちる場所です。
僕はここをやらずに面接へ行って、答えられませんでした。


よくある質問

Q. 何本作ればいいですか?
A. 1本で十分です。説明しきれる1本のほうが、浅い3本より強いです。

Q. Laravelでないとダメですか?
A. そんなことはありません。僕の兄は素のPHPで作った作品で、30歳近くに転職を決めています。

Q. AIを使って作ってもいいですか?
A. 使ってもいいですが、使ったぶんだけ読んでください。「これどうやって実装したんですか」と聞かれて答えられないと、そこで終わります。

Q. 学んだ言語の会社にしか入れませんか?
A. そんなことはありません。Sさんに教えたのはLaravelでしたが、受かった会社はRubyを使っていました。言語より、自分で考えて書けるかどうかが見られています。


まとめ

  • 未経験の技術力は大したものにならない。だから技術力では見られていない
  • 見られているのは過程。どう詰まって、どう解決したか
  • 合格ラインはログイン・登録編集削除・入力チェック・非同期1か所・公開・README
  • 機能は4つほど。数より、説明できるかどうか
  • 完成したら、ボタン3つ分の動きを声に出して説明してみる

レベルを上げようとして機能を足すのは、たいてい逆効果です。
作ったものを説明できる状態にするほうが、はるかに評価されます。

次に読む記事


ポートフォリオの無料添削をしています。LINEから送ってください。営業は一切しません。