どーもー、某IT系の会社でjavaエンジニアとして働ている者です(当ブログの管理人です)
現在は、Webエンジニアとして働きながら、開発現場の担当者として、エンジニアの採用面接にも関わっています(主に書類選考と1次面接)
そんな採用側の立場として、ここ最近では、「ポートフォリオ」をよく目にします。
というわけで今回は、エンジニア転職において、ポートフォリオとは、どのようなモノで、その重要性や、作り方について。
また、ポートフォリオで扱う制作物(アプリ)に、javaを利用する際の参考例についても、順に紹介していきます。
※他のプログラミング言語でも、参考になる内容となっています。
※ITエンジニアの転職活動のポイントについては、以下の記事にてまとめているので、ぜひ参考にしてください。
以下、目次です。
- ポートフォリオとは?IT・Webエンジニア転職時の必要性について(未経験の場合についても)
- エンジニア転職のポートフォリオの作り方のポイント(githubでの管理など)
- ポートフォリオの参考例(javaプログラミング) ~IT・Webエンジニア転職用
ポートフォリオとは?IT・Webエンジニア転職時の必要性について(未経験の場合についても)
ポートフォリオとは、直訳すると「作品集」や「画集」といった意味になっており、
IT・Webエンジニア転職においてのポートフォリオは、エンジニアとしてのスキルセットや職務経歴、制作物を、一覧化してまとめたモノになります。
このポートフォリオを通して、自分のスキルや実績をアピール(証明)することが可能なので、転職を有利に進めることができるわけですね(質の高い内容であれば・・)
ポートフォリオは、大体が以下のフォーマット構成となっています。
- 自己紹介(職務概要)
- スキルセット
- これまでの開発プロジェクトの経歴(実務)
- 保有している資格一覧
- 制作物の一覧:アプリの概要と公開URL、GithubリポジトリのURLを掲載する
※一般的なよくあるフォーマットは上記となりますが、別に項目の追加や変更をしても構いません。
自分自身で、よりPRできそうなフォーマットでまとめていく事になります。
また、上記をみて勘づく方もいると思いますが、ポートフォリオのフォーマットは、職務・業務経歴書に非常に似ています。
というか、一緒と言ってもいいでしょう。
なので、職務・業務経歴書のフォーマットを、上記の通りまとめれば、ポートフォリオは必要ありません。
職務経歴書とポートフォリオの違いを挙げるとすれば、大きく以下の2つとなります。
- 「制作物」については、ポートフォリオの方にまとめることが多い(職務経歴書の方にまとめることも、当然可能ですが・・)
-
ポートフォリオは、これまで実務経験(開発プロジェクトに携わった経験)がない、エンジニア未経験の方が、作成する必要性が高いです
上記の後者について、
IT・Webエンジニアの転職で、最も重要なのは、これまでの実務経験です。
要は、どのような開発プロジェクトにて、どのようなスキル・経験を得てきたのか・・
これが、合否を左右する最も重要なポイントとなります。
その点、エンジニア未経験の方は、実務経験がゼロです。
そのため、エンジニア未経験の方が、転職活動を成功させるには、一定の開発スキルがあることを証明する「制作物(自分で開発したアプリケーション)」があるかどうかが、最も重要なポイントとなります。
だからこそ、制作物の情報をまとめた「ポートフォリオ」が、重要となるわけですね。
ポートフォリオや制作物を作成することで、エンジニアとしての意欲や将来性なども評価してもらえます。
よく、未経験の方で「やる気だけはあります」・「会社に入ってから頑張ります!」と、何も準備してないのに「やる気」だけをアピールする方がいますが、
こういった方が、内定を貰うのは中々厳しいでしょう。。
とはいえ、未経験でポートフォリオ用の制作物(オリジナル・アプリ)を、イチから開発して完成させるというのも、かなりハードルが高い事です。
未経験者がプログラミング学習をする場合、その9割が挫折をする。というのは有名な話です。
そのため、未経験からエンジニア転職をしたい場合は、個人学習・個人開発をしていくよりも、プログラミングスクールに通うことをおすすめします。
昨今では、ポートフォリオ用の制作物(オリジナル・アプリ)を開発するところまで、カリキュラムに入っているスクールが多く、かつ、その後の転職活動のフォローまでしてくれるところが、ほとんどです。
完全無料で通えるプログラミングスクールも、いくつかありますしね。
IT・Webエンジニア転職のポートフォリオ用制作物の作り方のポイント(githubでの管理など)
続いて、制作物(オリジナルのアプリケーション)を作る際のポイントについて、順にまとめていきます。
・システムエンジニア(SE)の職務・業務経歴書の書き方とフォーマット・テンプレート例 ~未経験の場合も
※上述でも解説している通り、基本的に、ポートフォリオと職務経歴書は、フォーマットが同じなので。
というわけで、ここでは「制作物」のみにフォーカスして、ポイントをまとめていきます(以下)
-
「転職したい企業と開発領域の調査」
ポートフォリオ用の制作物を作成していく前に、まずは、どのような会社でどのような開発業務をやっていきたいのか。
これを、ある程度、明確化しておく必要があります。
・転職したい会社で募集している開発領域は、バックエンド or フロントエンド、それとも、インフラ?・会社で採用しているプログラミング言語は?
上記から、ポートフォリオ用の制作物の内容を決定していく必要があります。
また、転職サイトの採用ページや、各企業の公式採用HPでは、求める人物像や求めるスキルが、具体的に記載されているので、
それらの情報も参考にすると良いでしょう。
-
「Webアプリケーションがおすすめ」
ポートフォリオ用の制作物アプリは、Web上で動作するアプリケーションがおすすめです。
Webアプリケーションであれば、バックエンドとフロントエンドの両方の知識・スキルが、少なくとも必要になりますし、
実際に、インターネット上に開発したWebアプリケーションを公開する場合は、ネットワークやインフラの知識も必要となります。
逆に言えば、転職時には、幅広い領域での開発経験・スキルをアピールすることができるわけですね。
とはいえ、ポートフォリオを作成するような方々は、そのほとんどが、Webアプリケーションなので、それだけで有利にはなりませんが、、
あとは、転職先の数や案件の数といった観点でも、Webアプリケーションが最も多いので、そういった意味でもおすすめです。
(Webアプリケーション以外では、スマホアプリも、選択肢としてはアリです)
-
「採用したプログラミング言語や、その他技術について、選定理由を明確化しておく」
なぜ、そのプログラミング言語にして、なぜそのフレームワークを利用して、なぜそのデータベースを採用したのか。
これらをちゃんと明確化しておく必要があります。(面接で突っ込まれる事も多いです)
そのためには、採用した技術の特徴や、他と比較とした時の違いについて、ちゃんと調べておくことが必要となります。
例:javaを採用した場合、PHPやRUBYと比較して、javaはどのような特徴・メリット・デメリットがあるのか・・また、採用した各技術については、まとめて明記することになりますが、ちゃんとバージョン情報も明記するようにしてください。
例:java ver8※少なくとも、プログラミング言語・フレームワーク、DBについては、なぜ、そのバージョンを選んだのかも、整理しておいた方が良いでしょう。
-
「プログラムコード(ソース)について」
制作物アプリを作成した場合、そのソースコード(Githubのリポジトリ)を、ポートフォリオにも記載します。
選考が進めば、当然そのソースコードも、チェックを受けるでしょう。
この時、まずは、見やすいソースとなっているかが、非常に重要です。
インデントをきちんと整え、コメントは分かりやすく。命名規則もちゃんと定義して、意味の分からない、変数・関数・クラスが無いこと。
最低限、これらについては注意するようにしてください。
汚いソースだったら、それだけで見る気を失いますからね、、
-
「最低限、入れておくべき機能(仕様)」
ポートフォリオ用制作物に、最低限入れておいた方が良いポイントを、以下にまとめました。
・ログイン機能:Cookie(Session)も取り扱っていること。・権限管理:ログインする際に、ユーザーごとに権限管理する(とりあえずは、adminユーザーと一般ユーザーで良いでしょう)
・DB連携:CRUD操作(データの作成、読み出し、更新、削除)が一通り行えること
・セキュリティ対応:最低限、CSRF、XSS、SQLインジェクションの対策はしておいてください。
・フレームワークの利用:各プログラミング言語には、必ずフレームワークが存在するので、それを利用してください(例:javaであれば、springを利用)
(もちろん、フレームワークとは、どういったモノで、どのようなメリット・デメリットがあるのか・・この辺はちゃんと整理しておいてください)
・テストコードの実装:テスト駆動開発で進めていけること(例:javaであれば、junitを利用)
-
「UIについて」
ポートフォリオ用制作物のUIについては、そこまでこだわらなくて良いです。
ありきたりで基本的な構成でも、特に問題ありません。
※フロントエンドの開発として転職したい場合は、ある程度「動き」のあるUIを実装する必要はありますが、デザイン自体は、別にこだわらなくても良いです。
-
「インフラについて」
ポートフォリオ用制作物アプリのインフラについては、できれば、インターネット上で公開するのが良いのですが、必須ではありません。
公開した方が、採用担当者が制作物のイメージがしやすいですし、ネットワークやインフラの知識があることのアピールにも繋がります。
特に、AWSやGCPなどのクラウドサービスを利用して、CI/CDの仕組みも導入(CircleCIなどで自動テスト・ビルド・配信が可能)
これらのインフラ構成図も記載しておけば、かなりポイントは高いと思います。
最近では、多くの企業がクラウドサービスを利用してインフラ構築している背景もありますし。
ただし、ここまでやるのは当然ハードルがかなり高いので(お金も掛かるし)、
無料でアプリの配信が可能な「Heroku」を利用している方も多いですね。
※追記(2022/11):Herokuの無料プランは廃止されるようです。 -
「git・githubを利用する」
gitは、ソースコードのバージョン管理用のツールで、
githubは、gitから連携されるリポジトリ(ソースコード)を、専用のクラウドストレージにて保持できるプラットフォームです。
多くの企業が、ソースコードのバージョン管理に、git・githubを利用しており、バージョン管理&チーム開発には、欠かせないツールとなっています。
個人でも無料で利用が可能なので、ポートフォリオ用アプリのソース管理はgitでおこない、githubでリポジトリを公開するようにしてください。
転職時でも、Gitを利用した開発を進めていける証明にもなるので、有利に働きます。
また、githubリポジトリの「README」に、制作物の概要や機能一覧、採用技術情報、インフラ構成図、開発時にこだわった点(アピールしたいポイント)などをまとめてください。
採用担当者がREADMEを見た時に、どのようなアプリケーションなのかを分かるようにしておきましょう。
-
「制作物のアピールポイント」
開発する際にこだわった点や工夫した点など、アピールポイントを、ポートフォリオにまとめてください。
ただし、アピールする点は「技術的スキル」であることが重要です。
以下のような内容であれば、一定以上の技術的スキルの証明になりますので、参考にしてください。
・ソース構成の設計観点:MVC、DDDなどの設計思想に沿って実装・セキュリティの観点:SQLインジェクション、XSS、CSRF、認証・認可、セッション管理に対応
・パフォーマンスの向上や、システム負荷の観点:重い処理のマルチスレッド化、DB連携時のクエリチューニング、インスタンス化の削減(無駄なものを削除)
以上、ポートフォリオ用の制作物を開発する際のポイントまとめでした。
ポートフォリオ用制作物の参考例(javaプログラミング) ~IT・Webエンジニア転職用
最後に、ポートフォリオにて、制作物アプリの情報をまとめる際のテンプレート・サンプルとして、プログラミング言語:javaを例にまとめてみました。
※javaじゃなくても参考になる内容となっているので、確認ください
-
「アプリの概要」
社員管理システム
-
「アプリの公開URLと、ソースのURL(Githubリポジトリ)」
アプリのURL:
ソースのリポジトリ:※もし、アプリを公開していない場合は、各画面のイメージ図を記載しておけば、採用担当者もイメージしやすいと思うので、おすすめです。
-
「採用技術一覧」
・プログラミン言語:java(ver8)
・フレームワーク:springboot(ver2.1)、mybatis(ver:3.5)
・フロントエンド:html、CSS、javascript、jQuery、thymeleaf
・データベース:mysql(ver5.6)
・インフラ:AWS
・その他:gradle、jenkins、Eclipse、git・github※プログラミング言語とフレームワーク、DBについては、バージョン情報も記載して、できれば、各バージョンごとの特徴もおさえておきましょう。
-
「機能一覧」
・社員情報の検索・閲覧が可能
・ユーザーのログイン機能
・ユーザーの権限管理:管理者と一般ユーザー(管理者の場合:社員情報の追加・編集・削除が可能)
・CSVインポート&ダウンロード機能
・API連携機能 -
「インフラ構成図」
(以下、サンプル)
※イメージ画像を表示させ、必要に応じて、その解説も入れてください。
-
「こだわった点」
・セキュリティ対応 : SQLインジェクション、XSS、CSRF、認証・認可、セッション管理に対応しました。・パフォーマンス向上の対策 : 社員情報を一括で取り込めるCSVインポート機能にて、件数が●万を超えると、多くの時間が掛かってしまいパフォーマンスがネックとなっていたため、
insert文の見直し(1件ずつのクエリ発行から、100件ずつへ変更)と、処理をマルチスレッド化することでパフォーマンスの向上に繋げました。
具体的には、1万件あたり、●秒から●秒へと時間短縮することができました。
以上、ポートフォリオ用アプリ情報のテンプレート・サンプルでした。
というわけで今回の記事では、エンジニア転職用のポートフォリオとは、どのようなモノで
その作り方や、制作物アプリのサンプルについて、順に解説してきました。
今後、エンジニア転職をしたいと考えている方や、ポートフォリオを作成しようと思っている方の参考になっていれば幸いです。
最後に、
ITエンジニアへの転職活動を始めていく場合、まずは、転職サイトか転職エージェントへの登録が必要となります。
- 「転職サイト」 : 求人情報がまとめられたサイトで、求職者と会社(採用担当)が直接やりとりをしながら進めていきますが、転職活動に関するサポートは特にありません。
-
「転職エージェント」 : 求職者と会社の間に、エージェント(転職をサポートする会社の人)が仲介して、転職活動を進めていきます。
エージェントは、求職者にマッチするような求人の紹介であったり、履歴書・職務経歴書の添削、面接対策など、転職に関するあらゆる活動のサポートをしてくれます。
上記の通り、転職エージェントでは、求人の紹介や面接対策など転職活動のサポートをしてもらえるので、エージェントの利用をおすすめします。
※ITエンジニアへの転職におすすめのエージェントについては、以下の記事にてまとめているので、ぜひチェックしてください。
→ ITエンジニア(SE)におすすめの転職エージェント:8社を徹底比較 ~未経験者についても。
また、転職サイトの利用を検討している方は、以下の記事を参考にしてください。
・IT・Webエンジニアにおすすめの転職・求人サイト比較ランキング:6社 ~未経験についても
(転職エージェントと転職サイトを併用するのも良いでしょう。)