【Python】エンジニアによるプログラミングのポートフォリオの作り方・コツ





プログラミング初心者にとって、ポートフォリオは重要な役割を持ちます。

特に、エンジニア就職・転職活動では必須になります。

  • ポートフォリオ作成がわからない人
  • ポートフォリオ作成のポイントが知りたい人
  • エンジニア就職・転職で悩む人

これらの悩みを解決しながら、ポートフォリオの作り方を解説します。

記事を読み終えると、ポートフォリオ作成の重要性とエンジニア就職・転職活動の方法が理解できます。

結論は、質の高いポートフォリオが重要であり今後のエンジニア活動を大きく左右します。

独学に限界を感じたなら...
とりあえず独学でプログラミング学習を始めたけど、右も左も分からずあなたの時間が無駄に終わるどころか挫折するかもしれません。

あなたが時間を無駄にした分を回収したいなら【Python】2022年最新!おすすめのオンラインプログラミングスクールをご確認ください!

※期間限定で学習ロードマップを記載しています!

エンジニアによるポートフォリオの作り方

エンジニアによるポートフォリオの作り方は、いくつか存在します。

特に、Web系エンジニアであれば以下の2つが一般的なポートフォリオの形です。

  • GitHubによるポートフォリオ
  • Qiitaによるポートフォリオ

執筆時点では、これら2つが基本的なポートフォリオの形です。

GitHubによるポートフォリオ

ポートフォリオのソースコードは、GitとGitHubのリポジトリを活用してバージョン管理するのが基本です。

そのため、GitHubを利用して過去の作品・プロジェクト等をまとめておくと良いです。

GitHubを利用したポートフォリオ作成は、以下のメリットがあります。

  • 開発環境はGit/GitHub採用が多い
  • バージョン管理の理解
  • 開発体系の一部理解

プログラミング初心者でも今後のエンジニア活動を想定するなら必ず理解しておく必要があります。

BitbucketやGitLabといったGitHub同様のWebサービスがありますが、GitHub活用が圧倒的です。

Qiitaによるポートフォリオ

QiitaはIT業界で最も有名な技術ブログサービスの一つです。

未経験のエンジニア就職・転職活動でもQiitaの技術記事は有効です。

  • 学習意欲の高さ
  • 学習レベルの把握・理解

採用側もこれらの学習状況を判断できます。

Twitterによる情報発信も有効な場合があり、QiitaとTwiiterのアカウントによって企業に好印象を与える可能性もあります。

学習内容も初歩的(Git/GitHubの基本コマンドとバージョン管理方法など)でも問題ありません。

数が少なくても良いので、継続した情報発信が効果的です。

例:ポートフォリオをGitHubに公開する

一つの例として、GitHubへ公開するポートフォリオの作り方を解説します。

GitHubへのポートフォリオ公開は、以下の流れになります。(特に初めての場合で記載します。)

  • Gitのインストール
  • GitHubへアカウント登録する
  • GitHubでリポジトリを作成する
  • ローカルPCでフォルダ作成する
  • Git/GitHubのSSH(公開鍵/秘密鍵)を設定する
  • Git/GitHubへフォルダ/ファイルをプッシュする
  • GitHub Pagesでポートフォリオを公開する

それぞれの内容を解説します。

Gitのインストール

はじめに、Gitのインストールを実施します。

https://git-scm.com/からgitのインストーラーをダウンロードします。

『ダウンロード』の箇所をクリックします。

お使いの各種OSに合わせて、クリックします。

Homebrewなどをインストールしていれば、CLI(コマンドラインインターフェース)等でインストールできますが、わからない場合は『Binary Installer』からクリックしてインストーラーをダウンロードします。

ダウンロードしたインストーラーを起動してGitをPCへインストールしておきましょう。

インストール後は、以下のコマンドでバージョン確認が行えます。

git --version

バージョン確認できれば、インストールが完了できたことになります。

また、gitコマンドでユーザー登録や初期化を実施します。

Git/GitHubへコマンドを利用しプッシュする際、以下のようなエラーが発生する場合があります。

fatal: Not a git repository (or any of the parent directories): .git

