- エンジニア採用でポートフォリオって必要?
- ポートフォリオは何をどう作ったら良い!?
- ポートフォリオは最低限、どのレベルまで求められる?
エンジニアが転職やフリーランス案件の面接で採用を獲得するには、ポートフォリオ作成は必須です。しかし、「何をどう作ったらよいかわからない」という声が本当に多い。
私は本業のエンジニア業に加え、副業でブログ・Web開発・不動産など複収入を確立している個人事業主です。エンジニア歴21年の経験値から、フリーランスエンジニア業界を徹底分析しています。
この記事では、エンジニアの「ポートフォリオの作り方・コツ」や「面接に必要な最低限のレベル」について解説します。
この記事を読めば、面接で高評価を受けるポートフォリオが作れるようになります。
エンジニアにとってのポートフォリオ作成の意義
エンジニアのポートフォリオとは、自分のスキルや実績を伝えるための作品集のことです。
就職活動やフリーランスエンジニアの案件獲得の際に必須になります。このポートフォリオがないと、採用者から相手にもされません。
本章では、次のようなポートフォリオを作る意義・理由を解説します。
- 【意義1】現スキルをアピールできる
- 【意義2】前向きな姿勢をアピールできる
- 【意義3】自身の成長の記録になる
【意義1】現スキルをアピールできる
ポートフォリオは、現時点で保有しているスキルを具体的に証明できる。そのため、スキル重視の採用者にとっては、最大の採用判断の材料となります。
「スキルシートだけで十分では?」と思うかもしれませんが、文章だけでは実力の証明までは不可能です。そのため、ポートフォリオがあった方が圧倒的に面接時に有利なのです。
説明下手でもポートフォリオでスキルを正確に伝えることができる!
【意義2】前向きな姿勢をアピールできる
ポートフォリオを作ることでスキルUPに対して前向きな姿勢もアピールできる。そのため、低レベルなポートフォリオでも作ること自体に価値があります。
ポートフォリオには「現在のスキルを証明する」側面と「将来的な伸びしろを感じてもらう」側面があり、後者が採用の決め手になることも多いのです。
このように意外にも、ポートフォリオのヒューマンスキル的な要素も採用過程においてはかなり見られるので注意しましょう。
「高いスキルがあるから」と横柄な態度では採用には至らない!
スキルシートも併用した人間力のアピールも大切だぞ。
「低レベルのポートフォリオでは採用の逆効果では?」という方も心配不要です。「低レベル=完成度が低い」では「仕事が雑」と解釈されNGですが、「低レベル=単純な機能のみ」であればOKです。
理由は「ポートフォリオの作り込みが不要な2つの理由」の章でも後述しますが、採用までの最短ルートを優先すべきだからです。
【意義3】自身の成長の記録になる
ポートフォリオは、自分自身のスキルの成長の記録になる側面もあります。
新たに獲得したスキルの整理ができると共に、すでに保有しているスキルと組み合わせて応用が効き、新たな機能実現ができるようになったりもするのです。
また、ポートフォリオ作成としてアウトプットをすることで、学習したスキルが定着しやすくなります。
スキルの成長に合わせて常にポートフォリオを更新していくことが重要です。
ポートフォリオの作り方 〜コツ9選【優先度順】〜
高評価を得やすいポートフォリオの作り方のコツを優先度順に紹介します。
ポートフォリオの作り方のコツ9選
- 【コツ1】市場価値のある技術カテゴリを選択する
- 【コツ2】使用技術をトップページやREADMEにわかりやすく記述する
- 【コツ3】程良くパクりながら自力で開発をする
- 【コツ4】直感的にわかるUI/UXにする
- 【コツ5】リリース(Web公開)する
- 【コツ6】しっかりテストを行う
- 【コツ7】コードを見やすくする
- 【コツ8】難しい技術よりも機能の数を優先する
- 【コツ9】トレンドの開発環境も使えることをアピール
ポートフォリオを作成で最も重要なことは、「相手(採用担当者)の目線でポートフォリオを作ること」です。
ポートフォリオで採用者が重視するポイント
- スキル(言語、フレームワーク、開発ツールなど)
- 作品の品質
- 前向きな姿勢や人間性
ポートフォリオを紹介するための入り口として、次のサンプルを参考にWebページを作っておくと良いでしょう。
ポートフォリオ紹介のトップページの例
- 自己紹介
- スキル(スキルシートは別途用意)
- ポートフォリオ作品へのリンク
»参考| ポートフォリオ実例1(https://nsuzuki7713.github.io/portfolio/)
»参考| ポートフォリオ実例2(https://simablog.net/portfolio/protfoliopage/)
【コツ1】市場価値のある技術カテゴリを選択する
「市場価値のある技術が何か」を求人情報を見ながら見極めていくことが重要です。
安易に「トレンドだから」「昔から有名だから」の理由だけで飛びついてしまうと、仕事の選択の幅を狭めてしまいます。
たとえば近年では、Go言語の人気は高く単価も高いのですが、求人数はまだ多くはありません。スキルのバリエーションとしては良い選択ですが、メインスキルに置いてしまうと、求人が見つからずに詰んでしまう可能性があります。
フリーランスが今からGo言語を学ぶのはアリ?ナシ? Go言語のフリーランス案件の単価は?求人数は? Go言語が活かせる仕事の種類ってどんなものがある? Go言語(Golang)は近年で大流行しているプログラム言語で[…]
また、組み込み・制御系のジャンルを攻めるのに、C言語系を習得しない手はありえません。
C言語やC++言語をメイン言語としてフリーランスで独立できる? 「C言語は難しい」と聞くけど、今から学ぶ価値ある? C言語エンジニアの将来性は? 「C言語は習得が難しいからやめとけ」の声を鵜呑みにし、難しいという理[…]
このように、あなたが狙う業種によって市場価値のある技術カテゴリは異なるので注意が必要です。言語別・職種別のフリーランスエンジニアの単価相場と求人数は、以下の記事をご参考ください。
フリーランスエンジニアの単価相場ってどれくらい? 職種や年齢によって単価相場は変わる? 稼げるプログラミング言語は? フリーランスエンジニアの単価相場も知らずに闇雲に案件探ししていませんか? それでは、自分の[…]
マイナー技術は使わないこと!
先に抑えるべき技術がないか確認しよう。
プログラミング言語の選択で迷ったら次の記事を参考にしてください。
プログラミング言語の種類が多すぎて選べない! 初心者が学びやすい言語は? フリーランスエンジニアが安定して稼げる言語は? 生涯フリーランスエンジニアを目指すあなたにとってプログラミング言語選びは重要。言語の流行り廃りのサイクル[…]
【コツ2】使用技術をトップページやREADMEにわかりやすく記述する
採用者は、次の順番でポートフォリオをチェックするのが一般的です。しかし、多くの採用者は①②くらいしかまともに確認しません。
採用者がポートフォリオをチェックする順番
- GitHubのトップページ
- README
- アプリのざっくりとした使用感
- ソースコード
- アプリ細部の仕様と技術
逆を言えば、①②だけで多くの人は書類選考で落とされてしまうのです。
あくまで採用者の目的は「求人者の保有スキルの把握」です。①②を読んだ時点で「見る価値ない」と判断されると、③以降を見ることすらしません。
「採用担当者は忙しく時間がない」を念頭に置き、次のような内容を箇条書きで端的にREADMEへ記載しましょう。その際、長文を避けて端的で誤字脱字のない記述を心がけましょう。
READMEへ記載する主要技術の例
- プログラム言語
- 開発フレームワーク
- ライブラリ、外部API
- データベース
- セッション
- アルゴリズムやプロトコルなど、特にアピールしたい実現方法
- テスト手法
- CI/CD
- デプロイ
【コツ3】程良くパクりながら自力で開発をする
まず大前提として、他者作品の丸パクリはやめましょう。自身のスキルUPの効果が弱まるし、採用者にバレます。
特に、プログラミングスクールの課題や有名なテンプレートをそのままポートフォリオとして提出することは最悪です。
スクール課題の丸パクリは見慣れた採用者にとってはうんざり。
評価の逆効果です!
しかし、他者のソースコードや有料コンテンツの手法や考え方を参考にして、自分で手を動かして一部を流用するコーディングであれば問題ありません。むしろ積極的にパクるべき(参考にすべき)です。
すでに世に存在する技術をゼロから作るのは「車輪の再開発」となり非効率だからです。
仮にパクリに気づいて良く思わない採用者が1〜2割いたとしても、残り8割に掛けてアピールすれば良いでしょう。そもそも、流用程度であればパクリと判断されない場合が多いです。
便利なパッケージやライブラリを使うのは当たり前!サービスの丸パクリを避けた流用であればOKだぞ。
【補足】 公序良俗を意識しよう
当然のこととして、「ライセンスに反する」「企業の守秘義務にある」ものは使ってはいけません。 「あくまで採用目的のポートフォリオだから」と自分では思っていても、採用者から品格を疑われてしまう可能性があります。
【補足】 オリジナル性は必要?
エンジニアはデザイナーではないので、作品そのものにオリジナル性は必要ありません。あくまで採用者の関心事は、作品のサービスの良さではなく、実現方法・技術・品質にあるからです。
プログラミングスクールの活用は、ポートフォリオ課題の丸パクリではなくヒントを得るためであれば、悪くはない考えです。しかし、初心者がいきなり通い始めることは学習効率がよくありません。
まずは独学で最低限の知識と情報を得てから通いましょう。詳細は次の記事を参考にして下さい。
初心者がいきなりプログラミングスクールに通うのは有効?無駄? なぜ、「プログラミングスクールはやめとけ」とよく言われる? プログラミングスクールへ通うと良いタイミングを教えて! プログラミングを習得したい人の多くは[…]
【コツ4】直感的にわかるUI/UXにする
そもそも、サービスの説明書を最初から熟読してくれるユーザーはほぼいません。ほとんどの人はいきなりそのサービスを使おうとするでしょう。
多数の求人の評価をする忙しい採用者は尚更、「詳細説明は読まない」と思った方が良いです。
他者のサービスを参考にする際も、使い勝手が特殊なものよりも一般的なインターフェースのものを参考にしておく方が無難です。
仕様が直感でわからないサービスの失敗例
- 演出やデザインにこだわりすぎ
作品にオリジナリティ持たせたい気持ちをぐっとこらえ、誰もが直感的に分かる標準的な操作性・言葉・デザイン、etc.を重視すべきです。 - トップページが雑
技術にこだわるばかり、トップページのデザイン・画面遷移・文章、etc.が雑で素人っぽく見られてしまう点も良くありません。 - トップページに詳細説明を表示させる
重要な説明であっても、詳細な説明はトップページ以外に記載した方が良いでしょう。トップは説明なしでも直感でわかるUI/UXであるべきです。 - デモデータにリアルさがない
実際に作品を一般公開した際に使われそうなリアルなデータを多めに使うことで、用途が直感的に分かるようになります。
UIがしょぼいと、作品を見てもらえないだけでなく「手抜き」と思われるぞ。
ヒューマンスキルの低評価に繋がってしまう。
【コツ5】リリース(デプロイ)する
ポートフォリオ作品は、疑似サービスとしてリリース(デプロイ)しましょう。合わせてソースコード・テスト環境・READMEもGitHubへ登録し、OSSとして公開しておくと良いでしょう。
リリースのかたちは、サービスとしてWeb公開したり、アプリでダウンロードしたり、バックエンドでバッチ処理が動かしたり、etc. 対象のポートフォリオによって形態は様々ですが、採用者がすぐに見れて使えるところに置いておくことが重要です。
このリリース作業までを行うことは次のようなメリットがあります。
採用者のメリット
簡単にポートフォリオにアクセスができ、実際に閲覧したり使ったりして理解が進む。
エンジニアのメリット
実務に近いアプリケーション公開までの一連の作業の流れが経験できる。
サービスやアプリのリリース方法がわからない方は、『Heroku』というサービスを利用してみることをおすすめします。自力でサーバー運用を行うことなく、デプロイや管理が簡略化できます。
また、こういった便利なサービスも使いこなせることも評価の対象となります。
【コツ6】しっかりテストを行う
採用目的のポートフォリオとは言え、製品品質のサービスとして準備しましょう。
それは、「テスト工程の経験は十分か」も高評価を受ける重要なポイントだからです。仮に作品にバグがあった場合、「実務レベルでない」と低評価を受けてしまいます。
ポートフォリオが趣味レベルか実務レベルかは、テスト内容やテスト環境を見ればおおよその実力がわかってしまうものです。
そのため、GitHubには次のようなテスト環境も同梱することをおすすめします。
テスト環境の例
- テストフレームワーク
PHPUnit、CUnit、GoogleTest、RSpec、jest、etc. - テスト項目(テスト仕様)
エクセルなどでテスト項目のリスト(テスト仕様書)を用意できると良い - テストコード
- テストに関するREADMEの記述
プログラミングスキルに注力しがちでテストを軽視してしまう人も多いのが実情。テストも採用の点では重要なポイントだぞ!
【補足】 非機能要件のテストが合否の明暗を分ける!
非機能要件は次のようにレスポンスや使い勝手を含む機能以外の全般の要件を指します。
「可用性/性能・拡張性/運用・保守性/移行性/セキュリティ/環境・エコロジー」
しかし、ビジネス化しているわけでもないポートフォリオにそこまでの時間も労力も投資できません。そのため、採用者が気にしそうなポイントに絞ってテストを実施しましょう。
非機能要件を考慮していることがアピールにもなるので、(実際のテストは省略しても)網羅的にテスト項目へ入れておくだけでもだいぶ印象は違います。
【コツ7】コードを見やすくする
公開するソースコードはリファクタリングをして見やすくしておくことが大切です。スキルを重点的に評価する採用者は、コードの美しさを重要視する人が多いためです。
最低限のこととして、コード整形されていて、OAOO原則が適用されていることが必須です。
またコードは人間性が出ます。どんなに素晴らしいポートフォリオでもコードが汚いと次のように判断させれ、採用を見送られます。
コードが汚い人の特徴
- 仕事が雑
- 論理性がない
- 文章、伝達が下手
- ミスが多い
また、ソースコード以外のドキュメントやテストなどもDRY原則を気にしておくことは重要です。
【補足】 DRYとOAOO
DRY(Don't Repeat Yourself)
ソースコードを含む情報の重複をさせない考え方。
OAOO(Once And Only Once)
ソースコードの機能、ふるまいを重複させない考え方。DRY原則よりはソースコードに限定的。
【コツ8】難しい技術よりも機能の数を優先する
難しい技術を苦労して実現するよりも沢山のシンプルな機能を実現する方に時間を使ってください。
難しい技術は採用者に理解してもらえないことが多く、努力量のわりに効果が低いためです。
しかも、沢山のシンプルな機能を実現する方が、スキルを広く習得することができるぞ。
とはいえ、初心者レベルの人は、機能数が少なくてもポートフォリオは積極的に公開して面接に挑戦すべきです。
ポートフォリオの成熟に数ヶ月かけてしまっては機会損失になってしまいます。今のスキルレベルに合った求人先を見つければ良いだけですし、「これだけの機能数があればOK」という基準もありません。
特に初心者はカンタンな技術から着手し、どんどん改善や機能追加をしておけば良いでしょう。
【コツ9】トレンドの開発環境も使えることをアピール
一人で行うポートフォリオ開発を擬似チームと見立て、実務レベルのトレンドな開発環境を使ってアピールしておけば、即戦力として見られます。
仮に、レガシー技術を中心に使っている企業でも、トレンド環境導入へのキーパーソンとして重宝されるでしょう。
たとえば、コード作成後にGitHubでプルリクを発行してIssuesで管理したり、CircleCIでCI/CDを実現していたり。
実務を見据えた疑似チーム開発をする例
- 課題管理
GitHubのIssues、Redmine、JIRA、etc. - CI/CD
CircleCI、Jenkins、etc. - その他
AWS連携でデプロイ、Docker活用
一人開発であれば過剰な管理と思っても、これらのトレンド技術が使えるか否かでライバルと差をつけられます。
ポートフォリオの作り込みが不要な2つの理由
ここまでのポートフォリオの作り方・コツを見て「ハードル高い」と思った方も多いかもしれませんが、過剰な心配は不要です。
当然、レベルが高ければ高いほど採用をもらいやすいですが、実はそこまでポートフォリオの作り込みは必要はありません。
本章では、「作り込み不要の理由」と「必要な最低レベル」を解説します。
でもさすがに「ポートフォリオなし」は、全く会社に相手にされないのでNGだぞ
【理由1】採用までの最短ルートを優先すべきだから
転職やフリーランス採用までの最短ルートを優先すべきです。案件獲得が目的にも関わらず、ポートフォリオ作りが原因で採用が遅れることは本末転倒になってしまいます。
エンジニア採用の過程では、技術力(ポートフォリオ)以外にも評価対象は多い。次のように、技術力以外でカバーするつもりで短期間で準備できる面接対策・スキルシート対策を優先した方が良いでしょう。
エンジニア採用における評価ポイント
- ヒューマンスキル(コミュニケーション力など)
- 職歴・学歴
- 見た目
- 技術力(ポートフォリオ)
面接対策、スキルシート対策については次の記事を参考にしてください。
採用者の目線でのエンジニア面接の攻略法が知りたい! 面談での話が噛み合わず、なかなかフリーランス案件に採用されない 条件交渉ができずに、いつも企業の「いいなり」になってしまう… ハイスキルなフリーランスエンジニアで[…]
スキルシートに何をどう書いたら良いかわからない! 採用者はスキルシートのどのポイントを見ているの? 選考で落ちないスキルシートの書き方を教えて! あなたのフリーランスエンジニアとしてのスキルが企業が求めるレベルに達[…]
【理由2】採用基準は企業により様々だから
当然、企業によって採用基準はバラバラです。現時点でのレベルの高さを重視したり伸びしろを重視したりします。また同じ会社でも、採用担当者によってバラツキは出るものです。
明確な基準がない以上、ポートフォリオの作り込みに多くの時間を投資してしまうことは非効率です。
そのため、「自分がOKと納得したタイミング」で先に面接を受けてしまうことをおすすめします。
仮に面接で玉砕しても、「どこが足りなかったか」を聞けるようなら聞いて、足りない部分に集中してレベルUPしていくほうが圧倒的に効率的でしょう。
準備に時間を使うより、実際に入りたい会社からのフィードバックを受けてしまった方が早い!
初心者のポートフォリオは何をどのレベルまで必要?
初心者がまずポートフォリオを作る際、「何を作ればよいか?」でつまづきます。また、どのレベルまで作り込む必要があるかでという点も悩ましいでしょう。
【結論】 初心者のポートフォリオは丸パクリでなければ何を作ってもOK。一通りの開発実績が経験できればそのレベルは気にしなくても良いです。
初心者はポートフォリオとして何を作ればよいか?
初心者が作成するポートフォリオとしては、TODOリスト・ブログ・Twitter・掲示板・etc.の「もどき」でも何でもOKです。サービス自体のアイディアや機能はすでに世の中にあるものを参考にしても全く問題ありません。
採用側にとっては、ポートフォリオ自体が有益か面白いかではなく、その実現手段(使っている言語、環境、機能など)に興味があるからです。
ただし先述の通り、丸パクリでは人間性を疑われるので多少の自分でやった感は必要です。
採用者にとって関心があるのは「何を作ったか」ではなく「どう作ったか」。
初心者はポートフォリオをどう作るか?
採用者にとって、「ポートフォリオをどう作ったか?」は重要な採用ポイントです。
初心者であれば、次のような一通りの開発実績があれば十分でしょう。プログラミングだけではなく、これらの一通りの経験があれば、実務未経験のライバルに差をつけることができるでしょう。
一通りの開発実績とは?
- プログラミング言語、開発フレームワーク(ライブラリ)でコーディング
- テストフレームワークで自前のテスト項目を作成してテストを実行
- 作品やソースコードを公開
「何を作るか?」は重要でなくとも「どの技術を使うか?」は超重要。
市場や入りたい会社から求められる技術を選択すべきだぞ。
初心者に必要なポートフォリオの最低レベルは?
初心者がいきなりハイレベルなポートフォリオを目指すと高確率で詰みます。
単機能でシンプルなもので良いので、まずは一つの作品を作ってみましょう。その作品をベースに、今後の成長に合わせてリファクタリングをしたり機能追加をしたりしていけば良いのです。
その際、品質や見た目などの完成度の優先度を落としてOKです。
つまりは、初心者で低レベルのポートフォリオしかなくても積極的に面接に行ったほうが良いです。
その理由は「ポートフォリオの作り込みが不要な2つの理由」で述べた次の2点です。また、ポートフォリオを作ること自体が前向きな姿勢を評価してくれるポイントにもなります。
- 【理由1】採用までの最短ルートを優先すべきだから
- 【理由2】採用基準は企業により様々だから
また、「自分にはスキルが足りないはず」と二の足を踏んでいる人も問題ありません。フリーランスエンジニアとして稼ぐだけなら、実はそこまでスキルは求められないからです。次の記事を参考にしてみてください。
フリーランスエンジニアに最低限必要なスキルは何?どれくらい? スキルが高くないが、フリーランス独立は無謀? どのようにスキルアップをすれば良いでしょうか? 「フリーランスエンジニアができるのは、ごく一部の特殊能力の[…]
まとめ
以上、エンジニアの「ポートフォリオの作り方・コツ」や「面接に必要な最低限のレベル」について解説しました。
基本的にポートフォリオは、転職やフリーランス案件の獲得時の面接で高評価を受けるために必要です。
エンジニアにとってポートフォリオを作る意義や理由は・・・
- 【意義1】現スキルをアピールできる
- 【意義2】前向きな姿勢をアピールできる
- 【意義3】自身の成長の記録になる
高評価を受けやすいポートフォリオを作るコツは・・・
- 【コツ1】市場価値のある技術カテゴリを選択する
- 【コツ2】使用技術をトップページやREADMEにわかりやすく記述する
- 【コツ3】程良くパクりながら自力で開発をする
- 【コツ4】直感的にわかるUI/UXにする
- 【コツ5】リリース(Web公開)する
- 【コツ6】しっかりテストを行う
- 【コツ7】コードを見やすくする
- 【コツ8】難しい技術よりも機能の数を優先する
- 【コツ9】トレンドの開発環境も使えることをアピール
しかし、ポートフォリオ作成に時間をかけすぎるのも良くありません。あくまで採用が目的なので、採用までの最短ルートを目指し、完成度はそこそこに積極的に面接を受けることをおすすめします。
フリーランスエンジニアにとってポートフォリオとは、面接に必要な一過性のものではなく、自身のスキルを証明するためにずっと必要なものという認識でいましょう。成長に合わせて更新と追加を繰り返していくことが重要なのです。
ポートフォリオを提出するリアルな求人情報を知るには、次の記事を参考にフリーランスエージェントへ無料登録が必要です。
フリーランスエージェントの種類が多すぎて選べない 各エージェントの特徴を数値比較できるようにしてくれ! そもそもフリーランスの案件探しにエージェントは必要? ITエンジニアがエージェント選びを間違えると「単調かつ激[…]
以上、このブログでは、このように「会社員エンジニアがフリーランス独立して自力でお金を稼げるようになるまで」の役立つ情報を発信し続けていきます。
ではまた!