2013-01-01

全てのwebエンジニアPython勉強するべき2013年到来

 

あけおめ!今年は巳年。へび。へびと言えばPython。そう今年は全てのwebエンジニアPython勉強する最高の環境が整った年なのです。

 

既にPerlRubyを習得してるけど、それに加えてPython必要

必要です!必要だと思います。もはやPythonwebエンジニアにとって必修言語となりつつあると思いますLinuxの多くの箇所でシステム言語として用いられ、可読性の高さから多くの技術書籍のサンプルコードとして用いられ、科学技術系分野におけるエコシステムの充実っぷりはますます磨きがかかっており、様々なライブラリがどんどん出てくる現状を「Pythonからいか自分には関係無い」と遠巻きに眺めるのはもったいないです。

 

習得するのにどのくらい時間かかるの?

あなたが既に他の言語に慣れ親しんでいるなら、特にRubyなどに精通していれば「1週間」で基本的な読み書きは出来るようになるでしょう。そのくらいPythonは敷居の低い言語です。またweb上のチュートリアルドキュメントが大変に充実していますので(もちろん和訳済み!)費用0円で勉強開始できるお手軽言語でもあります

 

バージョン2系と3系のどちらをやればいい?

これは大変に悩ましい問題で、自信を持ってお薦めできるバージョンが無いのが残念な現状です。2系と3系は特に文字コード周りを中心に言語体系にそれなりの差があり、日本語を扱うエンジニアにとっては悩ましい問題です。結論としては「どちらも読み書きできる」ようにした上で「3系で書く」ですかね。2と3の違いを理解しておかないと必ずどこかで躓きます特にweb上の情報はまだほとんどが2系ですが、ぱっと見て2と3のどちらのバージョンで書かれた情報なのかを判断できないと多くのweb上の情報を利用できずにもったいないです。

 

お薦め和書は?

先述しましたが和訳済みのチュートリアルが充実しているのがPythonの特徴でもありますので、まずは目を通す事をお勧めします。

・2系ドキュメントTOP

http://docs.python.jp/2/

・3系ドキュメントTOP

http://docs.python.jp/3.3/

・公式ドキュメントでは無いがお薦め(少し進んだトピックが中心)

http://www.doughellmann.com/PyMOTW-ja/contents.html

ぜひ超充実したドキュメント群を覗いてみてください。「チュートリアル」を読めばだいたいの言語仕様がつかめるはずです。「ライブラリリファレンス」はあなたの最高の辞書となるでしょう。

その上で、やっぱり書籍勉強したいということでしたら以下の本がお薦めです。

プログラミング自体が初めての人向け

Pythonスタートブック(辻 真吾)

・他言語を既に知っている人向け

みんなのPython 第3版(柴田 淳) ・・・2版と3版で大きく内容が異なります 2版はPython2系、3版はPython3系を中心に解説

・進んだトピックを扱う中級者以上向け

エキスパートPythonプログラミング(Tarek Ziade/和書)

 

IDEで楽したい

pythonはインデント存在があるので無機能エディタで大規模なコードを書くのは案外骨が折れます。贅沢系IDEの代表格はPyCharm(有料$99)でMac,Windows,Linuxの3プラットフォーム対応しており、一つのアカウントでいくつものマシンインストールできます(同時に使う事はできない)。30日間の無料トライアルもありますトライアル期間が過ぎても一回あたり(たしか)5分ぐらいなら継続して使えます無料IDEだとEclipseプラグインNetbeansあたりでしょうか。Netbeansは公式開発は既に終了しておりあまり安定していません。

 

色んなライブラリなど

ここからは雑多に箇条書き風にお薦めしていきますね。

webフレームワーク

大規模な開発ならDjangoが第一候補。歴史が長いフルスタックフレームワークですがまだ正式版がpython3系に対応していない。最近勢いがあるPyramidは3系に対応済み。各webフレームワークについては各開発者同士が「筋が悪い」「Pythonとしておかしい」「トレンドから3年は遅れてる」などとガチンコで思いの丈をぶつけ合っている以下の記事も参考にしてください。http://www.atmarkit.co.jp/news/201209/24/pycon.html

とりあえず最低でもDjangoPyramidは両方使ってみてから自分にあった方を選択するといいと思います

・Numpy/Scipy

科学技術系の人が好んでpythonを使う理由の一つがNumpy。数値行列計算を内部でCを使って計算するために非常に高速。インターフェイスは書きやすpythonだけども実行速度はCネイティブ並みというとてもありがたいライブラリです。現在Pythonの盛り上がりに間違いなく大きく影響しているライブラリ

・nltk

言語処理で使われるライブラリ英語ベースとなってますが工夫すれば日本語でも全然使えます。参考文献 http://nltk.googlecode.com/svn/trunk/doc/book-jp/ch12.html

・multiprocessing

並列処理ライブラリCPUマルチコアを全て使い切って無駄無く高速に処理を行いたい時に重宝します。個人的に大好きなライブラリ。頑張ればちょっとした分散並列システムも作れます。このライブラリのお陰で自宅にある10台*(擬似)8コアでお手軽python並列処理クラスタを30分ぐらいで作る事ができました。

以上です

楽しいですよpythonもっと日本pythonエンジニアが増えることを祈ります

巳年元旦

トラックバック - http://anond.hatelabo.jp/20130101082333

記事への反応(ブックマークコメント)