優れた Python プログラマを見分ける10+1の質問に答えてみる

[python] 優れた Python プログラマを見分ける10+1の質問 - methaneのブログ
最近はPythonばかりなので答えてみるが、あまりにダメダメすぎる内容なのでもうちょっと勉強してみるかな。
自分で書いてる分にはIPythonでTry&Errorすればどうにかなるからあまり勉強してこなかったのが裏目に出た形。

一般

バージョン管理をしているか

基本的にMercurialで管理

テストを書いているか

書いたことはあるけど、最近は面倒で書いてないな。

1つ以上のオープンソースプロジェクトのコミッタであるか

自分主催も含めるなら片手ぐらいは

Python言語について

list, tuple, dict, deque, heapq, bisect がどういう場面に適しているか説明しなさい

不変の場合はタプル、順番が欲しいならリスト、値と値のマップなら辞書
他は使ったことないな。

ジェネレータの利点を説明しなさい

使ったことないな

Python 2 プロジェクトの Python 3 への porting で難しいところは?

使ってるモジュールがPython3に対応してなくて互換モジュールを探すか自分で書くはめになる。

CPythonについて

Pythonで定義した関数と拡張関数の呼び出しコストの違いを説明しなさい。

気にしたことない

Python のプロファイラと、普段使ってる C 言語レベルのプロファイラの使い方を説明しなさい。

使ったことない。

gcボトルネックになるケースと、その回避策を説明しなさい。

大量に一時オブジェクト作ってすぐ破棄を繰り返すケース
回避策は一時オブジェクトを何らかの形で使いまわすかな。

CPython でマルチスレッドを使ってマルチコアの計算能力を活かせる条件を説明しなさい。

マルチスレッドまで使わなくちゃいけないほど計算量が多いなら他の言語使うなあ。
大きなファイルの入出力とか?けどこれは非同期IOで何とかなるか。なんだろ。

+1

エキスパートPythonプログラミングは読んだか?

読んだことないなあ。
Pythonは標準のドキュメントぐらいしか読んでない。それも飛ばし読み。チュートリアルを適当に読んで、あとはドキュメンテーション文字列に書かれてること読んでればそれなりに書けるっしょ。