Pythonを学び始めたら学んだことを生かしてポートフォリオを作りたいと思いますよね。そこで今回はPythonを使ったポートフォリオをどうやって作っていけばいいのかということを紹介する記事です。
Pythonで作りたいポートフォリオとは
認識が違うとこの記事あんまりためにならないだろうから確認しておきたいんだけど、作りたいのって画面があって自分の作成したものや経歴を掲載することができるものですよね。
- 画面がある
- 画面に自分の作成したプログラムのリンクなどを掲載できる
- 画面に自分の経歴などを掲載できる
大体こんな感じだろうか。ただこれなら単純にHTMLとCSSだけでもできてしまいます。でも作りたいのってPythonを使ったものですよね。画面があってバックエンドの処理はPythonを使ってデータベースと繋いで・・・っていうイメージ。
認識が違う場合この記事は役立たずになる可能性があるから、ちょっと確認したかったです。
Pythonでポートフォリオを作るための知識
ポートフォリオ作ろう!って思っているぐらいだからきっともう作るための知識は整っているかもしれない。ただ一応必要になる知識を書いておくとこんな感じだろうか。
- HTML
- CSS
- JavaScript
- Python
- フレームワーク
- SQL
細かいところを書けばもっといろいろあるけど、大まかにこういった知識が必要になってくるはずです。
きっとなんとなくPython使ってポートフォリオ作りたいなあ・・・って考えているぐらいだからそれぞれ触りぐらいは知っているかもしれない。もしそうならフレームワークを勉強して開発していけば、自然とポートフォリオの作成が進んでいくでしょう。
フレームワークを使って開発するのがおすすめ
フレームワークを使わないで作るとなると色々知らないといけないことが増えて大変なので、フレームワークを使って作るのがおすすめです。Pythonのフレームワークはいくつかあるから、自分が作成したいものに合うものを選ぶといいです。
- Django
- Flask
- Bottle
- Tornado
- Web2Py
いくつかあるけど、個人的にはDjangoかFlaskあたりがいいんじゃないかなと思う。Djangoはいろんな機能が詰まっていて、大規模アプリケーション向け。Flaskはコンパクトに機能がまとまっていてシンプルなアプリケーションに向いています。
ただDjangoは管理画面を簡単に作ることができるので、管理画面からポートフォリオに載せるデータを管理したいっていう場合にはDjangoがおすすめです。Djangoは求人数も多いですからね、学んでおいて損はないでしょう。
フレームワークを使わない選択肢
最初のうちはフレームワークを使っての開発がおすすめだけど、フレームワークを使わない場合どういった開発をすればいいのか気になる人もいるかもしれません。
DjangoやFlaskといったフレームワークを使えば、そのフレームワークの中で画面を作ったりデータベースと連携したりっていうことができます。
フレームワークを使わなければ自分でいろいろ考えて作らなくてはいけません。
- PythonのAPIを別で作って画面から呼び出す?
- PythonのAPIはどうやってつくるのか?
- PythonのAPIにフレームワークは使うのか?
こういうことをやるのは初心者のうちは敷居が高いので、フレームワークを使って作るのがいいと思います。フレームワークを使えばそれだけでフロントもバックエンドもそこまで意識しないで作ることができますので。
データベースに何を使うか
Pythonでポートフォリオサイトを作るということはデータベースを使いたいっていうことですよね。データベースに自分のポートフォリオ情報を入れておいて、それを取得して画面に表示したいと考えているでしょう。
ただデータベースにも種類があります。
- PostgreSQL
- MySQL
- SQLite
- MongoDB
- ・・・
自分が触ったことのあるものを使えばいいと思うけど、どれを使えばいいか分からなかったら個人的にMySQLをおすすめします。
MongoDBのようなNoSQLは扱いづらく、PostgreSQLはカラムの順番やenumなど考えると結構面倒だな・・・と感じる部分があるので。MySQLは使っている企業も多いので触っておいて損はないでしょう。
Pythonでポートフォリオを個人的に作るならこんな構成
いくつかポートフォリオを作る上で必要な情報を書いてみたけど、結局何を使って作るのがいいんだ?となりますよね。個人的に作るならこんな構成でやります。
- 言語・・・新しめのPythonバージョン
- フレームワーク・・・DjangoかFlask
- データベース・・・Mysql
- Webサーバー・・・Nginx
Webサーバーとかよく分からんっていう場合も一旦気にせず開発してしまっていいです。
デプロイ先がHerokuなどのPaasならそういった部分は意識しなくてもいいですしね。インターネットに公開するだけを考えるなら最初からそんなに知らなくても大丈夫。
Pythonでのポートフォリオ作成の進め方
ポートフォリオ作成をするといってもいきなり作り始めるとどんなものを作っていけばいいのか迷走してしまいます。なので実装する前にどんな画面にするのかっていうのはある程度決めておきましょう。
エンジニア初心者向けにポートフォリオの作り方・公開方法を紹介していくよ!でも紹介したけど、画面のイメージを作る際にはAdobeXDがおすすめです。
AdobeXDとは
どんな画面デザインにするのかっていうのを作っていくことができます。
ここで作成した画面のイメージ通りに画面のコーディングはしていくといいです。最初にどんな画面にしておくか決めておくと実装中に迷うことがないから良き。
AdobeXDで画面デザインを作成をしたらポートフォリオの画面作成に取り組むといいですよ。
- デザインを作成
- 使用するフレームワーク・データベースを決める
- 開発
細かいことを書くとDBのテーブル設計やアーキテクチャなど色々あるけど、最初はそんなこと気にしていたらおそらく嫌になってしまいます。開発の方がきっと楽しいですから。
なのでデザインがある程度イメージできたらポートフォリオサイトの作成に取り組んでみるといいですよ。
ここからは勉強する内容について書いていきます。
Djangoの勉強をする
Djangoを使ってポートフォリオサイトを作りたいと思ったらDjangoを学ぶ必要がありますよね。どういったフレームワークなのかを知りたい場合は公式サイトを見てみるといいと思います。
それとDjangoのサイトではチュートリアルが掲載されているから、気になったらやってみるといいです。
よりDjangoを学習する
Djangoに手を出してもっと学習をしたかったらUdemyで講座を一つ買ってやってみるといいです。Udemyは動画で学ぶことができる講座を買うことができてなかなか質の高いものが多いです。
Djangoで調べると色々出てきます。
- 【徹底的に解説!】Djangoの基礎をマスターして、3つのアプリを作ろう!(Django2版 / 3版を同時公開中です)
- 最新版:Python + Django3 Djangoを基礎から応用まで、アプリケーション開発マスターpython付き
- 【3日でできる】Django 入門 ( Python 3 でウェブアプリを作って AWS EC2 で公開!)
ここまでやればDjangoの使い方も徐々にわかってきて、ポートフォリオも作れそうだなっていうイメージが湧くと思います。作れそうになったらどんなデザインにするかを検討して作り始めましょう。
HTML・CSSも勉強しよう
画面の作成にはHTMLとCSSの知識がないといけないから、HTML・CSSについても学んでおきましょう。といってもDjangoのようなフレームワークで画面を作れば、作っている最中に色々調べて作成していくことになると思います。
ほとんど画面を作成したことがないっていうなら作り方が分からないと思うからProgateなどでHTML・CSSをやっておくといいでしょう。
もっと深くまで学びたかったらUdemyで何か講座を一つやってみるといいです。
ポートフォリオのデプロイ先は
どこで作成したポートフォリオを公開するか悩みますよね。何かを使うかでもかなりの選択肢があります。
- AWS
- GCP
- PaaS
- VPS
- ・・・
無料でやるならHerokuなどのPaaSを使うのがいいと思います。ただ無料の分無料で動かすためにスリープさせないようにするなどの施策が必要になってきます。
だからといってAWSやGCPなんかは初学者がやるには正直敷居が高い。使うならGCPのGAEなど簡単にデプロイできるものを使うのがおすすめです。
ただデータベースがMySQLやPostgresだと思うので、それはそれで料金がかかってしまうと思います。リレーショナルデータベースを無料で運用するのはしんどいんだ。(GCPは登録後確か300$のクレジットを無料で使うことができるからそれを使うのもいいでしょう)
デプロイはかなり苦戦する場面だと思うから覚悟して行っていこう。
VPSを使うっていう選択肢もあります。
ポートフォリオ作成の過程は発信しよう
ポートフォリオ作成自体のことではないんだけど、何かアプリケーションを作成していると自分の知らないことがたくさん出てきます。それらを書き留めておく記事は書いておくといいです。それが自分がやってきたことやできることのある種の証明になる。
書く媒体はいろいろあるけど、個人的にはブログをおすすめします。
- ブログ
- Qiita
- Zenn
- note
Qiitaなどで投稿すると技術的なコメントが来たりして嬉しいですが、結構ガチコメントが来たりしてメンタルをやられる恐れがある。自分のペースで進められるブログが自分は好きです。
ポートフォリオをどう作ればいいのか分からなかったら
一人でプログラミングの学習や開発をやっていると、自分だけではなかなか解決できない問題やエラーに何度も遭遇するはずです。そういったときに質問できたり気軽に聞けたりする環境があると大きく違います。
ここではそう言った学習効率を良くしていくためにどういった手段があるのかを書いていきます。
プログラミングスクールを利用する
プログラミングスクールは教材を進めている際に分からなくなったらすぐに聞けるっていうのがとても良いです。Pythonを学ぶことのできるプログラミングスクールは探してみると結構あって、以下の記事にまとめているので参考にしてみてください。
一般的なサイト・サービス開発をしたいなら人工知能系のスクールもあるけど、Web開発を学ぶことのできるスクールがおすすめです。
個別に教えてもらう
Mentaやココナラを使って個別にプログラミングを教えてもらうっていうこともできます。例えばココナラを見てみるとこんな募集がある。
- プログラミングお手伝い!駆け込み対応します
- プログラミング講師として初学者をサポートします
- Pythonプログラミングを教えます
ものによるけど価格は数千円で済むものが多いから、気になるものがあれば見てみるといいですよ。
本で学習する
本をメインで使って学習するのはおすすめしないけど、サブ的に使って学習するのは良い。パソコンに触っている時間以外の寝っ転がっている時間も気軽に見ることができますからね。
以下の記事でPythonも含めてプログラミングの人気本を紹介しているのでよかったら参考にしてみてください。
学習の進め方に迷ったら
プログラミング学習を独学でやっていると、いろいろ詰まる部分が出てくるはずです。学習の進め方に迷ったら以下の記事を参考にしてみて使えそうな部分は取り入れてみてください。
まとめ Pythonでポートフォリオを作る
Pythonでポートフォリオを作るのに今回書いたことをまとめると以下。
- フレームワークを使って開発する
- データベースはMySQLがおすすめ
- 学習にはUdemy、より効率よく学習するにはプログラミングスクールやココナラで学ぶ
作り始めるとどういったデザインにしようか、どういった機能を付けようかと色々悩むはずです。実装方法にも悩んで時間も結構かかるでしょう。いろいろぶち当たるところはあると思うけど、良いもの作ってみてください。