原因として、Gitの初期設定の不備で引き起こされるため、以下の内容は実施しておきましょう。

git config --global user.name "xxxx"
git config --global user.email "xxxxxx@gmail.com"

上記のコマンドで、ユーザー名とメールアドレスの登録を実施/設定します。

git init

次に、Gitの初期化を実施してひとまず完了です。

GitHubへアカウント登録する

次に、GitHubへアカウント登録します。

https://github.com/からGitHubサイトへアクセスします。

メールアドレスを入力してサインアップを行います。

  • メールアドレス
  • パスワード
  • ユーザーネーム
  • お知らせメール受け取りの有無
  • アカウントの確認

これらの入力を完了させるとメールアドレス宛に認証コードが送付されます。

認証コードをサイト画面にて入力すると、アカウント作成完了です。

GitHubでリポジトリを作成する

次に、GitHubで新しくリポジトリを作成します。

左上にある『Create repository』をクリックします。

各種設定項目を記載します。

  • Repository name(必須)
  • Description
  • Public/Private
  • Add a README file
  • Add .gitignore
  • Choose a license

ここでは、リポジトリ名と説明、READMEファイルの作成にチェックを入れて『Create repository』をクリックしました。

任意のリポジトリが作成されれば完了です。

ローカルPCでフォルダ作成する

次に、自身が扱うPCにてGitHubに公開するためのフォルダを作成します。

任意のディレクトリで以下のコマンドを入力するとフォルダ作成できます。

mkdir フォルダ名

フォルダ作成後は、作成したフォルダまでディレクトリを移動します。

cd フォルダ名

cdコマンドでフォルダの位置までディレクトリ移動しておきましょう。

作成したフォルダには、以下のフォルダ/ファイル構成とプログラムファイルを持たせています。

flask-todo
├── app.py 
└── templates
   └── index.html

ここではサンプルフォルダ/ファイルとして上記の内容で実施しています。

同じサンプルを利用したい人は、「【Python】FlaskによるToDoアプリケーション作成/開発」の記事を参考にしてください。

おそらくフォルダ/ファイル構成とプログラムファイルに記述するコードは、3分ほどで作成できると思います。(コピペできます。)

Git/GitHubのSSH(公開鍵/秘密鍵)を設定する

次に、GitHubにアクセスする際、SSH接続できるよう公開鍵/秘密鍵の設定を行います。

ちなみに、HTTPS接続によるプッシュを行うと以下のエラーになります。

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.

現在HTTPS接続によるユーザー・パスワード認証は、2021年8月13日から廃止されることになりました。

https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/

そのため、SSH接続が確立できるよう設定する必要があります。

作成したフォルダをカレントディレクトリとし、以下のコマンドを実行します。

mkdir ~/.ssh

次に、RSAという方式の暗号鍵を作っています。

ssh-keygen -t rsa

実行すると、「名前はどうするか?」、「パスフレーズはどうするか?」、「パスフレーズをもう一度入力」、などについて3回ほど聞かれます。

特にこだわりが無ければすべてEnterを押して飛ばして構いません。

lsコマンドで確認すると、以下のファイルが生成されていることが分かります。

id_rsa
id_rsa.pub

「id_rsa」が秘密鍵、「id_rsa.pub」が公開鍵になっていて、公開鍵の方をGitサーバーやGitHubに送ることでSSH接続が出来るようになります。

次に、GitHubで作成したフォルダ内で公開鍵を登録します。

『Code』を選択すると、『SSH』タブがあるのでInformationに沿って青文字のURLをクリックします。

ここでは、以下の項目を埋めます。

  • Title(任意の名前で入力)
  • Key

Keyに関しては、以下のコマンドを入力するとクリップボードにコピーできます。(Mac)

pbcopy < ~/.ssh/id_rsa.pub

Public Key(公開鍵)をコピーした後、『Key』の箇所に貼り付けて、『Add SSH Key』のボタンをクリックします。

これで、SSH接続するためのKey設定は完了です。

Git/GitHubへフォルダ/ファイルをプッシュする

