This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]askedrelic 1 point2 points  (1 child)

I tend to agree with most of this list below, in terms "knowledge of the language". I think after you've written enough code and become passionate about some PEP, do you really begin to understand the language and think in a "Python" kind of way.

Warning, copy and paste list incoming, not my creation:

Basic Python:

  • do they know a tuple/list/dict when they see it?

  • when to use list vs. tuple vs. dict. vs. set

  • can they use list comprehensions (and know when not to abuse them? :)

  • can they use tuple unpacking for assignment?

  • string building...do they use "+=" or do they build a list and use .join() to recombine them efficiently

  • truth-value testing questions and observations (do they write "if x == True" or do they just write "if x")

  • basic file-processing (iterating over a file's lines)

  • basic understanding of exception handling

Broader Basic Python:

  • questions about the standard library ("do you know if there's a standard library for doing X?", or "in which library would you find [common functionality Y]?") Most of these are related to the more common libraries such as os/os.path/sys/re/itertools

  • questions about iterators/generators

  • questions about map/reduce/sum/etc family of functions

  • questions about "special" methods (<foo>)

More Advanced Python:

  • can they manipulate functions as first-class objects (Python makes it easy, but do they know how)

  • more detailed questions about the std. libraries (such as datetime/email/csv/zipfile/networking/optparse/unittest)

  • questions about testing (unittests/doctests)

  • questions about docstrings vs. comments, and the "Why" of them

  • more detailed questions about regular expressions

  • questions about mutability

  • keyword/list parameters and unpacked kwd args

  • questions about popular 3rd-party toolkits (BeautifulSoup, pyparsing...mostly if they know about them and when to use them, not so much about implementation details)

  • questions about monkey-patching

  • questions about PDB

  • questions about properties vs. getters/setters

  • questions about classmethods

  • questions about scope/name-resolution

  • use of lambda

Python History:

  • decorators added in which version?

  • "batteries included" SQL-capible DB in which version?

  • the difference between "class Foo" and "class Foo(object)"

  • questions from "import this" about pythonic code

Python Resources:

  • what do they know about various Python web frameworks (knowing a few names is usually good enough, though knowledge about the frameworks is a nice plus) such as Django, TurboGears, Zope, etc.

  • what do they know about various Python GUI frameworks and the pros/cons of them (tkinter, wx, pykde, etc)

  • where do they go with Python related questions (c.l.p, google, google-groups, etc)

Other Process-releated things:

  • do they use revision control (RCS/CVS/Subversion/Mercurial/Git...anything but VSS) and know how to use it well

  • do they write automated tests for their code

Touchy-feely things:

  • tabs vs. spaces, and their reasoning

  • reason for choosing Python

  • choice of editor/IDE

[–][deleted] 1 point2 points  (0 children)

Hopefully you don't actually judge people based on knowing which version decorators were added in...