[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