October 30, 2008

Python - Job Paradox

Paul Graham has some great essays online that made up the content of his book: Hackers & Painters. One of my favorite posts is The Python Paradox, which presents something rather counterintuitive at first read:

"I'll call it the Python paradox: if a company chooses to write its software in a comparatively esoteric language, they'll be able to hire better programmers, because they'll attract only those who cared enough to learn it. And for programmers the paradox is even more pronounced: the language to learn, if you want to get a good job, is a language that people don't learn merely to get a job.

This concept may be a little scary to some. Learning an esoteric language improves your chances at getting a "good" job? (presumably "good" meaning one you like) But what about all the recruiters salivating for Java/JEE and .NET programmers?

"People don't learn Python because it will get them a job; they learn it because they genuinely like to program and aren't satisfied with the languages they already know."

.. and there lies the paradox. If you don't know an esoteric language, or one that is not considered mainstream Enterprise, you can't learn one just to land a job. You must already happen to enjoy programming enough to seek it on your own.


Paddy3118 said...

After first watching the TIOBE index and Python, and then Gugles(sic) AppEngine using Python, a lot more people are seeking out Python. It is no longer the language underdog.

With greater popularity you will get more people of 'average' talent, which is not such a bad thing I think as I do remember that one aim of Python is that it be easy to teach, as well as being powerful, so hopefully the average programmer using Python might still do more because of Python.

cdamian said...

I noticed something very similar, when I started a larger project in 2001 it was really difficult to find good PHP programmers. We decided to do it in Perl and it was obscure enough that you usually got better programmers than the php crowd.

Now I work on a PHP shop and interviewing people can be quite frustrating. Just talking about testing, objects and MVC usually makes them really quiet.

I do python just in my free time, which is probably another proof for the theory that people learn 'obscure' languages for fun and not for profit.

Patricio said...

Notice in the TIOBE index that java and python had inverse spikes around 2005. Very interesting.

The whole "learning a language to get a job" thing sounds a little entry level, but what about the rest of us? I'm convinced on a few levels that the efficiency of python would greatly benefit certain areas of the audio world. Since there's almost zero acceptance of python in that area, I might push to write a few wrappers for key elements of the design process to make it happen.

There was a time when I was getting paid to write code for plone that I believed that I could write tools to use my tools faster than I could just start using their tools. That went away when I started getting paid to write C++.

Also interesting stuff.