次に、任意のフォルダ/ファイルをGit/GitHubへプッシュします。

追加するために指定するURLは、GitHubで作成したリポジトリページにて取得します。

任意のフォルダまでディレクトリを移動したら、以下のコマンドを実施します。

git add .
git commit -m 'First Commit'
git remote add origin git@github.com:[ユーザー名]/xxxx.git
git push origin master

上記のコードを実行した後、GitHubページに戻りmaster branchを選択します。

master branchを選択すると、以下のページが表示されます。

これで無事にGitHubへ開発フォルダをプッシュすることができました。

GitHub Pagesでポートフォリオを公開する

最後に、GitHub Pagesを使ってポートフォリオを公開します。

GitHubにおける任意のフォルダページにて、上部タブの『Settings』をクリックします。

サイドバーにある『Pages』をクリックすると、GitHub Pagesに画面遷移します。

また、Sourceといった項目にて、プルダウンメニューが存在するので『master』を選択し、『Docs』を選択して『Save』をクリックします。

上部のInformationにて、URLが発行されるのでクリックします。

これで、GitHub Pagesにてポートフォリオを公開できました。

また、ここではREADME.mdのファイルを作成しているため、mdファイルが優先されてREADME.md内のテキストが表示されています。

以上で、具体的なポートフォリオ作成の工程は完了です。

ポートフォリオ作成のポイント

別業種で既に働く社会人がエンジニア転職する場合、ポートフォリオは最重要の役割を担います。

質の高いポートフォリオを作成するポイントは、以下の11項目です。

  • 問題意識が伝わるテーマ選び
  • アプリ用途/機能が直感的に理解できる
  • UI/UXのデザイン性/操作性の良さ
  • レスポンスの高速性
  • テストデータによるでも実施
  • 機能数の豊富さ
  • テストコードの記述
  • 不具合への対応
  • DRY原則の適用
  • GitHubによる開発環境
  • 若干難易度の高い技術チャレンジ

これらの項目を意識してポートフォリオ作成に挑みましょう。

ポートフォリオ作成時は、過程を情報発信するとさらに効果的です。

問題意識が伝わるテーマ選び

Web系エンジニアの仕事は、「テクノロジーでソリューション提供しビジネスに貢献すること」です。

企業は業務に対しモチベーションが高いIT人材を求めます。

ポートフォリオの問題が浅いと「問題解決への熱意」が低いとジャッジされます。

例えば、コロナウィルスの影響によってリモートワークが増えたことからシンプルなビデオアプリケーション開発に取り組むなど、社会的な問題意識を持つと良いです。

社会的問題意識ではなく、福利厚生や働き方への理想だけでエンジニアを目指す人だと注意が必要です。

アプリの用途/機能が直感的に理解できる

ユーザーの視点から物事を考えられる人がポートフォリオから汲み取れると良いです。

独自性を考えすぎると、無駄な機能や複雑な仕様になります。

一般的なWebサービスを利用して、シンプルな機能一覧や制限を持たせた機能をまとめておくと良いです。

それらをポートフォリオ作成時に活用しましょう。

UI/UXのデザイン性/操作性の良さ

アプリ・サービスを実行した時の第一印象は重要です。

Webデザイナーになるわけではないですが、エンジニア業務でもmaterial-UIやBootStrapなどのCSSフレームワークの活用を図りましょう。

特にフロントエンドエンジニアを希望する場合、アプリケーションの画面実装は発生する業務です。

またデザイン性に合わせ、操作性も意識して作成しましょう。

レスポンスの高速性

ページ速度もユーザーを意識した取り組みなので、重要なポイントです。

SPA技術もあり画面遷移自体の改善されていますが、レスポンスが遅延すると使いづらさに影響します。

Googleの「Page Speed Insights」といったツールもあるので、ポートフォリオの改善時は活用しましょう。

レスポンスの遅延は、効率の悪い処理が紛れています。

レスポンス対応は、ユーザーを意識した改善のため加点評価になります。

テストデータによるデモ実施

アプリケーションを運用する想定のもと、テストデータによるデモ実施も重要です。

エンジニア業務に関しても、本番運用の前にテスト運用が実施されます。

