勉強方法

Pythonの勉強方法

こんにちは。Dr.レオです。
三次救急病院で外傷整形外科やってます。
現在臨床現場でPythonによるプログラミングをフル活用しています。

私自身が研究に用いるためにPythonを勉強し始めたのは10年前ですが、
そのあと後輩指導やアップデートのために何度か学びなおしています。

今回はPythonを勉強する方法についてまとめてみました。

文末に、

「私自身がいまからPythonを学習するならどういう教材で学んでいくか」

も記載してみました。

プログラミングは学習と実践を繰り返し行うことが重要

Pythonは広く使われているプログラミング言語です。かの有名なGoogleでも用いられています。
現在は様々な学習教材がありますが、最も重要なのは

実用しながら基本文法を学んでいくこと

です。
これは英会話などでも同じですが、文法のみの学習では活用方法がわかりません。

学習教材は主に次の3つがあります。

  1. 教科書
  2. オンライン教材
  3. 公式ドキュメント

ひとつずつ説明していきます。

1.教科書

基本的な1冊を選んですすめる。できれば「クラスの概念」まで学習するのが理想。

Pythonが広く普及するにしたがって、参考書も良書がいろいろ出版されています。
基本的には初心者向けの1冊をじっくり進めることが重要だと思います。

いくつか私が使ったものを紹介していきます。

① みんなのPython

「みんなのゴルフ」 というゲームソフトが流行っていたころからの教科書です。

私がPythonを始めるときに「みんパイ」という通称で紹介してもらいました。
10年以上昔からあります。

はじめの頃はこの本と、ネット上の情報のみでデータ解析をしていました。
当時は第2版でPython 2.7でしたが、いまはちゃんとPython3にも対応しています。

Python導入の手助けになる「anaconda」の導入の仕方をWindows, Mac両者向けに書いています。

巻末の方にはデータ分析で多用するNumpyなどにも書いてあります。

改定するたびに厚さを増してきていて、ちょっとぶ厚すぎるかな・・・、という印象もありますが、基礎から学んでいくには十分と言えます。

教科書

みんなのPython 第4版

Pythonの導入方法をWindows, Mac両方向けに説明。一通り基礎から説明し、巻末の方には数値計算ツール「Numpy」の説明もあります。
「まずどれか1冊を」というときにおすすめ。

② Pythonスタートブック

これも同様に初心者向けの本です。
みんなのPythonよりは薄いのでとっつきやすいかもです。

Windows向けの記載が多い印象はありますが、Macでもインストール方法が書いてあります。

教科書

Pythonスタートブック 増補改訂版

  みんなのPythonと同様、初心者がはじめの設定から行うのにも大丈夫。こちらの方がやや本が薄め。

2.オンライン教材

オンライン教材の強みは、
ホームページ上でコードを書き、Pythonを動かしてみることができる
点です。

実際Pythonを使おうとすると、
Python自体インストールしたり、解析するフォルダを指定する。
という手間があります。

オンライン教材ではこの手間を飛ばして、いきなりコードを入力してPythonを学べます。

多くのオンライン教材がはじめの部分を無料で提供しているので、
さわりだけやってみて、自分に合うか試してみるのもいいでしょう。

私自身体験したものでおすすめを上げておきます。

① Progate

こちらはスライドを読んで、演習をするというスタイルです。
教科書と同じじゃないの?
と思うかもしれませんが、演習ページは
こちらもホームページ上にプログラムを入力するスタイルで、
すぐにコードを記入してPythonを動かせます。

レベルは、初心者向けです。
データ解析に特化しているわけではないので、
統計ソフト、行列計算などは出てきません。

こちらで途中までやってみてDataCampに進むのもよいと思います。

ProgateはHTML, CSS, Javascriptの学習でも評価が高く、Python受講と並行してうけられます。
様々なプログラミング言語の導入として受講するのもありです。

Progateの素晴らしいところは、本質的な部分を行って全体構造を理解できるところです。
よくブログやSNSなどで

「Progateを修了した程度だと実践には役立たない」
なんて記述をみつけますが、

これだけ所要時間の短い凝縮された内容のテキストで
「短時間で本筋を学び、全体構造をとらえられること」
が本当にすごいと思います。

② DataCamp

Progateが
一般的なPythonの初歩を体験してみる
サイトであるのと比較し、

DataCampは

「データ解析に特化したPythonの学習サイト」

です。
講義動画とスライドで3−5分程度の講義を行ったあと、
3−5題くらいの演習をひたすら繰り返します。

医療データ解析などを勉強したいのであれば、ダントツでおすすめです。

かなり初期の時期からデータ解析に焦点をしぼって、

  • Numpy(行列処理)
  • Pandas(統計データ、表データ処理)
  • Matplotlib(グラフ計算)
  • BeautifulSoup(Webからデータ取得)

に関して講義をしてくれます。

ということです。

このDataCamp

「講義が英語です」(ただし字幕あり)

英語自体は非常に聞き取りやすく、演習の文法も平易です。

一度体験してみて、

「ダメだこりゃ・・・」

とおもったらやめるのでもいいでしょう。

外人講師は基本ノリノリなので、

「Happy Coding !!」

とかいって励ましてくれます。

意外と日本人の単調な授業より良いかもしれません。

 

Rなどの言語もありますが、「Data Scientist with Python Track」というコースから入るとよいと思います。


こんな感じのかっちりした作りのページです。
似た名前のサイトが多いので注意が必要です。

