Pythonを勉強するなら、目的に応じた入門書が必要!
<本サイトで申込みの多いAI系プログラミングスクール>
No.1 Aidemy *AI、機械学習特化のオンラインスクール
No.2 AIジョブカレ *講師の質がバツグン!AIエンジニアの転職支援まで実施!
No.3 Data Mix *データサイエンティストを目指すならここ!英語の講座もあり!
最近大流行しているプログラミング言語Python。
私もWebマーケターという立場ながら、業務効率化とか自分の使うツールを作りたいという目的で、スクールに通ったこともあります。
今回は、プログラミングをこれから勉強したい、という人がPythonを学ぶにあたって、どんな目的の人がどういう本を選べばいいのか、というのをご紹介します。結構本たくさん増えてきて、わかりにくいですよね?
参考になれば幸いです。
Pythonを学ぶ代表的な5つの目的
この記事に来る人は、皆さんPythonに興味がある、という人だと思うので、その前提で紹介していきます。
Web開発するならPHPのLaravelが最近はやってる、とか、Ruby on Railsが主流だとか、そういう話もありますが、その辺は華麗にスルーします笑
・教養としてPythonを学びたい
・業務効率化のためにPythonを使いたい
・機械学習、AI系のシステムを作りたい
・アルゴリズム・科学計算・統計処理などを使いたい
・Webアプリを作りたい
Lv.0 教養としてPythonを学びたい
プログラミングをせっかくやるなら、流行っているPythonをやってみたい、というのがこの層です。
プログラミングを初めて学ぶ、という人は、本をじっくり読むよりも、手を動かして「プログラミング」を体験するのが一番だと思います。
そういう意味で、一番良いのは「Progate(プロゲート)」です。
Progate(プロゲート)は、ブラウザ上でプログラミングを始められる、入門者向けのサービスです。Ruby、Javascript、PHP、HTML&CSSなど色々なプログラミング言語を学ぶことができます。なので、Pythonを覚えて、ちょっと他のこともやりたい、みたいな人にとっては一番良いサービスです。
しかも、気軽な気持ちで始めると、学びきれるか?というモチベーションの不安があります。プロゲートは、「にんじゃわんこ」と「ひつじ仙人」といった可愛らしいキャラクターが応援してくれたり、問題を解いていくとレベルが上っていったりと、楽しく学べる仕掛けが満載です。
【プログラミング学習のProgate】Pythonのレベルが6にUPしました! https://t.co/s3VTsG0Slb #Progate
— タク@パラレルワーカー (@kubotaku7) September 12, 2019
ライトな気持ちで始めるには、プロゲートほどマッチしたサービスはないと思います。
ただ、軽く機械学習も触れたいな、という人もいるかと思います。そういう人はAidemy(アイデミー)もおすすめです。アイデミーはプロゲートと比べると硬派なサービスです。ただ、Pythonの基礎も機械学習の基礎も無料で学べます。
プロゲートからはじめて、Pythonになれたら、機械学習やAIをアイデミーで勉強する、というのもいいでしょう。
本で行くと、いちばんやさしいPythonの教本は、基礎から簡単なチャットボット作りまでを、手を動かしながら学べるのでおすすめです。
Lv.1 業務効率化のためにPythonを使いたい
業務効率化のためにPythonを学びたい、という目的意識のはっきりした方は、「退屈なことはPythonにやらせよう」一択です。
「退屈なことはPythonにやらせよう」は、Pythonの基礎、PDF・Word・CSV・Excelなどのファイルの扱い方などを具体的なサンプルコードを元に紹介している本です。
例えば、「PDFからテキストを抽出する」「Wordからテキストを読み込む」といったテキスト抽出の方法、あるいは「Excelの行の高さ、列の幅を調整する」方法など、かなり具体的なプロセスを全18章562ページに渡って解説しています。
スクレイピングや画像処理などもこの本で学べるので、業務効率化で興味があるパートを辞書的に引いて使っていくのに使える本です。
Lv.2 機械学習、AI系のシステムを作りたい
AI系のシステム、というのは、実際は機械学習と既存のアルゴリズムの組み合わせで実現しています。
この辺りからは、本格的に開発系の知識を身に着けたい人が多いと思いますので、MITで使われているPythonの教科書を一通り読んでみるといいと思います。
コンピュータサイエンスの基礎と、機械学習・アルゴリズムの基礎まで学べる内容になっています。
その上で、まずは動くものを作るのがモチベーションを維持する上でも重要かと思いますので、以下の2つのどちらかをやってみるのがいいでしょう。
1つ目は「PythonによるAI・機械学習・深層学習アプリの作り方」です。
本書は機械学習を使った、教師あり学習・教師なし学習、OpenCVを含めた画像処理、自然言語処理、TensorFlowを使ったディープラーニング(深層学習)、機械学習を組み込んだ自動化アプリを6章構成で紹介しています。興味のあるところからやってみて、慣れたら他のジャンルにも挑戦してみる、みたいな使い方が可能です。
実際に動くものが手元にあると、その原理はどうなっているのか?とか、さらに効果的に使う方法・チューニング方法はないのか?など、発展的なこともしやすいので、おすすめです。
あるいは、「ゼロから作るディープラーニング」もおすすめです。
本書は、機械学習系のライブラリに頼らずに、機械学習を実装してみよう、という本です。一見ハードルが高そうですが、内容はステップバイステップになっているので、わかりやすいです。
サンプルコードがしっかり書かれているので、内容が理解できなくても、まずは書いてみて、わからないパートがどういう役割を果たしているのか、1つ1つ確認していく、みたいな使い方ができます。
これを1冊通したときには、かなりレベルが上っている、という本です。
ちなみに、自然言語処理に興味がある人は、ゼロから作るディープラーニング2-自然言語処理編まで手を伸ばしてみると、かなり理解が深まります。
Lv.3 アルゴリズム・科学計算・統計処理などを使いたい
Pythonは科学計算や統計処理のライブラリが整っています。そのため、それらの内容を使いたい、という人も多いでしょう。また、CやC++、Javaなどで学ばれるアルゴリズムをPythonでも、という人もいるかと思います。
どちらのパターンでも、サンプルコードが比較的揃っていて、わかりやすいのがMIT教科書のPython言語によるプログラミングイントロダクションです。
CやC++、Javaなどで学ばれるアルゴリズムをPythonでも、という人は、「Pythonで体験してわかるアルゴリズムとデータ構造」もおすすめです。
このあたりになってくると、全て本の中にサンプルコードが含まれているものも少なくなってきます。そのため、基礎的な内容が抑えられているという前提がついてきます。
そのため、解説がちょっと難しいと感じる人は、前述のMIT教科書に立ち返ってみる、あるいは、検索してみると、他の人の解説が見られると思います。
その辺りが難しい、あるいは、素早く学びたい、という人はプログラミングスクールで講師やメンターに質問できる環境、あるいは添削してもらえる環境を整える、というのも一つの手段です。
Lv.4 Webアプリを作りたい
Pythonで機械学習系ライブラリとDjangoなどWeb系フレームワークを使うには、なかなか日本語で書かれている良い本はありません。
「動かして学ぶDjango入門」はDjangoでWebアプリを動かしながら学べる数少ない本です。今後増えていくかもしれませんが・・・
あるいは無料サイトではありませんが、本1冊分位の価格で購入できる動画講座、Udemyのプログラミング初心者でも安心、Python/Django入門講座もおすすめの1つです。
この講座は、Djangoを使った日記、管理画面つきの社員管理システム、動画投稿サイト、手書き数字の判別アプリなどを実際に作りながら学んでいく構成になっています。
Pythonの入門からスタートするので、プログラミング初心者の方で、Djangoを使ったWebアプリ開発をしたいと考えている方にはかなりおすすめです。