僕がWeb開発でDjangoをオススメする理由
フリーランスエンジニアのベナオと申します。
軽く自己紹介をすると、大学院で生物学の研究する→企業で某電子決済アプリの開発をする→辞めてフリーランスエンジニアになった人です。
普段はPythonを中心としたエンジニアについての情報発信をTwitterでしています!
あとはTwitterのダイレクトメールで、未経験からエンジニアを目指す方向けの相談を受ける #一日無料メンター という活動をしています。
上のツイートの相談者さんのケースでもアドバイスしていますが、未経験からエンジニアになろうという方に僕がおすすめしているのが、まずポートフォリオ(アプリやサイトなどの、その人のスキルがわかる成果物)の作成です。
未経験からエンジニアを志望する方が増えてきた昨今ですが、そんなエンジニア市場において自分の人材としての価値を差別化するために有効な方法がポートフォリオなのです。
エンジニアという職業は製造業などと大きく違い、実際に就職して業務に着く前から自分1人でも開発を始めてスキルを積むことが容易です。なのでIT系の人事部の方から見ても、プライベートの時間で積極的にスキルを磨いている人は好評価となるわけです。
そこでこの記事では、僕が実際にオンラインで開発サポートさせてもらっている際に教材としている、PythonのDjangoというWeb開発フレームワークを紹介したいと思います!
このDjangoは、YoutubeやInstagramのWebアプリの開発に使われているくらいモダンなフレームワークです!
「Djangoって聞いたことあるけど、実際どういうものかよくわからない」
「オンライン開発サポートについて興味がある」
「就活や転職でエンジニアになりたいけど何から始めればいいかわからない」
という方はぜひお付き合いください!
1. PythonのWeb開発フレームワーク、Djangoって何?
そもそもPythonについてよく知らない方向けに軽く解説すると、可読性を重視してコードがシンプルでわかりやすいプログラミング言語です。
特徴として、機械学習を初めとしたライブラリ(ある機能を実装する為のプログラムが揃った道具箱のようなもの)が豊富に用意されている点が挙げられます。
アメリカの電気・情報工学分野の研究団体であるIEEEが、独自の指標からプログラミング言語の格付けを行った「The Top Programming Languages 2019」でPythonは1位の評価を受けています。
DjangoはそんなPythonで用意されている、Web開発用のフレームワークです。
Pythonの他のフレームワークであるFlaskやBottleでは必要最小限の機能のみが用意されているのに対して、Djangoにはデータベース入力フォームなどの開発に必要な多くの機能が標準搭載されています。
またユーザー認証機構も用意されており、セキュリティに強いWebアプリを容易に作ることができます。
2. Djangoが使われているWebサービス
記事の初めにも軽く触れましたが、DjangoはあのInstagramのWebアプリ開発に使われています。
ツイートにある通り、バックエンド(システムのサーバー側)経験の無いたった2人のエンジニアのみでもシステムの原型を作ることが可能であり、後に短期間で大量のアクセスが来るほどに成長したInstagrmを支え続けたフレームワークがDjangoです。
サービス開始初日は今でいうMacBookProより非力なサーバ1台に、2万5000のユーザーアクセスが集中したそうです。
SNSでは特にセキュリティが死活問題になる(個人間のメッセージなどのやりとりが外部に流出したりすると大変なことになる)ので、その点でもDjangoが適していたのかもしれません。
その他のDjangoが使われている主なWebサービスを、以下に列挙しておきます。
・Youtube
・DropBox
・Google検索
・Spotify
・YahooMap
Web系のモダンな企業に多く採用される傾向にありますね。
3. PythonのDjangoを学ぶには
DjangoによるWeb開発を学ぶ方法として提案させていただくのが、オンラインでの開発サポートです。
こちらは1人で黙々とテキストを読みながら自習的に勉強するのが苦手という方や、より実際の業務に近い形でチャットツールでやりとりをしたり、Gitによるバージョン管理、HerokuのようなクラウドサービスへのWebアプリのアップロード(作ったアプリを誰でもアクセスできるようにする)まで一括で学びたいという方に推奨しています。
このサービスを始めた経緯についてnoteにまとめましたので、興味をお持ちいただいた方は以下からご覧ください。
実際にIT系での開発によく使われるチャットツールであるSlackを使って情報共有し、テキスト提供やエラー解決の対応をします。
特に初心者の方はエラーコードが理解できるようになるまでのハードルが極めて高く、そういった方にご好評いただいています!
チャットだけでエラー解決できるか不安という方には、Discordというツールを使ってPCの画面を共有しながら通話でのサポートも対応させてもらっています。
ちなみに教材として提供しているのが、以下のようなタスク共有アプリです。
このアプリの作成を通して学べる機能は、以下の通りになります。
・ログイン機能
・ユーザー登録・編集機能
・テキストデータ登録・編集機能
どんなWebアプリでも使われているような、基本的な機能の実装方法を習得することができます。このWebアプリを原型にして、機能追加して自分の好きなアプリを作ってもらってもかまいません。
開発には以下のようなパワーポイントを参考にしながら行っていただきます。Pythonコードも掲載しているので、初心者の方でも問題なく進めることができます!
進め方としては、まずSlackで受講者さんのスキルやPC環境についてヒアリングします。その上でまず基礎的なスキルを習得する必要があると判断すればprogateからやってもらったり、そのまま開発に入っても問題なさそうならすぐに資料をお渡しするというように、受講者さんに合わせたカリキュラムを提案いたします。
お申し込みの相談は、Twitterのダイレクトメールまでお願いします。特別な理由が無い限りは当日中に返信いたします。
https://twitter.com/benao_python
それでは、一緒にプログラミングできるのを楽しみにお待ちしてます!
ここまで読んでいただきありがとうございます。
少しでも勉強になったという方はTwitterでシェアお願いします!
サポートは料理好きなのでの食材費にさせていただきます。