ポートフォリオとしてGitHubに自分のアプリを上げたほうがよい話
企業へ常駐するフリーランスのエンジニアになるときに、
- エンジニアはポートフォリオをGitHubにあげた方がいいのか
- GitHubにポートフォリオを上げるのは意味があるのか
といった疑問がフリーランスになる前の自分は疑問があったのでこれについてお伝えします。
商談におけるGitHubの活用方法
フリーランスのエンジニアとして、企業に常駐する形で仕事をする際の商談で使うGitHubについて、書いていきます。
GitHubにあげる
複雑なものでなくてよいので、基本的なことはわかっているというアピールができればよいです。面接官の側もすべてを細かく見る時間はないので、技術力の担保として証明できればよいためです。
具体的な例としては、ReactやVueなどであれば、簡単なToDoメモアプリ、APIやGoogleMapを使った簡単なアプリなどです。
またコードは汚いと思われないように、きれいに書いておくべきです。
面接官はざっとポイントしかコードを見ないので、見づらいだけで見ることを止めてしまう可能性もあります。
具体的にはコードレビューをされるような感覚で、ツッコミを受けないようきちんと書くという感じです。
あと他には細かいところも書き方には注意した方がよいと考えています。
例えばですが、JavaScriptであれば、ES5ではなく、ES2015の書き方をするなど、細かいところにも気を配った方がよいと思います。
サンプルだからといってES5で適当に書いてしまうと、この人は古いJavaScriptしか書けないと思われたりする可能性があるからです。
実際に動くものをサーバに設置する
面接官に手間をかけさせず動くものを見てもらった方がよいです。Dockerで作ったものなどであっても、面接官側からするとイチイチ動かすのは面倒です。
動くポートフォリオを手間をかけさせずに見せて、GitHubコードも見てみようかなと思わせる効果もあります。
GitHubを商談で判断材料にしてくれる企業としない企業
僕の個人的な感覚値になりますが、SIer系とWeb系の会社で異なることが多いと思います。Web系の会社だとエンジニアがGitHubを見て判断をしてくれる印象があります。
- SIer系会社
GitHubのプログラムが見られることは少ない気がします。
面談者がプログラマーではないことが多く、面談前にプログラマーが代わりに見るということもほぼない感じです。
だいたいは技術力よりもコミュニケーション能力を重視する傾向が強く、コードについては過去の経歴から判断するということが多いと思います。
下請け会社の人みたいな方が判断するためか、GitHubのコードを見られるとしてもちょろっと適当に見るだけで、ほぼ見られない印象があります。 - Web系の開発会社
GitHubのプログラムが見られることは多いと思います。面談の担当者がエンジニアであることが多く、自社サービスを持っている会社であればCTOや現場のプログラムを書くリーダーが面接官のことが多いです。
技術よりの会社ほど面談にエンジニアが同席することが多く、GitHubも選考の判断基準に使ってくれる傾向があります。
ちなみに、SIer系とWeb系開発会社という明確な区切りはなく、その中間も存在するし、企業としてどちらの色あいが強いかによる個人的な印象でお伝えしています。
GitHubのコードを見てもらうためのポイント
プログラマーではないディレクター・プロジェクトマネージャーの場合、サンプルプログラムであっても、デザインが全くされていないものをダメなプログラムと判定する可能性があります。
本来はソースコードの意識して書いたポイントを見てもらいたいと思うものですが、動くサンプルの見た目だけで判断されてしまうこともあります。
逆にそういった見た目のインパクトもあるものが作れたらそれはそれでいいと思っています。たとえば、CSSでデザインを整えるとかではなく、FXチャートを表示するプログラムやGoogleChartsなどグラフィカルなツールを使うなどして見た目のインパクトを出すような簡単なプログラムを書くと「おっ」と思ってもらえる可能性があります。
大して労力が変わらないのであれば、余裕があれば、簡単なプログラムでもポートフォリオの見た目を意識したものを作る方がよい場合もあります。
面接官から見た面談
僕が企業側の面接官として面接をした時の話をします。
今まで採用の面接官としての面談は何度もあるのですが、フリーランスのプログラマーとして企業に常駐しているときに、後任者を採用する面談の面接官をした経験があり、その時の話になります。
長期でプロジェクトに在籍したときに、プロジェクトマネージャーから後任者採用の面談に同席してほしいと頼まれて、面談に参加しました。
(プロジェクトのコードを一番理解していたのが僕なので、他の正社員エンジニアの方と私という組み合わせ)
口頭での質問のやり取りで、だいたいこんな感じのスキルの人かなというのはわかるのですが、一緒に仕事をしないと実際のところ、わかりません。
「GitHubなどで趣味のものでもよいのでコードを見せてもらうことはできるか」ということを、数名ではありますが面談にきてくれたエンジニア全員に聞きましたが、誰も用意はありませんでした。
一緒に面接官として参加したシニアエンジニアと、「どういったコード書くのか全然わからないですね…」という話をした記憶があります。
成果物(携わったプロジェクトのサイト)を見せてくれた人もいましたが、デザイナー採用とかでない限り、それだけだと話を深堀りしても中々、技術力が見えないといったところがあります。
たぶんGitHubでどういったコードが書けるのかのアピールがあるかどうかだけでも、圧倒的に差をつけられるなと思いました。
ちなみに、面接官側が見たいのは技術力の担保なので、「これはわかっている」というメッセージを込めたコードがあると、面談時にPRになると思います。もちろん、いい加減なコードを書くと逆効果になる可能性はありますが、GitHubの提示がない人よりかはエンジニアの資質は高いと判断されると思います。
実際に僕がGitHubに上げていたReactのコードがフックとなって働くことができた話
僕がフリーランスとして、面接をされる側の実例も紹介します。
フリーランスになる直前の僕は、正社員としてホームページ制作会社でマークアップエンジニアとして、HTML・Sassをメインに、JavaScriptとPHPを少し触る程度しかないエンジニアでした。
普通にマークアップエンジニアとして、HTML/CSSをメインにやっていくことはできたのですが、それだけだと単価が低いままであるということ、年齢が上がっていった時に、このスキルだけで大丈夫かという不安がありました。
以前一緒に働いたことのある先輩エンジニアからこれからはフロントエンドのプログラマーとしてやっていくなら、SPA(Single Page Application)は必須という話を聞いていたし、自分でも新しいことをどんどんやりたいと思っていました。
JavaScriptが好きであったため、学習を進めていたところ、Reactが良さそうと思い、Reactを学習してGithubに簡単なReactのアプリケーションをあげていました。
それが功を奏して、フリーランスとしての商談で、たまたま企業側のスキルが高いエンジニアが同席していて、僕のGitHubを見てくれました。
その面談でもともと募集していた案件にはプロジェクトマネージャーの判断で落ちてしまったのですが、その同席していたエンジニアが私のスキルを買ってくれ、別のプロジェクトにアサインしてもらった経験があります。
ちなみに、この時のエージェント担当者からは、GitHubは見られることはないのでほぼ意味がないとも言われていました。
この経験からも、GitHubを見てもらえたのは運がよかったと言えばそれまでですが、なければアサインしてもらうことはなかったので、用意できるならばGitHubは商談時に用意しておくべきだと思います。
※当サイトでは一部のリンクについてアフィリエイトプログラムを利用して商品を紹介しています