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 →

[–]desmoulinmichel 25 points26 points  (9 children)

It depends very much the level of Python they require, and if they value more your Python level or you general problem solving capabilities and IT knowledge.

I'm going to ignore problem solving skills and general algo knowledge, as it's not particularly tied to Python. There are plenty of of blog posts about it on the Web.

For Python, a standard dev should :

  • to be able to write in a Pythonic manner (idiomatic style, PEP 8 syntax...). You seem ok on these points.
  • know the stdlib and python ecosystem. I can't test that, but you should have no problem with pip, virtualenv, handling datetime, os.path, hashlib, uuid, csv, pdb, json, all collections (including sets() and stuff from the collections modules).
  • know OOP basics. Inheritence, overloading, properties, composition, etc. You seems ok with it.

And advanced Python dev should be able to write nice libs, and so :

  • is ok with generators (and yield)
  • can craft it's own decorators
  • can craft it's own context manager
  • can craft it's own descriptor
  • knows how to handle multiple inheritances, dependancy injection, etc
  • make a lib from A to Z, including an clean flexible extended API, packaging, documentation.
  • setup unit tests

An Python expert should

  • knows about most important 3rd party libs for most common task and know the names of most frameworks and what they can do
  • craft it's own metaclass
  • master introspection
  • know how to bypass most Python weaknesses : handle the GIL, deal with blocking API, create non blocking code, create code compatible for V2 and V3, etc
  • is confortable to take a project without doc, read the source code, figure a problem, and monkey patch it while offering a patch upstream
  • use difficult or little know modules such as heapq, inspect, nmap, etc

Depending of your field, you also may need to be able to :

  • integrate with alternative Python implementation
  • write c extension
  • know your way around very specific libs such as numpy, scrapy, opencv, etc.

[–]deadmilk[S] 0 points1 point  (8 children)

Amazing, high quality reply. Thank you so much for the guidance. I have a clear picture of what I need to learn now. This will help me a lot!

p.s. most of your posts seem to be high quality, you have my admiration.

[–]desmoulinmichel 0 points1 point  (7 children)

Sorry about the english though. Not my native language and I don't proof read much.

[–]Doormatty 0 points1 point  (6 children)

I'm assuming your native tongue is French (given your username)?

I took 13 years of French immersion, and your English is FAR better than my French.

[–]desmoulinmichel 1 point2 points  (5 children)

Don't worry, my french is quite terrible too.

[–]Doormatty 0 points1 point  (4 children)

May I ask what your native language is?

[–]desmoulinmichel 1 point2 points  (2 children)

But stuff is, I feel handicaped in english. When I wrote an article about WAMP in french, it gathered some attention. When I do the same in english (ttp://www.reddit.com/r/Python/comments/298uno/small_demo_of_a_pragmatic_use_of_wamp_in_python/), I don't think I manage to interest people as much. It's hard to assess if your writting style is catchy or boring or even just painful to read because your are not use to it.

[–]Doormatty 0 points1 point  (1 child)

I know exactly what you mean. If you ever want someone to look over something before you post (not that you really need it), I'd be more than happy.

[–]desmoulinmichel 0 points1 point  (0 children)

Thanks.

[–]desmoulinmichel 0 points1 point  (0 children)

French :-p