- 更新日: 2019年02月15日
- 公開日: 2019年02月10日
「Python」をマスターしたい初心者必見!全てがわかる総合カリキュラム
プログラマーだけでなく一般のビジネスマンも注目しているプログラミング言語の Python。
Pythonを取り巻く市況をはじめ、言語としての特徴など非プログラマ向けに分かりやすく情報をまとめてみました。
Python学習すべきかどうかの判断材料としてご活用下さい。
Python情報
Pythonはどういった言語なのか
画像引用: python.org
まず Python そのものについてご紹介させて頂きます。Pythonは、オランダの数学者グイドさんによって設計・開発され、1991年にリリースされた可読性重視型のプログラミング言語。
Java や PHP に比べると、まるで本を読んでいるかのような感覚でプログラムを追っていける点が特徴的。そのほかにもオブジェクト指向をはじめ、自動メモリ管理システムなどを備え、 Java や C に比べるとシンプルな構文。
Python自体は、 Python Software Foundation という非営利団体によって運営され、運営資産は 3.3億円ほど。これは Ruby の運営財団に比べると大きく、バージョン更新も定期的で組織として上手く機能していると考えられます。
Pythonはなにを作るのに適した言語なのか
上記動画は、音声アシスタントの Jarvis を使っている例。まるで SF映画のようなことが Pythonで簡単に体験できます。
プログラミング言語によってできることは異なり、 Pythonはプログラミング言語の中でもいろいろできる言語に分類されます。中でも人工知能や機械学習の開発、利用には適している言語でしょう。
人工知能や機械学習の開発・利用というと Python の他に、 Java や C++、 JavaScript などが該当しますが、Pythonはその中でも学習難易度が比較的やさしく、開発を手伝ってくれるソフト(ライブラリ)も豊富。そのためまったくのプログラミング初心者でも Pyhton を使えば、ディープラーニングを理解したり、機械学習を試したりすることが可能となっています。
私も実際 Python知識ゼロで著書 「ゼロから作る Deep Learning(オライリー)」 を読み、人工知能を自分で操作し、人工知能の基礎知識を習得することができました。
人工知能以外には、事務処理の効率化や IoT などが挙げられるでしょう。
実際に作られているサービスはどんなものがあるか
上記動画は、Tensorflowを使ったきゅうりの自動選別機。「AI cucumber sorting machine」 で検索すると他にも試作事例がでてきます。
各ジャンル毎に Python で作られているサービスをご紹介。Pythonの可能性を感じてください。
Webサービス(大規模)
- YouTube
- Spotify
Webサービス(小中規模)
人工知能
- きゅうりの自動仕分け
- 自動運転
- 音声アシスト
- チャットボット
- 人物判断(画像認識)
- 音声の文字起こし
- ゲーム
- 自動売買*
IoT
事務処理
整理券の一発作成事例
上記動画のコード: automake.py、 number.csv
- 画像の一括一瞬編集
- 整理券の一発作成
- スピーディーな情報収集
データの繰り返し入力や画像データのサイズ変更といった単純作業の多くは、自動処理にお任せできるかもしれません。著書「退屈なことはPythonにまかせよう*」では多くの事務処理事例が紹介されています。
難易度や習得するのにかかる時間はどれくらいなのか
難易度
Javaに比べるとコード量が比較的少なめで、登場してくるコードやキーワードも PHP や JavaScript に比べると読みやすく、イメージしやすい文言です。 参考書に沿って学習を進めれば、概ね基礎は習得できるでしょう。 ただし、オブジェクト指向が関係してくる class や def あたりになると、頭の中でファイルを 3つぐらい並行して考えないといけないので、集中力とモチベーションが必要になってきます。
時間
わたしの経験上、変数や関数、配列やオブジェクト指向までの基礎で 30 〜 50時間ぐらいかかると思います。1日 2時間とした場合、 2週間ぐらいで基礎は終わるのではないでしょうか?もちろん学習を進める中で、「このケースはどうだろう」と考察を絡めていくと理解が深まる分、時間もかかります。ちなみにオンライン学習で有名な Progate の場合、 Pythonの基礎学習は約 9時間のチュートリアル、すごいですね。
Pythonの学習方法
レベルに合わせた書籍
入門編
みんなの Pythonは、文字の大きさ・解説のトーン・図解・レイアウト等読んでいて疲れない、プログラミング初心者向けの参考書です。プログライング学習がはじめてで、Pythonもはじめてという方はマストアイテムと思いますよ。ただし、サンプルコードは控えめなので、オライリーの入門書と合わせて持つことをオススメします。
発売: 2016年12月 価格: 2,916円
- 入門 Python 3(オライリー本)
オライリー本というと 「専門的で難しそう」 と思われる方も多いと思いますが、こちらの 「入門 Pyhton3」 については読みやすく、詳しい説明と充実のサンプルコードで、プログラミング初心者の方でも進めやすい文章構成と思います。個人的には一番活用している学習書になりますね。
発売: 2015年12月 価格: 3,996円
こちらは日経新聞でもよく広告をみる本で、 Amazon.co.jp ではベストセラー。独学で Pythonを習得したコーリーさんの学習メソッドが注入されているので、「分かりやすい」と好評価。手持ちの本と内容が重複するのでは私は読んでいませんが、これから Python本を買おうと考えている方は見逃せない 1冊でしょう。
発売: 2018年2月 価格: 2,376円
基礎学習後に読みたい参考書
こちらは Pythonでできる具体的な事例を多数紹介している人気の Python本。実際に手を動かしてプログラムを動かし、Pythonの威力を痛感することができます。最初の方に少し Pythonの基礎文法が書かれていますが、入門書にはないサンプルコードの量は大変勉強になるでしょう。本で登場するコードは GitHub でも公開されていますので、とりあえず試したい方はコードをダウンロードして、ササッとテストすることが可能。
発売: 2018年2月 価格: 2,376円
こちらは開発現場で実際に Python を使っている エンジニアがリリースした本で、多くの Python学習者から賞賛を得ています。入門書にはない、「変数名の付け方」や「パッケージの管理方法」「バージョンの管理方法」など実際に自分でプログラムを作成する段階で悩みそうなことをレッスン。私も欲しい一冊です。
発売: 2018年2月 価格: 6,160円!!!
実践編
Python知識ゼロでもとりあえず参考書通りに進めればディープラーニングできる参考書ですが、圧倒的に Pyhtonの基礎知識を持っていた方が理解が深まります。基礎知識がなかった当初、 [] や def が何を意味するのかさっぱりわからないまま、プログラムを実行していた覚えがあります。本著でも基礎文法は少し紹介されていますが、それは確認程度の内容で、基礎は別途入門書で学ぶことをオススメしますね。
発売: 2016年9月 価格: 3,672円
Pythonを学習していて 「何かプロダクトをリリースしたいな」 と考えたとき、 Webサービスを思いつく方も多いでしょう。こちらは Python製 Webフレームワークの Django について詳しく書かれた参考書で、 Django を使おうと決めたらとりあえず一読することをオススメします。Django について体系的にかかれ、イメージしにくい MVT(MVC) について一歩近づくことができるでしょう。少なくとも私は一歩近づけました。。。
発売: 2018年 価格: 基礎編 1,728円、 実践編 1,600円(Kindle Only)
学習サイトや動画を利用
独学 Python エンジニア必見の学習コンテンツをいくつかご紹介します。
無料編
残念ながら日本語の分かりやすいチュートリアルサイトは見当たりませんでした。英語の Python基礎チュートリアルサイトをご紹介します。
オンライン学習でお馴染み W3School。短編区切りで飽きない構成が特徴的。
YouTubeでPythonの基礎を学習。4時間以上に及ぶ動画ですが、目次があって便利。またコードの実行環境は、 PyCharm なので PyCharm の使い方を知りたい方も参考になるでしょう。
有料編
動画チュートリアル定番のドットインストールでは、31このコンテンツで Pythonレッスンを構成し、基本的な文法からオブジェクト指向までを学習可能。動画に使用されているPCは Macで、月額 980円必要。
実践型チュートリアルサイトで有名な Progate では、 5つのコースで Pythonを学習。ブラウザ上でテキストを見て、コードを打って Pyhtonを学びますので、パソコンに Python環境がなくても大丈夫。月額 980円から利用可能。
こちらは初級から上級まで Python学習を楽しめる Python専門の学習サイト。基本文法からオブジェクト指向、Webスクレイピングに Webフレームワーク、それから機械学習にデータ分析、一通りの Pythonを堪能できそうです。ただし料金は少し高めで月額 2,980円〜となっています。
Pythonの開発環境について
画像引用:PaizaCloud
Pythonは、他のプログラミング言語と違っていくつかの開発環境のパターンがあります。
スタンダード
こちらはパソコンに Python のみをインストールする方法。 Pyhton公式サイトからダウンロード&インストールする方法がこれにあたります。インストールに必要なデータサイズは、 90MBほどです。
人工知能やデータ分析を学ぶためのPython環境
Pythonで人工知能のプログラムを組む際は、複雑な数理処理やグラフ処理を行うソフト(ライブラリ)が必要になります。Pythonを含め、それらのソフト(ライブラリ)をまとめてインストールできるのが Anaconda というソフト。インストールサイズが 4GB と大きい点に注意する必要があります。
<< Anacondaでできること >>
- Pythonの実行環境(IDLE)
- Jupyter Notebook
- 開発環境(Spyder)
- データ分析(Orange3)
- R言語(rstudio)
簡易的な開発環境
ちょっと Pythonプログラムを試したい、そんな時はオンラインに環境を構築するのも一つの手でしょう。
無料で VPS サーバーさながらの作業ができる PaizaCloud。サーバーOS の Uuntu18 にはデフォルトで Python3 が入っていますし、 Djangoのデフォルトセットも可能。とりあえずすぐに Pythonを実行できますね。ただし、 仮想環境の構築(virtualenv)は許可されていませんでした。
こちらもPaizaCloudのようなオンライン型 IDE。Paizaに比べるとフリープランでも容量が 2GBと大きく、 仮想環境(virtualenv)の構築も可能。英語と 1日 1時間という利用制限以外はなかなか使いやすいと思います。
その他にもオンラインで Jupyter Notebook を無料利用できる Microsoft Azure Notebooks や Try Jupyter 、Pythonコードを実行する Repl.it などがあります。
Pythonをはじめる前に知っておきたい開発環境
これは私自身の経験から皆様にお知らせするアドバイスです。Python学習をはじめたころ、サンプルプロジェクトを実行するために 「このライブラリがない、あのライブラがない」 といって pip install を連発していました。その結果、 Python学習半年で pip の数は 323、ファイル容量 2GB、チョットすごいですよね。しかし、このライブラリ群、実はもういらないものもあるでしょうし、ライブラリの管理もできなくなっています。こうした問題を解決する方法が、仮想環境 virtualenv です。プロジェクト毎に仮想環境を構築し、必要なライブラリだけ pip install する。こうすることでそのプロジェクトにどんなライブラリが必要ということが簡単に把握できます。なるべく早い段階で virtualenv の使い方を習得しておくことをオススメしますね。
pip install virtualenv
virtualenv env
尚、これらの Python環境の構築方法については 『【Python入門】Pythonのインストール方法を徹底解説 』 をご参照下さい。
\AIエンジニアに必要なスキルが身に付く/
基礎的な文法・概念の紹介
オブジェクト指向について
Pythonは、 Java や PHP、 Ruby と同じようなオブジェクト指向を取り入れたプログラムモデルです。大規模開発や既存プログラムのスケールアップに適しており、最初は小さなプロジェクトでも必要に応じて拡張していくことが可能。
実際のプログラムについては、 import や class ○○ といったキーワードがコードに登場してきたら、オブジェクト指向の登場。自分でオブジェクト指向のプログラムを作成する場合は、機能の設計モデルも必要になってくるでしょう。オブジェクト指向については、特に Django など Webフレームワークを使用する際、不可欠の知識になってきます。
絶対に押さえておきたい基本的な文法について
基本的な Pythonプログラムを例にとって、Pyhthoの文法をご紹介します。
Hello World
print('Hello World')
Pythonで文字出力するときは、 print() のカッコの中に ' もしくは " を用意して、その中に文字を入力。ちなみに print() は、表示して下さいという指示の関数の一種になります。
繰り返し処理
for x in range(6):
print(x)
繰り返し処理は、 for文 と while文があり、上記は基本的な for文の例。ここでのポイントは 2行目の print()文。 print()の前に空白がありますが、Pythonの場合この空白を忘れるとエラーになります。つまり空白もプログラムの一つになるんですね。HTML や CSS ではあまり気にしなかった 空白 ですが、Pythonの場合は重要な構文の一つになります。ちなみにこのような Pythonの空白は、 インデント(indent) と呼ばれますね。
関数
def kamen(add):
print('仮面ライダー' + add)
kamen('ジオウ')
kamen('ビルド')
kamen('エグゼイド')
特定のプログラム処理を何回も使う時、いつも同じコードを書くのは面倒ですよね。そんな問題を解決してくれる機能に 関数 があります。例えば仮面ライダーシリーズを表示したい時、いつも print('仮面ライダー○○') と書くのは面倒ですよね。 決まった処理の print() と 定例文:仮面ライダー を関数化すれば入力の手間を省けますし、コードもスッキリします。今回は、 kamen という関数を用意してみました。
ちなみにこの関数は、 Python以外の PHP や Ruby、 Swift など多くの言語に登場してきますので覚えておきましょう。
Pythonを学んだあとに、どんな仕事ができるの?
Pythonを求人票の歓迎要件に入れている職種をご紹介します。
- 機械学習エンジニア
- データサイエンティスト
- システムエンジニア
- サーバーサイドエンジニア
- インフラエンジニア
- ネットワークエンジニア
- セキュリティエンジニア
- Webエンジニア
どれもかっこいい肩書ばかり。社会が欲しているスキルホルダーに Pythonエンジニアは当てはまりますね。
Pythonエンジニアの実際の求人例
データサイエンティスト 株式会社NTTデータの例
【職務内容】
社内のバックエンドデータを用いて、将来予測/予兆検知が可能なアナリティクス(機械学習、ディープラーニング、AI、統計分析、データマイニング等)の仕組みを構築し、経営課題や業務レベルの課題解決を実行。また、確立・運用した仕組みは、社内事例として事業部門に紹介しビジネスへの貢献も。
【職務の魅力】
下記のような経験を積むことができます。
・統計、AI、機械学習を活用した問題化の兆候検知や将来予測等のモデルの構築、検証
・経営幹部への施策提言
・データを管理する社内部門との調整
・各種コミュニティとの連携を通じた社外向けプレゼンス
【必要条件】
・機械学習、ディープラーニング、AI、統計分析、データマイニング等の内、いずれかの手法を用いてデータ分析した経験/1年以上
・RまたはPythonの知識
・DBの知識
・論理的思考力
・統計学の知識
【歓迎条件】
・ビッグデータの活用経験
・データ主導によるビジネス課題の解決経験
・BIツールによる分析結果の見える化
・コミュニケーション力
【雇用形態】正社員
【想定役職】主任
【想定年収】600万円〜800万円
data: jp.indeed.com
機械学習エンジニア 株式会社Gunosyの例
<< 仕事内容>>
機械学習・自然言語処理の技術を応用して、ニュースキュレーションアプリ「グノシー」、「ニュースパス」、「LUCRA」などの新機能開発やアルゴリズム改善、また広告配信サービスのアルゴリズム改善を担う。
<< 必須スキル・経験 >>
+ 実際のプロダクトやビジネス上の課題に対して機械学習・自然言語処理を応用した経験
+ Pythonによるプロトタイプの実装および性能評価経験
+ Django等のWebフレームワークを用いたWebサービス開発経験
+ SQLを用いた分析経験
+ Gunosy事業への共感
<< 歓迎スキル・経験 >>
+ Go言語でのサーバサイド開発経験
+ 数値に基づいてユーザのためのサービス改善をすることへの意欲
+ データ処理基盤の構築経験
<< 雇用形態 >>
正社員
<< 給与 >>
非公開
<< 勤務地 >>
東京都港区六本木6-10-1
<< 勤務時間 >>
9:30〜18:30(休憩:1時間)
<< 休日・休暇 >>
休日:土、日、祝日、年末年始 有給休暇:初年度10日付与 特別休暇:夏季休暇、慶弔休暇、産前産後休暇、育児休暇
<< 待遇・福利厚生 >>
賞与:年2回 昇給:年2回 手当:交通費支給(上限10万円) 社会保険:関東ITソフトウェア健康保険組合、厚生年金、雇用保険、労災保険、団体長期障害所得補償保険(GLTD) その他:慶弔見舞金制度、MVP表彰制度、ESOP
data: jp.indeed.com
Python入門者におすすめの記事
コードキャンプのPythonカリキュラムの特徴
https://www.lp.codecamp.jp/python
コードキャンプから提供している 『Pythonデータサイエンスコース』 では、 Pythonの基礎学習をはじめ、Pythonを使った文書の自動作成や画像処理を勉強。そしてデータサイエンスに必要なデータ収集の方法までを学びます。学習に使用する参考書には 「退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング」(オライリー) を使用。
Python入門者をはじめ、プログラミング未経験者の方でも CodeCampの先生によって早期の Pythonスキル習得に期待できます。
受講料: 148,000円(税込み)
入学金: 10,000円(税込み)
受講期間: 2か月間
レッスン回数: 20回
- この記事を書いた人
- オシママサラ