以下の外部リンク先で、メールアドレスとパスワードを決定し、
「Start Learning For Free」に進むと、体験授業が受けられます。

オンラインコース

データキャンプ Data Scientist with Python Track

データサイエンスに特化したPythonのオンラインコース。numpy, matplotlib, pandas, scikit-learnなど統計解析、データ解析の授業が豊富。
それぞれの単元につき始めのchapterは無料体験で受講できる。 Web上入力なので環境設定は不要。統計やデータ整理が多い医療従事者には特におすすめ。

英語のわかりやすさや練習問題のコード記載の雰囲気などがわかります。
もし有料コースに変更しても無料のときの進度も引き継がれるので、まずは無料で体験してみることをオススメします。

 

③ Udemy

個人的に好きなのが、酒井潤さんの講義です。
Pythonをある程度使ったことがある人でも、これはめちゃくちゃオススメです。

Pythonはある程度勉強すれば、自分の目的を達するためのプログラムを作成することができます。
しかし、独学で書き始めると、関数の羅列になったり、クラス定義の集合体になったりして、分かりづらくなってしまいます。

この講義では

「いかに万人にわかりやすいコードでPythonを書くか」

というPythonコードの記述ルールを教えてくれます。

途中のロボットアプリの作成まで頑張って受けると、
クラスの構造が学習でき、

なぜPythonが「オブジェクト指向」といわれるのか
がよくわかります。

ただ、この酒井さんの授業

かなりスピードがはやいです 

早すぎてついていけないという感じではなく、
気持ちの良い速さというのでしょうか。

初心者向けのプログラミング講座だと、かなりゆっくりはいっていくものが多いのですが、
このレクチャーは初期設定から基本文法まで、さっさとすすみます。
かといって漏れがないです。

初級の内容でも、中級者が見落としがちな目からウロコの内容もけっこう入っています。

自分である程度プログラムが書けるようになってからも、書き方に問題がないか、改善点がないか、定期的に授業動画を見直しています。

Udemyは有料ですが、一度購入すれば、それ以降の課金をしなくても何度も動画が見れるのがよいところです。

オンラインコース

現役シリコンバレーエンジニアが教えるPython3 入門 + 応用
アメリカのシリコンバレー流コードスタイル

Udemyの中で最も人気のPythonコース。初期設定、基本文法からフレームワーク、ネットワークといった応用まで。
基本文法やコードスタイルの授業は中級者でもあたらしい学びあり。

 

3.公式ドキュメント

Pythonや、pandas, numpy, matplotlibにはそれぞれdocumentationというページがあります。
これはいわば公式の説明書で、それぞれのツールについての関数などを説明しています。

初心者はわかりにくいですが、この説明書の記述方法がわかれば、初見の関数やツールを使えるようになります。
それぞれのライブラリには非常に多くのツールが用意されているので、全部覚えることは不可能です。
辞書代わりにDocumentationページを使いこなせることができれば、はじめて出くわす問題も解決していくことができるようになります。

参考までにDocumentationページはこんなもん、というのを載せておきます。

PythonのDocumentationページ

numpyのDocumentation

matplotlibのDocumentation

pandasのDocumentation

 

おまけ:私自身がいまからPythonを始めるとしたら

私は10年間、外傷整形外科の前線で働くことと、プログラミングを臨床に用いることを平行してやってきました。
当初はネットからの情報をもとにした独学の勉強だったため、プログラミングは関数の書きなぐりだったり、スクリプトが1000行を超えるものがいくつもできたりと、
いまから考えるとさんざんな形式のものが多々あります・・・・

 

今から考えると最も効率的なのは

① 一冊基本の教科書をやる

「みんなのPython」を手元においてコードを書きながら「クラス」の概念のところまでをやる。

②「DataCamp」でのレクチャーと演習

同時にオンライン教材で演習を数多くやっていく。
教科書だけではすこしインプット過多になります。
同時にアウトプットが多いオンライン教材をやるのがキモです。

ちなみにこのDataCampの「Data Scientist Python Track」というのは

東大理III卒医師からGoogleに入社したという天才のLillianさん
もブログで紹介されていますが、3ヶ月かかったということです。

練習量は十分すぎるほどで、内容もデータ解析に特化されています。
具体的には「Data Scientist Python track」をやってから「Python Programmer Track」をゴリゴリやるのがいいと思います。

ちなみにDataCampには
AI特化コースや医療画像特化コースもあります。


プログラミングによるデータ分析を学ぶ。 
「DataCampのデータサイエンティストコース」

③ 日常業務との並行

上の2つでPythonの基本を勉強し、並行して
以下のような日常業務をPythonをつかってどんどんやっていく

  • レポート課題でのデータ整理やグラフをPythonでやってみる
  • 研究論文の解析をPythonを使ってやってみる
  • ソフトで使っている生データを書き出して実際にPythonで計算してみる
とにかく実践あるのみってわけですね。
④ さらに発展へ

さらに時間に余裕があれば
「Progate」でHTML/CSSも学んで自分の勉強を発信していく

 

医学生とかで時間があれば、プログラミング開発企業とかのインターンで
現場のプログラミング開発に触れてみたりするのも楽しそうですね。

いまからプログラミング勉強できる若い人たちが羨ましい・・。

Pythonを使えるようにする anacondaのインストール を見る

Pythonを使えるようにする anacondaとpipを導入する1.Anacondaのインストール 医療関係者でPythonを使いたいならまずAnacondaを導入しましょう。 pytho...