Python を最短で学ぶ為に有効なリンク集。独断と偏見、というか俺がやっている方法です。

2週間ちょっと前から Python のお勉強をしている。思っていた印象よりも全然良くて、とても大好きになりました。
今もまだまだお勉強中。俺がやっている or やろうとしている方法のメモ。

買った本

Python ポケットリファレンス (Pocket Reference)

Python ポケットリファレンス (Pocket Reference)

網羅的。コードの量と説明の分量も好み。回りくどくなくていい。著者が書いている通り、「実際に現場で使われる」事を志しているからか、、すばらしい!

エキスパートPythonプログラミング

エキスパートPythonプログラミング

買った。プロが読みそうなイメージで。良さそうだし。でもまだチラ読み。この本に取り組むのはまだ先だな。

10 Free Python Programming Books

http://www.coderholic.com/free-python-programming-books/

無料本。一冊やるなら一つ目の Dive into Python がいいらしい。

Python Quick Reference Card

http://perso.limsi.fr/pointal/python:pqrc?s=quick&s=reference&s[]=card

2.4 用だが、めっちゃ網羅している。これ系では一番いいと思う。

他のスクリプト言語との比較。

http://hyperpolyglot.org/scripting
言語の Syntax 比較表と、そのコンセプトの詳細な説明。
PHP とか Perl とか Ruby とかの経験者は Python のニュアンスをつかむのに有用かも。

その他のCheatSheet ※ ↑で紹介したやつは載ってない。なぜか。。

http://devcheatsheet.com/tag/python/

Python Koans(穴埋め問題に値を埋めていく事でテストケースを成功させる。)

https://github.com/gregmalcolm/python_koans/wiki/

全部で 35 lesson(テーマ)で 287 koan(一つ一つの問題)。
これを終えれば一通りの言語仕様を学べる。Python 2.7 or 3.0 対応。僕は 2.7 系で一応全部やりました。
※ 他の言語で、JavaScript-Koans や ruby-koans(これが元祖らしい),rspec_koans とかもある。

後半はリフレクションとか,デコレータ、@property とか、十分 Advaced な内容も入ってくる。
テストケースを満たす、メソッドを実装せよ、なんて問題も出てくる。
module や package とその名前空間。__all__ で export する名前を選択可能だとかってことが、実際に経験として身につくところがすばらしい。
一度通しでやったとはいえ、一つ一つは実際に問題解決に適用するといったリアルな経験をしないとなかなか身につかない。
でも一度やったっていうおぼろげな記憶は残るし、「 そういえば python koans で確かやったな。。。」と思い出せればサンプルコード集としても使える。
lesson は class ,koan(=問題) は method として実装されており、テーマ毎にまとまっていて、ファイル名からも調べやすい。

ローカルの koans フォルダのファイル一覧。これが koan の目次みたいなもん。

|+a_normal_folder/
|+a_package_folder/
|-__init__.py
|-about_asserts.py
|-about_attribute_access.py
|-about_class_attributes.py
|-about_classes.py
|-about_control_statements.py
|-about_decorating_with_classes.py
|-about_decorating_with_functions.py
|-about_deleting_objects.py
|-about_dice_project.py
|-about_dictionaries.py
|-about_exceptions.py
|-about_extra_credit.py
|-about_generators.py
|-about_inheritance.py
|-about_iteration.py
|-about_lambdas.py
|-about_list_assignments.py
|-about_lists.py
|-about_method_bindings.py
|-about_methods.py
|-about_modules.py
|-about_monkey_patching.py
|-about_multiple_inheritance.py
|-about_new_style_classes.py
|-about_none.py
|-about_packages.py
|-about_proxy_object_project.py
|-about_scope.py
|-about_scoring_project.py
|-about_sets.py
|-about_strings.py
|-about_triangle_project.py
|-about_triangle_project2.py
|-about_true_and_false.py
|-about_tuples.py
|-about_with_statements.py
|-another_local_module.py
|-GREEDS_RULES.txt
|-jims.py
|-joes.py
|-local_module.py
|-local_module_with_all_defined.py
`-triangle.py

全部終わったところ。おまけ問題はやってない。

やってる最中はファイルを編集しては、テストケースを走らせる、という繰り返しなんだが、Vim → iTerm → Vim の切り替えで意識がそがれるので、Vim から iTerm 上で testcase を実行できるようにした。
やり方は自作の py-anything プラグイン経由で呼び出した。iTerm の操作は py-appscript を利用している。

https://github.com/t9md/vim-py-anything/blob/master/python/ac_source_cmd.py#L342