Help us understand the problem. What is going on with this article?

Pythonでゼロからでもサービス開発・公開できる学習ロードマップ

初めに

この記事は『プログラミング未経験からPythonでサービス開発できる』ことを目標に、
習得すべきスキルを学習ロードマップとして整理しました。

毎日2~3時間(土日は+2時間)続ければ最短3ヵ月で完了できる内容に絞りました。
すでに習得済みのスキルは飛ばしつつ進めて大丈夫です。

Rubyなど他の言語でも大筋は同じ流れなので、
Pythonと書いてある部分を、そのままRubyと読み替えれば大丈夫です。

※なお、Twitter でもプログラミングに関する情報を発信しています。
もし良ければ Twitterアカウント「Saku731」 もフォロー頂けると嬉しいです。

学習ロードマップの全体像

まず、サービス開発に必要なスキルは大きく分けて10種類あります。

各章で、それぞれのスキルが何の役に立つのか説明しつつ、
十分なスキルが習得できる参考記事・書籍を紹介して行きます。

image.png

学習方法と参考リンク集

①プログラミング環境の構築

まず、プログラミングに必要な「環境構築」を行います。
参考記事に沿ってエディター(Atom)Pythonをインストールしましょう。

②Webサイトの作り方

もしプログラミング未経験であれば最初はHTMLからスタートするのがおススメです。

私たちが普段見ている様々なWebサイトは『必ずHTMLが使用されている』点と、
多少は間違っても大丈夫なので気持ちよく学習を進められる点が理由です。

③デザイン(Bootstrap)

HTML/CSSに慣れてくると「もっと綺麗なWebサイトを作りたいな」と感じてきます。

相当に経験を積めばCSSでも綺麗なデザインを作ることは可能ですが、
皆さんは『サービスを作る』ために勉強しているので、1日でも早く先に進みましょう。

そこで登場する便利なツールが、Twitter社が開発した Bootstrapです。
CSSのスキルや、デザイン経験が無くても洒落なサイトを作れる優れものです。

色々なバージョンがありますが、
2020年2月時点で最新のBootstrap4を使用しましょう。

④Python基礎

プログラミングにも慣れた頃なのでいよいよPythonの登場です。
一言でPythonといっても、いくら勉強しても足りないくらい色々な要素が存在します。

そこで、本記事ではサービス開発だけにフォーカスして、
嫌でも使う必須スキルを紹介していきます。

⑤データベース

続いて、サービス開発には切っても切れないデータベース(以降 DB)です。

後ほど紹介するWebアプリケーションフレームワーク『Django』を使えば、
MySQLなどのDB言語が分からなくても大丈夫です。

とは言っても、DBが内部でどういった処理を行っているのかについて
具体的なイメージを理解しておかないとサービス開発の段階で確実に苦労します。

なので、最低限の要素に絞って効率よく勉強して行きましょう。

⑥開発環境(仮想環境)の構築

ここまでクリアすればサービス開発をスタートする基礎が身に付いています。
しかし焦らず、仮想環境の概念・使用方法を理解しておくと後々で役に立ちます。

詳細は参考記事で確認いただければと思うのですが、
プログラミング環境がごちゃごちゃするのを防ぐことが目的です。

⑦Webアプリ開発の手順を理解

いよいよサービス開発に入っていきましょう。
なお、正式にはWebアプリケーション開発と呼ぶので覚えておきましょう。
※以下、「Webアプリ開発」と呼びます。

Webアプリ開発では『Webアプリケーション フレームワーク』を使用する事がほとんどです。

Webアプリフレームワークについて大まかに説明すると、自分で0からプログラミングしなくても
『開発に必要なパーツの大部分が完成した状態』で用意されている便利な開発補助ツールだと思って大丈夫です。

とはいえ、『最後の表面的な部分』をコーディングするだけでも相当に骨が折れます。
ここが1番難しいので頑張って進めて行きましょう。

Pythonで有名なWebアプリフレームワークは2種類あります。

勉強方法の好みに左右される部分もありますが、
せっかくFlaskで作ったのにDjangoで作り直しになるケースもあるので
最初からDjangoにチャレンジするのをおススメしています。

なお、Djangoであれば私がオリジナルで書いたQiita記事があるので
最短で必要な要素が習得できる様に整理してあります。

  • DjangoとFlaskの違い
    • Django
      • 最初に覚える事が多い。入門としては難しめ
      • オプション機能が豊富で、いったん覚えるともう手放せない
    • Flask
      • 覚える事が少なく、比較的楽に開発できる
      • オプションが少ないので、本格的な開発では逆に苦労する
      • 実務ではDjangoを求められることが多い
  • Python(Django)でシステム開発できる人材になれる記事_入門編
    • Webアプリ開発の全体像を理解する
    • 実際にWebアプリをコーディングする

⑧要件定義~システム設計

続いて、意外と見落とされがちな『要件定義~システム設計』です。

どれだけプログラミングが出来るようになっても、
『何を作ったら良いのか?』を決められないと何もスタートできません。

過去に書いた記事を紹介するので、
『アイディアから設計図を描くプロセス』をしっかり習得しておきましょう。

⑨ソースコード管理(GitHub)

ここまで勉強すると、様々なソースコードが溜まってきます。
どれだけ几帳面な人でも管理するのが面倒になってくる時期です。

「あのプログラムどこに保存したかな?」
「上書き保存してしまった。。以前の状態に戻したい。」
「他の人にプログラムを共有するのが面倒(Zip化してメール添付など)」

こんな悩みを解決するツールがGitHubです。
実務でも使うので必ず習得しておきましょう。

⑩サービス公開

最後に、開発したサービスを公開しましょう。
サービスを公開するための準備(サーバー準備)は大きく分けて5種類あります。

本記事では「⑤:クラウドサーバー」について具体的な手順を紹介します。
※金融業界を除いて、実務では⑤が好まれるためです。

また、クラウドサーバーを利用するには
Linuxコマンドを使いこなす必要があるので合わせて習得しておきましょう。

さいごに

自分ひとりでサービスを作るには多岐にわたるスキルが必要です。
それなりに苦労しますが、多くの方々が実際に乗り越えていく様子を見てきました。

最近ではプログラミングを楽にする環境が整ってきたこともあり、
「ここだけ得意です」といった部分的なスキルでは良い仕事が獲得できない傾向が強まっています。

いったん乗り越えてしまえば『他の誰にも負けない強力なスキル』となるので、
この記事を読んだ皆さんが3ヵ月を乗り切れるよう、応援しております。

最後まで諦めず、頑張って良いサービスを創り上げて下さい。

【P.S.】
最後になりますが、Twitter でもプログラミングに関する情報を発信しています。
もし良ければ Twitterアカウント「Saku731」 もフォロー頂けると嬉しいです。

Saku731
大手の広告代理店でAI開発、システム開発をやってます。 Python関連であれば何でも聞いてください。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした