[Baypiggies] Python Standardized Skill Scoring Chart

Jake Alheid shakefu at gmail.com
Wed Apr 17 23:09:16 CEST 2013


I was just looking at my suggested list, and honestly 1-4 should probably
just be "1" with the other items spread out more... I wouldn't consider
hiring anyone as a "Python" developer if they didn't have 1-4 already, and
some of 5.

Likewise, 9 and 10 should probably just be 10. If you're so close to the
python internals that you can effectively work with bytecode or ASTs and
write C extensions, you could probably be a core developer if you chose.

Though, if someone's a developer in other language and has very limited
exposure to Python, 1-4 might be relevant. But any professional developer
should be able to pick up 1-4 (or their equivalents) super fast for any
language (not just Python).

Someone mentioned lambdas and closures. +1 for that. I'd put a good
understanding of functional programming features in Python in the 6-7 range.

Also +1 for whoever mentioned that the order isn't fixed. Some stuff (like
concurrency or socket programming) you may never have to touch. Other
stuff, like understanding basic classes -> class/static methods &
private/protected -> dynamic getattr()/setattr() -> magic methods ->
metaclasses -> attribute resolution order is a pretty normal flow.

--
Jake Alheid
http://about.me/jake


On Wed, Apr 17, 2013 at 1:53 PM, Glen Jarvis <glen at glenjarvis.com> wrote:

