Pythonをゼロから勉強する方法とお勧めの参考書

今回はPythonを対象にした、初学者対象の勉強方法を紹介します。私自身は決して上級者ではありませんが、Pythonに興味を持っていてやってみたい、という人からよく質問されるので、少しだけまとめてみました。

最初は、とっても簡単な本を読もう!

www.amazon.co.jp
 最初のステップとしては、簡単な本をさらっと通してみることをおすすめします。私は、Pythonを勉強しはじめた一番最初にこの本を読みコツを掴みました。300ページ以上あるのですが、わかりやすいのでスラスラ進められます。初心者がプログラミングで躓きやすいポイントや、Python独特の考え方などは丁寧に解説されていますし、一方であまり細部に深入りしないところも入門書としてはポイントアップです。これ以外のPython本は読んだことがないので比較できませんが、入りとしては、なかなか良かったです。

目次

●第1章 プログラムを作ろう!●第2章 プログラムの材料と道具●第3章 データと型のすべて●第4章 データの入れ物●第5章 条件分岐と繰り返し●第6章 ファイルの読み書き●第7章 Pythonで画を描く●第8章 関数を作る●第9章 新しいデータ型を作る●第10章 本格的なプログラミング●付録●練習問題の解答●索引

次に、Codecademyで基礎を鍛えよう!

www.codecademy.com
 次にお勧めしたいのがCodecademyのオンラインコースです。先ほど紹介した入門書よりも少しだけ難易度が高いので、次のステップにちょうどいいと思います。英語のサイトですので指示はすべて英語になりますが、そんなに難しい文章は出てきません。Codecademyでは、ウェブブラウザーの中でプログラミングを勉強できる環境になっているのが大きな特徴です。
 良い点を強調すると、書籍を用いた学習より効率的、簡単ということです。書籍を用いて勉強する人もいると思いますが、Codecademyでは一つの画面で説明、エディタ、実行結果すべてが表示されているので、非常に効率的な気がします。またパソコン一台あればどこでもすぐに勉強を再開できるというのも良いですね。一つの課題を達成するごとにメダルのようなものが貰えるので、ささやかな達成感も得られます。
 二つ目の良い点は、書籍を用いた学習より理解が深まることです。書籍だと練習問題の答えが乗っていますが、Codecademyでは答えはありません。正解のプログラムを記入しないとクリアしたことになりませんので、しっかりと理解しながら進めていかなければなりません。これはプログラミングの上達にとって重要なことで、自分で考えながら(試行錯誤しながら)進めていくと、ただ本のプログラムを本から書き写していく場合と比べて理解度が高まります。色んなエラーと闘いながら上達できるという大変有り難いウェブサービスです。その代わり、脳に多少負荷がかかります。
 Codecademyに出てくる課題は、「果物屋さんの簡単な会計システムを作る」という具体的な練習タスクとなっていて、それを小さいパーツに分解して、一つ一つ実装していきます。他の言語も学んだことのないプログラミング初学者にとっては、非常に良い練習になると思います。
 注意点としては、課題の答えがわからないと、答えがありませんので、大変に時間を無駄にしてしまうことがあります。対策としては、Pythonの入門書などを手元に置いておき、わからないことはすぐ調べてみる、ググってみる、それでもダメならCodecademyのQAフォーラムを覗いてみる、という順番がおすすめです。難しい問題になるとQAフォーラムに回答をアップしている人が多いです。(1箇所、Codecademy側のバグが混じっていることがありましたが、QAフォーラムでバグを迂回する方法も紹介されていました。)
 また、分量が多いというのも指摘しておきます。Codecademyの中で、最も分量の多いコースです。他のコースだと数時間で終わるものも多いようです。サイトに乗っている目安として13時間かかると書いてありますが、私は20時間近くかかった気がします。Pythonの勉強と言うよりは、プログラミングの考え方を学ぶためのパズルのような問題も多いので、ちゃんとやると結構疲れちゃいます。そのため、やる気を維持しながらやり抜く工夫が必要になってきます。

最後に、DataCampでデータ解析の基礎を身につけよう!

www.datacamp.com
 Pythonを勉強する目的にも寄りますが、もしデータ解析のために勉強しているのであれば、こちらのサイトのオンラインコースを最後におすすめしておきます。
 DataCampとは2013年11月設立の2歳企業。社員は10名のベルギー企業。オフィスはボストンとベルギーの2箇所。今までDataCampのコースを受講した人は25万人超。Kaggle参加者が30万人超、Coursera Machine Learning(Ng先生)が100万人超と比較すると、結構頑張っています。(それぞれ層は異なるので単純な比較はできませんが、2歳ベンチャーとしてはすごい勢いです…)そしてCEO兼創業者のJonathan Cornelissenは、計量ファイナンスのPhDでHFT(High Frequency Trading)やR周りで色々とやっていたみたいです。Rをヘビーに使いこなしていくうちに、DataCampの創業へと繋がっていったのかもしれません。
 話が逸れてしまいましたがDataCampが提供しているコースの中で、Intro to Python for Data Scienceというのが今回のお勧めコースです。Codecademyは20時間近くかかり結構重たいですが、DataCampはデータ分析に特化していますので数時間の軽いコースになっています。プログラミングがそもそも初めて、という人であればCodecademyは丁寧でいいかもしれませんが、RやMatlabからPythonへ移行したい、という人であれば、Codecademyを飛ばしてDataCampで数時間やってコツをつかむのがいいかもしれません。コース内容は、Python Basics(30分)、Lists(40分)、Functions and Packages(40分)、Numpy(40分)という4章構成です。
 DataCampにはPythonのコースがもう一つあります。こちらは有料のコースですが、最初のbasic plots with matplotlibだけは無料です。簡単なヒストグラムやscatter plotを作る練習ができます。軸の名前、色などの細かい設定についても学びます。(20分ぐらいで終わります)
www.datacamp.com

終わりに

これで、入門編は終わりです。後は、みなさんがPythonでやりたかったことを始めましょう。その際にはもう少し応用寄りの本が必要になることもあれば、Python関連サイトを色々と徘徊することにもなると思います。ググりながらスキルアップすることも重要になると思います。