本記事では、現役エンジニアが
落とされにくいポートフォリオの例と
必要なスキルを解説します
転職において、
ポートフォリオで合否は決まります!
なにを作るか?
どこを気をつけるか?
抑えるポイントを知らないと
ほぼ100%落ちます…
対象読者
- ポートフォリオは、なにを作ればいいかわからない
- ポートフォリオの、気をつける点を知らない
- どんなスキルが必要か、わからない
大手WEB企業でバックエンドを担当してます
現役エンジニアを納得させる
ポイントを解説
↓
- ポートフォリオを作るためのスキル
- ポートフォリオの作り方
- ポートフォリオの例
年収を上げるための記事
転職できる人は使っている
『転職で年収UPする唯一の方法』
を解説します!
(知らないのは損すぎるので、ぜひ!)
↓さっそく、みていきましょう!
バックエンドのポートフォリオに必要なこと
(おさらい)ポートフォリオの役割
まずは、ポートフォリオをただしく理解しましょう
ポートフォリオとは自分の技術や実装能力を示すものです。
良いポートフォリオ → 良いエンジニア
悪いポートフォリオ → 悪いエンジニア
ポートフォリオは写し鏡!
良いポートフォリオを提出すると、面接の印象がいいです。
悪いポートフォリオを提出すると、
書類選考で落ちるか、面接で深掘りして聞かれます…
↓また、よくある誤解はこちら↓
ポートフォリオのよくある誤解
↓
きれいなコードや、機能がたくさんあればいい
(不必要な機能は加点されない)
正しいポートフォリオの理解
↓
必要な技術が盛り込まれているポートフォリオが良い
不必要な機能は加点されない上に、マイナス評価になる可能性もあります。
ポートフォリオでは、必要な機能だけを入れましょう
↓では、どんな機能を入れれば良いのか?
(おさらい)バックエンドエンジニアの役割
ポートフォリオの必要な機能とは?
バックエンドエンジニアは、ユーザの目に見えない箇所を担当します
バックエンドエンジニアの仕事例
- APIの実装
- データベースの操作( = 読み書き)
- 他サービスのAPIを利用
↓
これらの要素をポートフォリオに入れる!
バックエンドのポートフォリオに必要な機能は
データベースや、APIの実装のことです
↓どんなスキルが必要か、解説します
バックエンドエンジニアに必要なスキル
機能を作るために、どんなスキルがあればよいか?
バックエンドエンジニアに必要なスキルは、こちら↓
バックエンドエンジニアに必要なスキル一覧
- インターネット(HTTP・DNS)
- OS(コマンド・メモリ・プロセス)
- API(リクエスト・レスポンス)
- データベース(クエリ・正規化)
- プログラミング
- セキュリティ(セキュリティリスクを減らす)
詳しくは … バックエンドエンジニアロードマップ
できるだけ多くのスキルをポートフォリオに盛り込みましょう!
やること多くない?
こんなにできないよ…
ポイントをおさえれば、完璧じゃなくてOK
↓1つ1つ ポイントを解説
ポートフォリオ作りで重要なポイント7つ
ポートフォリオの評価ポイントです!
知らないと落ちるので、かなり重要
ここからはポートフォリオの評価ポイントについて述べます
ここで勝負が決まるので、ひとつずつ理解しましょう!
ポートフォリオで重要な点は、こちら↓
ポートフォリオで重要な点
- 必要な機能を実装する
- データベースを使うこと
- データベースのテーブルを正規化する
- 例外処理を書く ← 差がつくポイント
- 単体テストを書く ← 差がつくポイント
ーー↑必須ラインーー
ーー↓あればよいラインーー
- ソースコードにコメントを書き、読みやすくする
- デプロイ環境はAWSにする
現場感覚的には、
1〜3 … 未経験者でもできて欲しい
4,5 … 未経験者でできると好印象
6,7 … できていると、さらに好印象
重要な点1 … 必要な機能を実装する
バックエンドで必要な機能は、こちら
バックエンドに必要な機能
- APIの実装
- APIの認証機能(API Gatewayなど)
- セキュリティ対策の実装
- データベースの読み書き
- データベース内に十分なデータ量
- APIを表示するフロントエンド(最低限必要)
具体的な実装例(Twitterを例に)
- ユーザ一覧を取得するAPI
- ユーザの全ツイートを取得するAPI
- ユーザのツイート1件を取得・削除・更新するAPI
- ユーザログイン機能
バックエンドではAPIを実装することが多いです
そのため、データベースからのデータ取得をメインに実装しましょう
さらに、最低限UIの実装もしましょう
理由は、取得したデータを表示することで正常に実装できてることを示します
重要な点2 … データベースを使うこと(MySQLでOK)
データベースを使ったプログラミングができることを示します。
バックエンドエンジニアは、データベースとのやりとりを頻繁に行います。データベースを利用できる人材であることをアピールしましょう。
データベースはMySQLでOKです
理由は、MySQLは多くの企業で利用されている一般的なデータベースだからです
データベース早見表
- MySQL … 最も一般的に使われている
- Oracle … BtoBで利用されている(MySQLより安全)
- PostgreSQL … 昔はよく使われていた印象(現在はMySQLに移りつつある)
- Cassandra … KVSで広く使われている
- Redis … KVSで広く使われている
※KVS … Key Value Storeの略
↓SQLを勉強したい向けの記事
重要な点3 … データベースのテーブルを正規化する
テーブルの正規化の知識があることを示します。
テーブルの正規化とは、重複するデータを無くすことや、テーブル内の不要なカラムを削除する作業のことです
重要な点4 … 単体テストの有無
単体テストとは、検証用のプログラムを動かしてプログラムを試すことです
開発現場の使われかたは、テストコードと呼ばれる検証用プログラムを書いて、このプログラムを実行し、動作が正しいことを確認しています
単体テストがないと、自分の手で試さないと実装した内容が正しいかわかりません。時間がかかるし、漏れがあるかもしれません
未経験者は、テストを書く人はあまり見かけませんが、
テストを書くことで他の人より即戦力があることを示せます
テストが実装できるエンジニアであるとアピールしましょう
重要な点5 … 例外処理の有無
例外処理について知識があることを示します。
例外処理とは、DBが落ちていたときに例外が発生した場合にどのように通知するか、ユーザ登録に失敗したときにどのように値を返すかといった『異常時にどのように動くか?』という内容の実装を指します。
例外処理はサービスの基本なので、実装できることをアピールしましょう。
重要な点6 … デプロイ環境について
HerokuだけではなくAWSなども利用できるエンジニアであることを示します。
アプリケーションのデプロイ環境として、Herokuは有効です。
しかし、実際の開発現場では主にAWSが利用されています。
そのため、AWSを活用できるエンジニアであることをアピールしましょう。
重要な点7 … コメントの記法、コードの読みやすさ
可読性の高いコードを書くことできることを示します。
提出したポートフォリオを読むのは、現場のエンジニアです。
(この時点でNG)
読みやすいコード → 読んでも良いかな
読みやすいコードを書くことができるエンジニアということをアピールしましょう。
バックエンドエンジニアのポートフォリオ例
バックエンドエンジニアになるためのポートフォリオの例をいくつか紹介します。
(ポートフォリオの例1) RESTful APIの実装
フロントエンドと連携するために、APIが利用されます。
APIとはシステムとシステムを繋ぐ機能のことで、
webサービスにおいては『WEB API』を指しています。
webサービスでは、一般的にRESTful APIが利用されます。
RESTful APIに関する簡単な説明はこちらをどうぞ
(ポートフォリオの例2) MQを使ったメッセージサービス
MQとは、メッセージキューの略で情報のやりとりをキューと呼ばれる箱を通じてやりとりを行う通信方法です。
特に非同期に行われるサービスでよく利用され、メッセンジャーサービスに利用されています。
MQを使ったポートフォリオのメリット
・処理の負荷分散について理解している
・DB以外にもコンポーネントが理解できている
MQはバックエンドでは必須のスキルとなります。
(まとめ)バックエンドエンジニアのポートフォリオ作成のコツ
バックエンドエンジニアに必要なスキルはこちら。
バックエンドエンジニアに必要なスキル一覧
- インターネット(HTTPやDNS)
- OS(ターミナルコマンドなど)
- API(リクエスト、レスポンス)
- データベース(クエリ、正規化)
- プログラミング
- セキュリティ(脆弱性の対応)
詳しくは … バックエンドエンジニアロードマップ
バックエンドエンジニアのポートフォリオで重要な点はこちら
ポートフォリオにおいて重要な点
- データベースの利用の有無
- データベースのテーブルの正規化
- 単体テストの有無
- デプロイ環境について
- コメントの記法、コードの読みやすさ
- 機能の充実さ
- 例外処理の有無