Python、なぜかプログラミング初心者にやたら人気だ。
ただ、入門書読んで文法とかリスト・辞書型操作とか分かって簡単なスクリプトは書けるようになったけど、で次どうする?ってなること多いのではないかと思う。
その次のステップに上がるための有用な参考書について書いていく。
目次
Pythonの言語仕様・機能をさらに深く理解したい
ライブラリなどではなく、Pythonそのものの言語仕様・機能をもっと理解したいならエキスパートPythonプログラミングをおすすめする。
以下のようなPythonならではの機能や他言語で備わっている機能、テストコード、実装のベストプラクティスなどが記載されている。リファレンスとしてすばらしい。
- 演算子オーバーロード(__eq__、__getitem__など)
- デコレータ
- ジェネレータ、イテレータ、withステートメント対応クラスなど
- C/C++拡張
- 並行処理(マルチスレッド・マルチプロセシング)
- いくつかのデザインパターンのPython実装例
PythonでWebアプリを作れるようになりたい(Django)
今回はDjangoに絞って書いていく。
Djangoの参考書は現場で使えるDjangoの教科書<<基礎編>>をおすすめする。
Djangoの参考書は超初心者向けのものが多いが、この本はModel/Views/TemplateからForm/settingsまで、各レイヤー・エコシステムの仕組みについてもしっかり書いてある。安いのも魅力的だ。
だいたいのレベル低めの対象者をターゲットにしている参考書は、単純にコード書いて動かすだけで仕組みについてそこまでしっかり書かれていない。
ただ、他Webフレームワーク経験がある私はすごく分かりやすく仕組みについてもしっかり書いてあるからよかったと感じただけで、もしかしたら他フレームワーク経験がない人には少し難しいかもしれないので、その場合は他のDjango入門書を先に読むことをおすすめする。
(機会があったら別記事でまとめます)AI/機械学習周り
AI/機械学習周りの本の紹介はそれだけで1記事できるような内容なのでいずれ別記事でまとめます。
まとめ
Pythonは簡単とよく言われるが、ちゃんとやってみると以下のように多機能なことに驚く。
- 演算子オーバーロード
- with構文
- イテレータ、ジェネレータ、yieldなど遅延評価
- デコレータを指定するだけで、非同期関数やシングルトンを実現できる
しっかり学べば手軽にかなり自在に操れる言語でめちゃくちゃ面白い。
NumpyやTensorflowなどのライブラリを使ってAI/機械学習/科学計算に使えることは有名だが、WebアプリもDjangoやFlaskなど本格的に開発ができる。唯一弱いのはデスクトップアプリだろうか。