こんにちは、ベンチャー・スタートアップへの転職のサポートをしているキープレイヤーズの高野です。
今回のテーマはエンジニアの転職活動には欠かせない「ポートフォリオ」です。
経験者の中途採用のみならず、未経験の駆け出しエンジニアさんでもこれを面接で求められることが少なくありません。
そこで本記事では、「ポートフォリオとは何か?」から始まり「面接官が見ているポイント」までを解説します。
エンジニア転職で必要なポートフォリオとは?
ポートフォリオとは自分の能力や経験を示すための作品集のことで、Webエンジニアの場合はこれまでに自身が作ったプロダクト(Webアプリケーションやスマホアプリなど)のことを指します。
いずれのクリエイティブ職でもこれは同じで、WebデザイナーならWebサイトのポートフォリオ、ゲームプランナーならゲームのポートフォリオを求められます。
元々は、実務で実装したものと個人で実装したものを区別せずにポートフォリオを呼んでいましたが、ここ最近Webエンジニアの採用市場においては「業務とは関係なく個人的に作ったプロダクト」を指すことが多いです。
本記事でもこの定義を前提に解説していきます。
そんなポートフォリオですが、とくに未経験者の場合は内定率を上げる上で大変重要です。
未経験者の採用枠がある企業の多くは、経験がない以上応募者に即戦力はあまり求めませんが、その人の熱意・興味関心・今後の伸び代を知る上でポートフォリオが機能するためです。
それを踏まえて、面接官が見るポイントを見ていきましょう。
未経験のエンジニア転職で面接官がポートフォリオを見るポイント
ポイント①:独創性
ポートフォリオに独創性があるかどうかは、面接官が真っ先に見る視点です。
独創性とはすなわち、そのプロダクトから開発者の主体性が感じられるかどうかです。
よくあるNG例としては、学校の授業や教材で与えられた課題をそのままこなしただけのパターン。例えば、ECサイト、ToDoアプリ、SNSなどはよく課題になりやすいですが、お題も作り方も他人から与えられたものの場合は、いかに完成品が優れていたとしても評価されることは少ないでしょう。
授業や教材の課題は、優れているものならむしろカリキュラムをちゃんとこなしさえすれば誰でも再現できるよう設定されていたり、最悪掲載されているソースコードをコピペすれば完成できてしまう場合もあるためです。
また面接ではポートフォリオについて「どんなことにこだわったか」「苦労した部分はどこか」「なぜその技術を採用したのか」などの質問が多いですが、自分で考えた作品でないと、この手の問答に答えるのが難しくなります。
OK例としては、以前エンジニア志望の学生さんが通称「便所飯SNS(正確には異なる名称だったかもしれません)」という学校でランチを一緒に食べる相手がいない人向けのSNSを作ってTwitterで少し話題になったことがありました。
これは勝手な想像ですが、開発者さんは自身の経験からこうしたプロダクトが欲しいと考え制作されたのだと思います。今までに聞いたことのないコンセプトでもありますし、このプロダクトからは熱量や独創性が感じられました。
ポイント②:ユーザー数
続いて重要なのはそのプロダクトが「何人のユーザーに使われているか」という視点です。自分のローカル環境で作って終わりにしておくのと、公開して色々なユーザーに使ってもらっているプロダクトでは、価値が大きく変わります。
下記は私の個人的な見解ですが、プロダクトを開発してユーザーを獲得したエンジニアは、例えば以下の経験値も持っているんじゃないかと期待できます。
・一定以上の技術力 … 一定数のユーザーに認められるレベルのクオリティを実現できたため
・ユーザーファーストの視点 … 一定数のユーザーが求めるものを見いだせたため
また、サービスがローンチからある程度時間が立っているなら、上記に加えて運営力 (プロダクトを開発したあともサービスを改善・継続し続ける力)も期待できます。
いずれにしてもユーザー数=客観的で定量的な指標になりえるため、面接官としてはそういった意味でも評価がしやすいです。
こう聞くと未経験のエンジニア志望者さんは「何人もユーザーを獲得するなんて相当難しいのではないか」と思われるかもしれませんが、なにも何百人・何千人にも使われるサービスを作る必要性はありません。
SNS上での仲間や家族、友人など身内数人に使われる程度でも十分に成立します。
もちろん不特定多数のユーザーに使われていたらその分評価は上がりますが、それはプロでも大変難しいことですので、未経験のエンジニア志望者にそうした期待をすることはありません。
そういった理由から、ポートフォリオを作ったらぜひとも一般公開し、SNSで発信するなどして周囲の人に使ってもらえるようにすることをおすすめします。
ポイント③:技術
最後に紹介するポイントは「技術」です。ただし、ここでいう技術の評価軸は多くの読者の想像と異なるかもしれません。
結論からいうと、技術においてみるポイントは以下です。
・URLとドメイン
・SSL化の有無
・エラーの有無
・見た目のデザイン
・言語とフレームワーク
まずURLはサーバー上に上がっていて、かつドメインが設定されていることが必須です。
初心者のありがちなNG例では、URLをIPアドレス、ローカルホスト、パブリックIPアドレスなどで公開したままの場合があります。(「104.162.245.XX」や「localhost:3000」といった表記)
IPアドレスやローカルホストの場合はそもそも開発者以外の環境からアクセスできませんし、パブリックIPアドレスはセキュリティ面で脆弱性があるため実用的ではありません。
SSL化も同様で、これがないWebサービスはセキュリティ面で脆弱性があります。
・SSL化できているサービスのURL例:https://keyplayers.jp
・SSL化できていないサービスのURL例:http://keyplayers.jp
上記のとおり、最初のhttpの後の「s」の有無で判断できます。
エラーに関しては、「プロダクトの主要機能が正しく動くかどうか」が焦点になります。
例えば、ログインを実行するとエラーが発生して実行できない、リンクをクリックしたら404エラーになる、などそのようなすぐに発見できてしまうような不具合は面接官の心象を悪くするため、事前に解消しておきましょう。
見た目に関しては、エンジニアはデザイナーではないため過度な期待はされていませんが、CSSが全くあたっていない、レイアウトが崩れている、などはクオリティの低いプロダクトである印象を抱いていしまうため、最低限担保しましょう。
フロントエンドが苦手な人は、Bootstrapやmaterial designなど、既存のフレームワークに頼り切って作るでも構いません。
言語とフレームワークについては、できれば行きたい企業や市場的に広く使われているものを採用することをおすすめします。
例えばWebなら PHP Laravel, Ruby on Rails, React.jsなど、スマホアプリならSwift, Kotlin, Dart + Flutterなどです。
繰り返しになりますが、企業は未経験枠の応募者に高い技術力は求めないので、高度な言語や最新のフレームワークを使いこなさなければならないわけではありません。
ただし、会社や募集ポジションによって採用している技術は異なるので、なるべく同じか親和性のある勉強をしている人を採用したいと思うでしょう。
また余談ですが、そもそも多くの面接官はソースコードをあまり見ません。
エンジニア職の面接の場合、いずれかのタイミングで人事ではなく現役のエンジニアが書類やポートフォリオをチェックし、面接官としても現れます。
ポートフォリオの出来や技術力についてはこのエンジニアの面接官が評価を行うわけですが、基本的にどこの会社のエンジニアも本業は開発であって、面接業務は二の次です。
また人気企業の場合は毎日多くの応募があるため、一人一人に多くの時間をかけられません。そのため、多くのエンジニア面接官は応募者のポートフォリオやそのソースコードを何十分もかけて確認することは現実的にできないのです。
これまで述べたような独創性やユーザー数など比較的短時間でチェックできる部分をチェックすることで効率よく評価を行っていきましょう。
そしてその評価が一定のライン以上であった場合、面接に呼んでより詳しく口頭で質問をします。
最後に
ポートフォリオを作り切ることはなかなか骨の折れる作業ですが、今回の記事で紹介したポイントに注意して制作してみてください。
また今回記事を執筆するにあたり、テック企業で長年エンジニア採用に従事していたことのあるエンジニアYouTuberのセイトさんに監修いただきました。
セイトさんのYouTubeチャンネルでは実際に未経験のエンジニアさんを模擬面接した動画なども上がっているので、よければそちらも参考にしてみてください。
キープレイヤーズでは、ベンチャー・スタートアップへの転職のサポートを実施しています。