[python] 優れた Python プログラマを見分ける10+1の質問

お詫びと追記

この記事は 「優れたPerlプログラマを見分ける27の質問」の日本語訳 - Islands in the byte stream を見て書いたものですが、僕が Perl について無知なのとタイトルに釣られたために、で元の問題の意図を汲み取れていませんでした。

その言語に取って重要な基本事項を理解しているかのチェックリストとしては、以下の質問は不適切です。

お詫びに、真面目に Python の基本事項に対するチェックリストをつくろうと思います。

質問

一般

  • バージョン管理をしているか
  • テストを書いているか
  • 1つ以上のオープンソースプロジェクトのコミッタであるか

Python言語について

  • list, tuple, dict, deque, heapq, bisect がどういう場面に適しているか説明しなさい
  • ジェネレータの利点を説明しなさい
  • Python 2 プロジェクトの Python 3 への porting で難しいところは?

CPythonについて

  • Pythonで定義した関数と拡張関数の呼び出しコストの違いを説明しなさい。
  • Python のプロファイラと、普段使ってる C 言語レベルのプロファイラの使い方を説明しなさい。
  • gc がボトルネックになるケースと、その回避策を説明しなさい。
  • CPython でマルチスレッドを使ってマルチコアの計算能力を活かせる条件を説明しなさい。

+1

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


優れた Python プロうグラマを見分けるのに、「Pythonでは」という質問はあっても「Pythonならでは」の知識を問う質問は要らない。

良い習慣を持っていること、データ構造とアルゴリズムが判ること、実装をのぞいたことがあれば、良い Python プログラマだと思う。

良い Python プログラマ = Python を使っている良いプログラマ

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。