この記事の内容
この記事を書いている人
DMM WEBCAMPを受講していて、どんなポートフォリオ作ろうと思っているあなた!
30代未経験から自社開発企業に転職することができた僕が教えてあげましょう!
- まずはさくさくっと結論
- ポートフォリオ制作(個人開発)があるコース
- ポートフォリオの例
- あなたがポートフォリオとして作るべきもの
- ポートフォリオのための14の確認項目
- 【必須】不具合がないこと
- 【必須】READMEが整理整頓されていること
- 【必須】GitHubのIssueやPull Requestを活用していること
- 【必須】レスポンスが良好であること
- 【あるとBetter】UI/UXを整っていること
- 【あるとBetter】テストが十分書かれていること
- 【あるとBetter】DRY原則を適用しつつコードの可読性が高いこと
- 【あるとBetter】インフラにAWSが使われていること
- 【あるとBetter】開発環境と本番環境でDockerが使われていること
- 【あるとBetter】Capistranoによる自動デプロイ
- 【あるとBetter】CircleCIによるCI/CDパイプラインの構築
- 【あるとBest】完全SPA化されていること
- 【あるとBest】コンテナ基盤にECSのFargate起動タイプを使っていること
- 【あるとBest】Terraformでインフラがコード化されていること
- 先輩エンジニアの個人開発に参加してスキルアップ
まずはさくさくっと結論
内定を勝ち取れるポートフォリオは以下のどちらか
① 実際に身近の誰かの課題を解決してあげるポートフォリオ
② 技術盛りだくさんのポートフォリオ
注意点
コピーサイトはやめておきましょう
ポートフォリオの14の確認項目
【必須】不具合がないこと
【必須】READMEが整理整頓されていること
【必須】GitHubのIssueやPull Requestを活用していること
【必須】レスポンスが良好であること
【あるとBetter】UI/UXを整っていること
【あるとBetter】テストが十分書かれていること
【あるとBetter】DRY原則を適用しつつコードの可読性が高いこと
【あるとBetter】インフラにAWSが使われていること
【あるとBetter】開発環境と本番環境でDockerが使われていること
【あるとBetter】Capistranoによる自動デプロイ
【あるとBetter】CircleCIによるCI/CDパイプラインの構築
【あるとBest】完全SPA化されていること
【あるとBest】コンテナ基盤にECSのFargate起動タイプを使っていること
【あるとBest】Terraformでインフラがコード化されていること
ポートフォリオ制作(個人開発)があるコース
DMM WEBCAMPでポートフォリオ制作(個人開発)があるは次の表で○がついているコースです。
| コース | ポートフォリオ制作(個人開発) |
| DMM WEBCAMP COMMIT 短期集中コース | |
| DMM WEBCAMP COMMIT 専門技術コース | |
| DMM WEBCAMP PRO 転職志望コース | |
| DMM WEBCAMP SKILLS Webアプリ開発コース | |
| DMM WEBCAMP SKILLS はじめてのプログラミングコース |
ポートフォリオの例
タスク管理アプリ『DTODO』
TODOアプリにごほうび性を取り入れたアプリケーションです。
学習記録サービス『Hashlog』
ハッシュタグを登録するだけで継続を可視化できるTwitter連携型学習記録サービスです。
カロリー管理サービス『Zerorie』
「ゼロカロリー理論」を使って、全ての食べ物を0kcalにしてくれるカロリー管理アプリです。
デートサポートサービス『Date me』
デート中の夫婦・カップルにLINEを通じてミッションを届けてくれるデートサポートサービスです。
Twitterアカウント解析サービス『エンジニアチェッカー』
エンジニアに関して間違った情報を発信するインフルエンサーを炙り出すTwitterアカウント解析サービスです。
あなたがポートフォリオとして作るべきもの
たくさんポートフォリオの例をお見せしましたが、ではあなたが作るべきポートフォリオは何でしょうか?
転職活動で内定が取れるポートフォリオです。
では、転職活動で内定が取れるポートフォリオとは何でしょうか?
転職活動で内定が取れるポートフォリオ
転職活動で内定をとれるポートフォリオは次のどちらかを満たすものです。
① 実際に身近の誰かの課題を解決してあげるポートフォリオ <= オススメ
もちろん両方満たせればBestですが、未経験エンジニアの人は①を意識したほうがいいと思います。
① 実際に身近の誰かの課題を解決してあげるポートフォリオ
自分や家族や身近な友人の課題を解決してあげるアプリを作ってみましょう。
そのようなサービスであれば面談の際も話が盛り上がりますし、問題解決能力のアピールにもなります。
チャットサービスやToDoサービスは汎用的で抽象度が高いという特徴があります。
そのため誰でも思いつき差別化になりにくいポートフォリオとなってしまいます。
(a)身近の誰かの課題を見つける
1日の自分の行動をすべて記録し1週間続けてみましょう。
そこから繰り返し行っていることを見つけてみましょう。
もしくは、自分の身近な人(家族・友人・同僚)が毎日やっていることを見つけましょう。
そのような繰り返しの行動がプログラムで自動化できる可能性のある課題になります。
(b)解決策を探す
まずは既存のサービスで解決策がないか探します。
その次に先輩エンジニアに相談しましょう。
スクールのメンターでもいいですが、StackOverFlowやTeratailなどで相談してみましょう。
(c)開発を行う
(a)の課題を解決するサービスを個人開発しましょう。
実際の開発方法はDMM WEBCAMPのカリキュラムに従って行ってください。
(d)ユーザーに使ってもらう
ポートフォリオが完成したら家族や友人に使ってもらいましょう。
(e)改善を行う
(d)でユーザーに使ってもらった後フィードバックをもらい改善を行いましょう。
ここまで個人開発で行えると面接ではかなり好印象となると思うので是非がんばってください。
② 技術盛りだくさんのポートフォリオ
トレンドの技術盛りだくさんのポートフォリオを作れれば面接で好印象です。
↓の章のすべてを満たせればひとまずOKだとおもうので頑張ってください。
コピーサイトはダメ!絶対!
コピーサイトはやめておきましょう
採用担当の中にはコピーサイトを持ってこられた時点でシャットダウンの人もいるそうです。
技術力勝負だとライバルに見劣りする可能性がある
コピーサイトだと思い入れがない分、どうしても技術力勝負になります。
技術力勝負だとライバルに見劣りして負ける可能性があります。
ライバルの中には経験者も含まれているからです。
もちろん最低限の技術力は必要ですが、コピーサイトではなく自分が心から解決したい課題を見つけて、それらの課題を解決するアプリをポートフィリオとして採用しましょう。
思い入れがないので面接で盛り上がらない
コピーサイトだと思い入れがないので面接で盛り上がりません。
心から解決したい課題のためのアプリではないからです。
思い入れのあるサイトを開発しましょう。
ポートフォリオのための14の確認項目
【必須】不具合がないこと
不具合がないようにしましょう。
面接官の人に触ってもらうときにエラーで落ちてしまったらかなりの減点ポイントです。
不具合がないようにテストを書いたり一連の動作確認を行ったりするようにしましょう。
【必須】READMEが整理整頓されていること
READMEは整理整頓しましょう。
githubにアクセスすると一番最初に目を通すところです。
以下を書いておけばいいでしょう。
① サービスの概要とURL
② 使用技術
③ インフラ構成図
④ 機能と非機能一覧
【必須】GitHubのIssueやPull Requestを活用していること
GitHubのIssueやPull Requestを活用しておきましょう。
チーム開発にも対応できるというポイントになります。
以下の点をスクールでも学習すると思うので個人開発でも行うようにしましょう。
① タスクごとにIssueを発行
② Issueごとに作業ブランチを切ってPull Requestを発行
③ Pull Requestをマージする際にIssueをクローズする
【必須】レスポンスが良好であること
Herokuを使っている場合転職活動中は一時的に有用プランを使うようにしてレスポンスを良好にしておきましょう。
Herokuの無料プランだとレスポンスがかなり遅くなります。
採用担当者をイライラさせてしまうことに繋がります。
Herokuは有料プランを使うようにしてレスポンスを良好にしておきましょう。
AWSを使っている場合は問題ありません。
【あるとBetter】UI/UXを整っていること
UI/UXを整えましょう。
ユーザーや直感的に操作しやすいようにボタンの配置などを設計しましょう。
【あるとBetter】テストが十分書かれていること
テストを書いておきましょう。
Ruby on RailsならRSpecを導入してテストを書いておきましょう。
『【必須】不具合がないこと』の対策にもなります。
【あるとBetter】DRY原則を適用しつつコードの可読性が高いこと
DRY原則を適用しつつコードの可読性が高いものにしておきましょう。
Rubyであればrubocopなどを使えばOKです。
【あるとBetter】インフラにAWSが使われていること
クラウド上でシステム開発ができるクラウドサービスにはAWSやHerukuがありますが、
AWSを使いましょう。
前述の『【必須】レスポンスが良好であること』を満たすためでもあります。
【あるとBetter】開発環境と本番環境でDockerが使われていること
Dockerを使っておきましょう。
開発環境で動いていたけど本番環境で動かないなどの問題を、開発工程からDockerを活用していくことで防ぎやすくなります。
【あるとBetter】Capistranoによる自動デプロイ
Capistranoによる自動デプロイをしておきましょう。
capistranoを利用することでサーバーにログインしなくてもコマンド一つでデプロイできます。
【あるとBetter】CircleCIによるCI/CDパイプラインの構築
CircleCIによるCI/CDパイプラインを構築しておきましょう。
ビルド・テスト・デプロイのCI/CDを自動で実行してくれるクラウドサービスCircleCIを導入しておきましょう。
【あるとBest】完全SPA化されていること
Vue.jsなどを使い完全SPA化を取り入れましょう。
SPAにより単一のWebページでコンテンツ切り替えを行うことができます。
ページ遷移の必要がなくなりブラウザの挙動に縛られないWeb表現を可能になります。
最近ではこのSPA化を取り入れている自社開発企業が増えています。
自社開発企業への転職や転職活動で好印象を得るためにはSPAを取り入れたポートフォリオを作りましょう。
【あるとBest】コンテナ基盤にECSのFargate起動タイプを使っていること
ECSのFargate起動タイプを使用しましょう。
ECSにはもう一つ「EC2起動タイプ」があります。
これと比べて「Fargate起動タイプ」はコンテナを実行する際の基盤であるホストマシンの管理から開放されるメリットがあります。
自社開発企業ではFargateを使用するケースが増えてきているので触れておくと良いでしょう。
【あるとBest】Terraformでインフラがコード化されていること
Terraformでインフラをコード化しておきましょう。
AWSの画面でポチポチとボタンを押していく作業をしなくてよくなります。
先輩エンジニアの個人開発に参加してスキルアップ
『自分のポートフォリオだと中々転職活動がうまくいかない』という人!
私の個人開発参加サービスに参加してください。
先輩エンジニアと一緒に開発して”見て盗む”のが、一番スキルが向上しやすいからです。
その盗んだスキルで自分の作りたいものを作ればおそらく転職活動も難なく通過できるでしょう。
自分のポートフォリオだと内定が取れないって人は、ぜひ個人開発参加サービスへの参加をご検討ください。