What minimum should a person know before saying "I know Python"

Chris Angelico rosuav at gmail.com
Fri Sep 20 10:26:21 EDT 2013


On Fri, Sep 20, 2013 at 7:58 PM, Aseem Bansal <asmbansal2 at gmail.com> wrote:
> I started Python 4 months ago. Largely self-study with use of Python documentation, stackoverflow and google. I was thinking what is the minimum that I must know before I can say that I know Python?
>
> I come from a C background which is comparatively smaller. But as Python is comparatively much larger what minimum should I know?
>
> Just a general question not for a specific purpose.

Interesting.

Everything's relative. I would say that I "know Python" at the point
where I am comfortable using it to solve problems, as opposed to using
it to learn Python. That is to say, when you choose Python (above
bash, or above some other language, or whatever) because it will take
you less time to achieve a goal in Python than in any other language,
when it's the goal that's important.

I'd also add, though it's somewhat tangential to the first, that
"knowing Python" also requires knowing when/where Python is a good
choice of language. I like to be able to make one-sentence summaries
of the form "X is a good choice when you want to...":

* Python: put something together NOW, with no boilerplate
* Pike: run a server that reloads code without dropping connections
* C: implement a high level language (or a module for one)
* PHP: gouge your eyes out with a rusty fork, but aren't allowed to on work time
* Haskell: code functionally rather than imperatively (I'm not
familiar with a broad range of functional languages; someone who is
would be distinguishing them from each other)
* bash: execute a series of commands, with minimal processing in between
* Lua: embed a tiny and secure scripting language in an application
* JavaScript/ECMAScript: ditto, but less tiny
* Brainf*: gouge your eyes out with a rusty fork, but aren't allowed to use PHP

Etcetera. Familiarity with a language requires knowing both how to use
it and when to use it.

ChrisA



More information about the Python-list mailing list