To.これを読んでくれている皆さま

いつもお世話になっております。北山です。
今回は、未経験からエンジニアへの就業サポートを行っていた経験から
みなさんへのアドバイスをお伝えします。

エンジニア経験ありで転職を検討している方にも、
経験年数が少なくて自信が持てない…… という方にはぜひ読んで欲しいです。

エンジニア職に応募するならポートフォリオ及び職務経歴書を用意しましょう

ポートフォリオ

未経験でエンジニア職に応募しようとしている方によく相談される内容が

「プログラミング経験が浅いのでポートフォリオが作れません」

です。

これはハッキリと認識違いであるという事を今回は記事にします。

ポートフォリオとは何か?

以下リクナビ「就職ジャーナル」の記事でも書かれているように、
ここで挿す「ポートフォリオ」とは「あなたの実績や力量がわかる作品集」となります。

エンジニア職への応募であれば、下記を示すための資料となります。
・こんな言語、こんな構成(開発環境)が扱えます
・こんなプログラムを書くことができます
・こんなサービスを開発することができます
・こんなコードを書きます

ポートフォリオはどう用意するのがいいのか?

Word や Google ドキュメントなどを用いて
文書でポートフォリオを用意する方も中にはいらっしゃいますが、
エンジニア職への応募であれば、
GitHub にパブリックリポジトリとして用意するのがベターです。

昨今のエンジニアは業務上でもソースコードなどの変更履歴を記録・追跡するためのバージョン管理システムとして
Git を使用することが一般的で、
Git のホスティングサービスである GitHub に、ポートフォリオとして作成したプログラムを公開することで

・こんな言語、こんな構成(開発環境)が扱えます
・こんなプログラムを書くことができます
・こんなサービスを開発することができます
・こんなコードを書きます
に加えて
・Git が扱えます
・こんなコミットメッセージを書きます
・こんな粒度でコミットを作成します
などをアピールすることができます。

バージョン管理システムへの理解はもはや業務上必要不可欠なものであり、
また、バージョン管理システムをどのように使う人なのか?も
自身の能力を示す根拠となるのです。

2人以上の複数人での開発が一般的になっている現代の開発現場で、
ソースコードを共有するときに雑にコミットしてくる人と一緒に働きたくはないですよね?

GitHub にプログラムを公開するときに注意して欲しいこと

GitHub にプログラムを公開するということは、
公開してはいけない情報の取捨選択をする必要があるということです。

詳しくは「GitHub 公開 注意」などで検索してもらいたいのですが、
GitHub のパブリックリポジトリを公開するということは、
自身の持っている情報を全世界大公開するということです。

特に、開発に際して使っているWebサービスの ID や パスワードといった類のものには
最新の注意を払う必要があります。

こういう話をすると
「なんだかよくわからないけど怖いので嫌!」という人も中にはいるのですが、
実際にエンジニアとしての業務に入れば ID や パスワードの扱いに気をつけて開発する、
GitHubのリポジトリに含めるべきものと含めてはいけないものを扱う というのは当然のように実施する事です。
業務で行う事を怖がっているようではダメですよね。

詳しくは以下記事も合わせて参照してみてください。

なぜポートフォリオが必要なのか?

話題が GitHub の方に逸れてしまいました。
ではなぜポートフォリオが必要なのかの話に戻りましょう。

とはいえ、特に難しい理由があるわけではありません。
「ポートフォリオ」とは「あなたの実績や力量がわかる作品集」であると前述しました。

あなたがエンジニアとしてどれほどの活躍が見込まれるのか?
どれほどの働きができそうなのか。それを証明するための資料は
ないよりもあった方が遥かに良い、それだけです。

むしろ、なくてOKである理由がないですよね。

少し、例え話をしましょう。

料理人として雇って欲しいとします。
「料理はしたことがありますか?」という問いに対して
「はい!あります!」と口で答えるだけではなく
これまでに自分で作った料理の写真や調理動画などを示した方が説得力がありますよね?

バイク便の配達員として雇って欲しいとします。
「日常で安全に運転する事を心がけていますか?」という問いに対して
「はい!あります!」と口で答えるだけではなく
普段の運転の様子を写したドライブレコーダーの記録映像を示した方が説得力がありますよね?

それだけの話です。
面接官も人間ですから、何も難しい理由なんてないのです。
書類や口頭で説明するだけよりも、実物がある方が説得力が増す。
そして説得力をより強固なものにするには、数があった方がいいのです。

エンジニアは皆ポートフォリオを用意して転職しているのか?

この問いには Yes でもあるし No でもあると言えます。

既にエンジニアとしてのキャリアがある人は
職務経歴とそこで扱っていた開発内容だけで転職する人も多いです。
これは、エンジニアとしてのキャリアがあるのであれば
その年数や経験に応じた内容を書類から期待することができ、
またその内容について面接などで詳しくきくことができるからです。