> Great stuff!!!
>
> Also, this bumps me down to "where I know I belong."  I'm now a 7.5ish --
> not an 8.5ish. And, that's more realistic. I think everyone wants to be in
> the "10 category" just because it's the highest. But, if we don't make room
> for such things, we'll not have anywhere to grow.
>
> I will be consolidating more and be using this as a personal rating scale
> -- and also, as a somewhat objective way to judge the skill-set for new
> developers.
>
> And, frankly, how much simpler would it be to give a list like this to a
> recruiter, company and or developer. A developer won't be able to fake
> being in a higher category than he is. A company is generally pretty
> flexible in their role (i.e., we'll take a 4/5 for our junior position; a 6
> for our regular positions; but the higher the better). 90% of the
> mismatches from recruiters could be cut down if we just handed this scale
> out and asked to self evaluate. (Or, I'm being naive?).
>
> I love it. Keep it coming :)
>
> Cheers,
>
>
> Glen
>
>
> On Wed, Apr 17, 2013 at 11:58 AM, Jake Alheid <shakefu at gmail.com> wrote:
>
>>
>>    1. Knows how to install and write "Hello World"
>>    2. Understands basic data structures: list, dict, tuple, set, etc.
>>    3. Understands basic classes and when to use them vs. a
>>    function/module of functions
>>    4. Understands list/dict/set comprehensions and why they're useful;
>>    Exception handling and raising; Understands how to use pip/virtualenvs
>>    5. Knows basic decorator usage and how to write them; how to
>>    use/write docstrings; understands dynamic lookups (getattr()); how to
>>    introspect objects in the interpreter with dir(), help(), etc.; how to
>>    write/run tests; Understands why to use virtualenvs
>>    6. Understands magic methods (__getattr__, __setattr__), class
>>    methods, static methods, protected (._foo)  vs. private (.__foo) members;
>>    knows how to write/use generators; knows basic speedups (when to use
>>    .join() vs 'str' + 'foo')
>>    7. Understands how to create and distribute a pacakge with setup.py;
>>    Understands concurrency in Python and how to implement threading/green
>>    threads/callbacks; knows how the GIL affects different concurrency models;
>>    has a strong understanding of when to use different design patterns in
>>    Python; has a strong organizational understanding of large python projects
>>    8. Understands Meta classes and how to use/write them; understands
>>    that everything in Python is a dict; knows order of lookups for variables,
>>    class members; knows how to monkeypatch models, instances, sys.modules,
>>    .__dict__, etc., and why not to do it; how to use inspect module; Can
>>    read/modify C extensions;
>>    9. Understands Python internals (dir, ast, compile modules, ); Can
>>    write new C extensions from scratch
>>    10. Guido; Core contributor
>>
>> I'm sure there's a lot more that I'm forgetting. So much Python!
>>
>> --
>> Jake Alheid
>> http://about.me/jake
>>
>>
>> On Wed, Apr 17, 2013 at 11:37 AM, Glen Jarvis <glen at glenjarvis.com>wrote:
>>
>>> This feedback has been invaluable. I encourage this thread to continue.
>>> I'm sitting behind the scenes and synthesizing all of this into a
>>> consistent/uniform document. When finished, I'll happily share.
>>>
>>> I've not yet seen a conflict between the different perspectives.
>>>
>>> Cheers,
>>>
>>>
>>> Glen
>>>
>>>
>>> On Wed, Apr 17, 2013 at 10:54 AM, J. R. Carroll <
>>> jrcarroll at jrcresearch.net> wrote:
>>>
>>>> I don't know of any python scales per-se, but I have done what is known
>>>> as psychometric work (as a psychometrician) for nearly a decade (which
>>>> includes conducting job/task analyses, construction of a requirements
>>>> blueprint (test blue print), and then systematically outlining these
>>>> requirements into testable/observable/quantitative 'bullet points' that
>>>> others can then use for hiring decisions or ...
>>>>
>>>> Where am I going with this is that we have TONS of experience on this
>>>> listserv (and I'm currently living in Boston and the Boston python group is
>>>> huge as well) - I'd advocate about taking a more formal process in this
>>>> development by leveraging all of our skills and designing something as a
>>>> group/python-cult.  If there is interests in putting together a list of
>>>> KSAO's (knowledge skills abilities, and 'other') Im wondering if the PSF
>>>> would be interested in somehow using it as well - seeing as there are a
>>>> number of python forums that support job networking...
>>>>
>>>> If there is sufficient interest, I'd love to help/volunteer.  Then
>>>> again, it might be overkill for what you (and others) are thinking about...
>>>> but, fun to consider nonetheless!
>>>>
>>>> -J
>>>>
>>>>
>>>> ----
>>>>
>>>>
>>>> J. R. Carroll
>>>> Independent Researcher through Hurtz Labs
>>>> Research Methods, Test Development, and Statistics
>>>> www.jrcresearch.net
>>>> www.ontvp.com
>>>> Cell:  (650) 776-6613
>>>> Email: jrcarroll at jrcresearch.net
>>>>           jrcarroll at hurtzlab.com
>>>>           jrc.csus at gmail.com
>>>> <https://www.facebook.com/J.R.Car> <https://twitter.com/jNammer><http://www.linkedin.com/in/jrcarroll>
>>>>
>>>>
>>>>
>>>> On Wed, Apr 17, 2013 at 1:42 PM, Ryan Matthew Balfanz <
>>>> rbalfanz at gmail.com> wrote:
>>>>
>>>>> The only ordered skill chart that comes to mind is:
>>>>> http://www.unicyclist.org/cont/levels.cfm :)
>>>>>
>>>>>
>>>>>  On Wed, Apr 17, 2013 at 10:29 AM, Glen Jarvis <glen at glenjarvis.com>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
>>>>>>
>>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>>
>>>>>> Glen
>>>>>> --
>>>>>>
>>>>>> "Pursue, keep up with, circle round and round your life as a dog does
>>>>>> his master's chase. Do what you love. Know your own bone; gnaw at it, bury
>>>>>> it, unearth it, and gnaw it still."
>>>>>>
>>>>>> --Henry David Thoreau
>>>>>>
>>>>>> _______________________________________________
>>>>>> Baypiggies mailing list
>>>>>> Baypiggies at python.org
>>>>>> To change your subscription options or unsubscribe:
>>>>>> http://mail.python.org/mailman/listinfo/baypiggies
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Baypiggies mailing list
>>>>> Baypiggies at python.org
>>>>> To change your subscription options or unsubscribe:
>>>>> http://mail.python.org/mailman/listinfo/baypiggies
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>>
>>> "Pursue, keep up with, circle round and round your life as a dog does
>>> his master's chase. Do what you love. Know your own bone; gnaw at it, bury
>>> it, unearth it, and gnaw it still."
>>>
>>> --Henry David Thoreau
>>>
>>> _______________________________________________
>>> Baypiggies mailing list
>>> Baypiggies at python.org
>>> To change your subscription options or unsubscribe:
>>> http://mail.python.org/mailman/listinfo/baypiggies
>>>
>>
>>
>
>
> --
>
> "Pursue, keep up with, circle round and round your life as a dog does his
> master's chase. Do what you love. Know your own bone; gnaw at it, bury it,
> unearth it, and gnaw it still."
>
> --Henry David Thoreau
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/baypiggies/attachments/20130417/3e45925a/attachment-0001.html>


More information about the Baypiggies mailing list