[Baypiggies] Python Standardized Skill Scoring Chart

Sean Perry shaleh at speakeasy.net
Wed Apr 17 19:51:02 CEST 2013

Exposure to special member variables and methods like __add__ and the like for overloading.

Exposure to docstrings and why they are useful -- knows about help() in the interpreter for instance

What makes a Python file a module? What is needed to make a directory of modules loadable (aka __init__.py)? This question about what makes a module has been a solid litmus test for "yeah I have written a function or two" and "I get how Python works". Sad but true.

Understands why from foo import bar is preferred to using *. But can also give reasons when to use *.

Dynamic coding like using getattr()

"Duck typing". Understands the Python idiom of "if the class has method A it works, don't care what class type it really is".

Understands why passing in a File object is preferred to passing in a filename. Which leads to the conversation about testing and modularity.

What I find interesting about this list is it is mostly "new" stuff. I have coded in Python since 1.5 and I am still learning about decorators. Other than in Django apps I have not used them much.
I have never needed dis or the Python internals really. Other than learning about the GIL.

On Apr 17, 2013, at 10:29 AM, Glen Jarvis wrote:

> Any time I find myself making something up, I think "Who else has done this?"  Does anyone else know of a standardized skill chart for Python. It can be useful to explain someone's skill set.
> For example, I just interviewed someone that would fall in about a 7 below. But, what one person judges as a 7 is not what someone else judges as a 7.  For what it's wroth, I personally am rating myself between an 8 and a 9 on this scale...  (yep on writing decorators; yep on concept; nope on really writing meta classes; yep on 'dis' library but nope on many of the internals).
> And, frankly, that's probably a tad high (for me at least)... So, what's a better rating scale?  Has anyone seen such a thing?
> 1 - Knows how to install and write "Hello World"
> 2 - Understands basic data structures: list, dict, tuple, set, etc.
> 3
> 4
> 5 - Understands list comprehensions and why they're useful; Understands generators and how to write one
> 6 - 
> 7 - Knows basic decorator usages; Why it's useful (DRY); and has at least concept of how to write one
> 8 - Knows how to write decorators; Knows what Meta Classes are and how to write one
> 9 - Knows internals of Python such as "dis" library
> 10 - Guido; Core contributor 

More information about the Baypiggies mailing list