ただ、既にエンジニアとしてのキャリアを積んでいる人であったとしても
キャリアが短かったり、より良い条件の転職先を探すときなどは、
自らのGitHubアカウントや作成したサービスを
パブリックリポジトリとして用意するようになってきています。
GitHub を解析して転職や業務受注のための素材として扱うサービスがあることからも、
今後この流れが加速することはあっても薄くなっていくことは考えにくいと私は感じています。

未経験だからこそポートフォリオを作りましょう

既にエンジニアとしてキャリアがある人でも、
「実績や力量がわかる作品集」として GitHub を活用するような時代です。
エンジニアとしてのキャリアがないのであれば、
エンジニア経験に対抗するだけのポートフォリオを用意して戦わなければなりません。

忘れてはいけないのは、企業の求人には
未経験エンジニアだけではなく
既にエンジニアとしてのキャリアがある人も応募してくる という事です。

プログラミングスクールどこそこを卒業致しました。
で戦える状況ではなくなってきています。

プログラミングスクールどころか、
2〜4年間数百万の授業料を支払い20代前半であるという武器をもった
専門学校卒業生や大学卒業生でも就職活動しているのです。

彼らと渡り合うためには武器が必要です。
転職、就職を戦っていくための武器となる「ポートフォリオ」を作りましょう。

職務経歴書

ポートフォリオと同じく重要なのが職務経歴書です。
あなたが義務教育や高等教育を修了して働き出してから何をやっていたかを示すものです。

非エンジニアだったのでエンジニアとして転職するにあたって
使える職務経歴はない…… のではないのです。

エンジニアはプログラミング知識や技能だけで日々業務を行っているわけではありません。

IT(情報技術)や ICT(情報通信技術)が世の中の問題を情報技術で解決するのであれば、
世の中の問題そのもの を把握する必要があります。

経理システムを開発しているのであれば、経理に関する知識が必要です。
会計や財務の知識なしに、会計や財務を実現するシステムは作れません。

スーパーやコンビニの品出しを補助するシステムを開発しているのであれば、
品出しでどんなオペレーションが発生するのかの知識なしにシステムは作れないのです。

このような「はっきり限定された、ある専門分野に特化した分野の知識」の事を
ソフトウェア工学においては「ドメイン知識」と呼びます。

このようなドメイン知識は通常、
エンジニアがシステムのユーザーから教えてもらったり、独自に勉強したり、
システムのユーザーとのコミュニケーションの中から獲得したりするのですが、
既にその分野に特化した知識があることは、それだけで武器になり得るのです。

会計事務所に務めていたのなら、
会計システムを作っている会社としてはそれだけで目を引くものです。
会計システムの勘所をわかっているはずですから。

職務経歴書をどのように用意するか

Word や Google ドキュメントなどを用いて
文書でポートフォリオを用意する方は多いです。

しかし、せっかくポートフォリオを公開しているのであれば
社名や固有名詞などを抜いた上で、公開して個人や企業が特定できないような情報の粒度にして
GitHub で一緒に公開するのもいいでしょう。

curriculum_vitae といったリポジトリ名や GitHub の gist 機能で公開している方もいます。
「curriculum_vitae site:github.com」などでGoogle検索してみてください。
(海外からの求人に応える際などは、よく「CVを共有してください」などと言われます)

GitHub で公開するメリットとしては、
あなたが能動的に書類を送付するのではなく、
あなたのGitHubをみて声をかけようとする企業に対してもアピールできることです。

GitHub のパブリックリポジトリでの公開に懸念がある場合は、
LinkedIn や Wantedly などのビジネス情報専門のSNSを活用する方法があります。

みなさんの転職成功報告をお待ちしています。


Git の用語について

記事の前半で「コミット」「コミット粒度」などの用語を用いました。
これらについて何の話をしているかわからなかった方は、ぜひGoogleなどで「Git コミット」などと検索してみてください。

マッスルフルスタックエンジニアのサービス作成入門

rails new するまでの環境構築が大変…… という方向けに本を執筆しています。
無料分でも十分に作業し始めるところまでは読めるので、気になる方は読んでみてください

PaizaCloudで面倒な環境構築をスキップしてRuby on Railsの勉強をサクッと始めてみよう
https://zenn.dev/junki555/books/1c680742dc85b55147b0

マッスルフルスタックエンジニアのサポートプラン

この記事でマッスルフルスタックエンジニア北山に興味を持ってくれた方、
ぜひもっと詳しく話を聞きたい、という方は以下サポートプランなどから
お気軽にご連絡ください。

https://menta.work/plan/2350

ここまで読んでいただき、ありがとうございました。