アプリ・サービスが正しく動作してるか、バージョン管理は正しく行えるかといった判断を下すためにデモ実施は大切なポイントです。

作り上げて終わらないのがアプリケーション開発の分野なので、保守・運用の考え方を身に付けましょう。

機能数の豊富さ

機能が充実したアプリ・サービスは重要です。

最近ではプログラミングスクール等で最低限の機能あるいは1〜2つほど機能追加したポートフォリオ作成が一般化しています。

特にメディア系サービスのポートフォリオの場合、スクール生の量産型ポートフォリオと差をつけないと採用時に埋もれます。

問題意識が伝わるテーマ選びに関連して、機能追加の検討を実施しましょう。

テストコードの記述

特にWeb系自社開発企業は、単体テストや統合テストのコード記述が必要になります。

ソフトウェアテストの考え方を理解しておくと良いです。

単体テストだけでなく、統合テストも記述できると評価が得やすいです。

不具合への対応

どれだけ機能面が優れていたりデザイン性・操作性が魅力的でも、大きな不具合が一つあると問題です。

仮に、新しい技術におけるチャレンジをポートフォリオ内で実施していれば、評価を大きく下げることは回避できるかもしれません。

ただ、十分なテストコードを記述できれば基本的に不具合は回避できます。

手動だけでなく、自動テストによる不具合防止も検討/実施しましょう。

DRY原則の適用

DRYは「Don’t Repeat Yourself」の頭文字を取っており、「重複するな」という意味です。

規模によりますが、ポートフォリオのコードサイズは一般的に大きくなります。

評価を行う人も全てのコードを確認できませんが、一定の評価基準を持って可読性に注目します。

  • コードの可読性
  • 変数・定数等の定義
  • 重複コードの有無

これらの評価を企業ごとに基準を持って見定めます。

LinterやFormatterを導入し、最低限のDRY原則を適用させましょう。

GitHubによる開発環境

上述にもあったように、ソースコードはGit/GitHubのバージョン管理が基本です。

  1. 機能追加/コード修正に対応するGitHubのIssue作成
  2. Issueに対応する作業ブランチ作成
  3. 作業完了後、作業ブランチをGitHubにpush
  4. 作業ブランチからプルリクエスト作成
  5. プルリクエストをmasterブランチへmerge

これらGitHub上での一連の開発工程を理解しておくと良いです。

情報管理としてIssueで一元化できますが、古くから利用されるチケット型のRedmineなども知っておくと良いでしょう。

ポートフォリオ作成時に擬似的なチーム開発を簡単に取り組んでおくことで、Git/GitHubの活用レベルを証明できます。

若干難易度が高い技術チャレンジ

周囲のエンジニアと差別化するために、若干難易度の高い技術にチャレンジすると良いです。

オンライン学習教材でもHerokuへのデプロイ等は一般化されてるので、以下の差別化がおすすめです。

  • AWS
  • GCP

インフラ系であれば、これらに移行するだけでも十分な差別化になり、実務でも利用するため効果的です。

Googleが提供するBaaS型のFirebaseの利用も良いです。(特にモバイルアプリケーションの場合)

エンジニア設計方法を詳しく知りたい人は、「プログラミングを時間の無駄にしない人の特徴とエンジニア人生設計」で解説します。

プログラミングを時間の無駄にしない人の特徴とエンジニア人生設計

2019.11.23

ポートフォリオ作成の過程を情報発信

ポートフォリオ作成の過程は、情報発信する絶好の機会です。

ポートフォリオ作成過程の情報発信は、以下のメリットがあります。

  • 学習意欲の高さを提示できる
  • 継続的な学習姿勢を提示できる
  • 課題に対する取り組みが提示できる
  • ポートフォリオ公開によるユーザー獲得

これら4つのメリットを手に入れることができ、ポートフォリオに付加価値を与えます。

特にアプリ・サービス公開によってユーザーを獲得した場合、プロジェクト開発の一つの目的達成となり、間違いなく評価を得るポートフォリオとなります。

エンジニア就職・転職活動の注意点

質の高いポートフォリオが完成すれば、いよいよエンジニア就職・転職活動開始となります。

ただし、立場によってエンジニア就職・転職活動の注意が必要です。

  • 社会人による転職活動
  • 大学生による就職活動

大きく分けて2つの立場による活動に注意が必要です。

どちらの立場も未経験のエンジニア希望を想定します。

社会人による転職活動

プログラミング未経験の社会人で転職活動する場合、知っておかなければならない事実があります。

実務未経験からジョブチェンジする際に狙う企業は、「数人〜10人ほどのWeb系スタートアップ企業」です。

なぜスタートアップ企業をターゲットにするかの理由は以下の内容です。

  • 理系学部卒・院卒(大学推薦)がメガベンチャーの未経験枠を占有済み
  • IT/Web系企業の体質的に年齢が若い社員を求める傾向が強い

これらの理由から大手の中途採用枠の競争が激しくなり、優秀なエンジニアしか取らない傾向があります。

筆者も工学部卒の推薦による入社でしたが、大学時代に大手から名のある中小企業まで推薦で一定数の採用枠は埋まります。

有名大学ほど推薦枠が多く、学生内でも競争が激しいです。

そのため、スタートアップ企業に転職後、キャリアアップ転職を繰り返すのが無難です。(一部の天才を除く)

スタートアップ企業の求人が多いサービスは以下の2つです。

  • Wantedly
  • Green

これら2つに登録してプロフィールを充実させておきましょう。

甘い蜜のように「実務未経験者歓迎」といった企業は注意が必要です。

これはSES系企業が多いですが、いわゆる「案件ガチャ」と呼ばれ、開発仕事になるかは完全に運任せです。

大学生による就職活動

理系・文系学生どちらにおいても、プログラミング未経験の場合は大手企業への就職は難しいです。(開発業務の場合)

学生は実務未経験のため、以下の内容が充実すると新卒採用が獲得しやすいです。

  • 学生時代の研究・卒論内容
  • インターンシップ制度によるインターン枠獲得

これらが学生における就職活動時の利点です。

ただし、Web系企業のインターンは競争率が激しいため、ポートフォリオが必要になる場合もあります。

この2つを最大限活用するために、大学の就職支援センターやリクナビ等の就活サイトで充実したプロフィールとポートフォリオ・エントリーシートを完成させましょう。

就職支援実績あり!おすすめオンラインプログラミングスクール

独学でプログラミング学習の限界を感じている人におすすめのオンラインプログラミングスクールをご紹介します。

ただし、注意する点として『スクールの質が高い=あなたに最適なスクール』には必ずしもならないため、必ずカウンセリングを受けてください。

カウンセリングを受けないで決めてしまうとお金を無駄にする可能性があります。

おすすめプログラミングスクール
スクール名最短受講期間料金(税込)スクールの概要
TechAcademy4週間プラン(1ヶ月/コース)174,900円/コースオンライン学習サービス1週間の無料体験可能/Python・AI・データサイエンスコースなど複数コース受講のセット割引プランあり
CodeCamp2ヶ月198,000円マンツーマンでPythonを学べ、レッスン対応時間が長く、早朝・深夜の時間帯もオンラインで受講可能/無料カウンセリングあり

TechAcademy(テックアカデミー)

TechAcademy(テックアカデミー)は、累計3万人以上の受講実績のある人気プログラミングスクールです。

現役ITエンジニアのパーソナルメンター(講師)による学習サポートやチャットでの質問対応ができ、プログラミング未経験/初心者でも学びやすいと評判のオンラインスクールです。

  • 自分が希望のコースを最短4週間で受講可能
  • オンラインによる学習環境の充実と質問対応
  • 1週間のトライアル(無料体験)を実施してる
  • 実践的なアプリ開発を習得できる
  • 無料の就職/転職サポートを受けられる

学べるコースはPython/はじめてのプログラミング/Web制作・システム開発系など多数のコースがあり、セット割引を利用して複数のセット受講も可能です。

現役エンジニアのメンターと週2回のメンタリング、直接プロからプログラミングやキャリアについて学べる学習環境があります。

また、毎日15時~23時の8時間はオンラインの質問対応、提出課題には丁寧なレビューがもらえるなど受講者の評判が良いオンラインプログラミングスクールです。

さらにメンタリング/チャットでの質問対応状況など、オンライン学習サービスを確認できる1週間の無料体験がおすすめです。

無料体験と相談窓口
TechAcademyの無料体験・無料メンター相談はこちらから確認することができます。

CodeCamp(コードキャンプ)

CodeCamp(コードキャンプ)は、現役エンジニア講師のマンツーマンレッスンによる丁寧な指導が人気/評判のオンラインプログラミングスクールです。

累計受講者数3万人以上、研修導入企業300社以上など実績も豊富なスクールになります。

  • 面倒なデータ処理を自動化/業務効率化したい人
  • Webエンジニアとして活躍したい人
  • 就職目的としてプログラミングを理解したい人

これらを含め、Python/Webデザイン/アプリ開発/オーダーメイドなど、豊富なカリキュラム内容です。

マンツーマンレッスンの対応可能な時間帯は、毎日7時~23時40分と他のプログラミングスクールより長く、CodeCampは早朝や深夜でも受講できます。

そのため、仕事・学業をしながら受講しやすい点がおすすめと口コミで評価されています。

また、自分で講師を指名できる点、Pythonについての質問や講師にエンジニアとしてのキャリアや就職/転職の相談も可能です。

CodeCampに興味ある人は、詳しいレッスン内容や学習サービスについて確認でき、受講料金の1万円割引クーポンももらえる無料カウンセリングの利用がおすすめです。

無料カウンセリング窓口
CodeCampの無料カウンセリング申し込みはこちらから確認することができます。

Pythonロードマップを元に本格的な学習を始めたい人へ

おそらくプログラミング未経験からPythonあるいはプログラミング活用を図りたい人は、以下の考えが存在すると思います。

  • とにかくプログラミングがどのようなものか触れることで理解したい人
  • 現在の職種/業界の中でプログラミングを活用したい人(DX化/業務効率化など)
  • プログラミング未経験から就職/転職を考えて取り組みたい人

上記の悩みや課題をPythonロードマップとして言語学習から転職までを目標プロセスに落とし込んで作成しました。

あなたの考えるエンジニア像のゴールに合わせたオンラインプログラミングスクールが選べる情報も公開しているので、一度読んでみてください。

【Python】2022年最新!おすすめのオンラインプログラミングスクール

2020.01.14

まとめ

ポートフォリオ作成はエンジニア活動において重要な役割を持ちます。

ポートフォリオ作成時のポイントは、以下の項目です。

  • 問題意識が伝わるテーマ選び
  • アプリ用途/機能が直感的に理解できる
  • UI/UXのデザイン性/操作性の良さ
  • レスポンスの高速性
  • テストデータによるでも実施
  • 機能数の豊富さ
  • テストコードの記述
  • 不具合への対応
  • DRY原則の適用
  • GitHubによる開発環境
  • 若干難易度の高い技術チャレンジ

これらを意識してポートフォリオ作成を実施しましょう。

ポートフォリオ作成時は並行して情報発信するのがおすすめです。

  • 学習意欲の高さを提示できる
  • 継続的な学習姿勢を提示できる
  • 課題に対する取り組みが提示できる
  • ポートフォリオ公開によるユーザー獲得

これら4つのメリットを享受できます。

エンジニア就職・転職の注意点として、立場による考え方が重要です。

  • 社会人による転職活動
  • 大学生による就職活動

特に社会人による転職活動は、今後のキャリアアップの方針も同時に立てておきましょう。

質の高いポートフォリオ作成と情報発信を始め、エンジニア就職・転職を成功させましょう。



ABOUTこの記事をかいた人

sugi

大学卒業後、IT企業に就職を果たす。システム開発・人工知能に触れながら大手企業と業務をこなす。2年半後脱サラし、フリーランス活動経験を経て 2019年2月から起業し、今に至る。 自社サービス及び製品を開発、ブログ収入、クラウドソーシングなど、多方面で売り上げを立てている。