I recently came across a blog post that is probably old enough to not be called a “blog post”. It’s called the Python Paradox. And the first paragraph starts like this, “In a recent talk I said something that upset a lot of people: that you could get smarter programmers to work on a Python project than you could to work on a Java project.” While I encourage everyone to read the rest of the short essay for yourselves, my interpretation of this essay is simply that programmers who in their spare time learn esoteric languages are generally better programmers and the ones you want to hire. If I haven’t already lost you, I really do have a reason for thinking this: practice.
As ZenHabits puts it, “It takes anywhere from 6-10 years to get great at something, depending on how often and how much you do it. Some estimate that it takes 10,000 hours to master something, but I think it varies from person to person and depends on the skill and other factors.”
I would count time spent coding at work to be practice. It’s certainly possible to learn new things about writing code from one’s coworkers, even if they happen to be bad coders, (just don’t do what they do) but you still have to be advanced enough to be aware of their mistakes. And that time learning and doing goes towards the ambiguous tipping point of around 10,000 hours. But it’s the programmer who goes home and fusses with something outside of his or her job that matters. The programmer who goes home and answers stack overflow questions for an extra couple of hours a week, writes open source code in her spare time, or keeps a tech blog where he documents and discusses with the world all of his little projects. That extra time spent doing these activities adds up, and allows someone to become a more proficient programmer quicker than just doing a job alone. I feel that type of programmer is what Paul Graham was talking about when he said “smarter programmers”. It’s not that these Python programmers back in 2004 had more brain power than non-Python programmers, they probably just wrote better or smarter code because they had more practice.
On a side note, I can’t help but feel there is a correlation with Python back in 2004 and functional programming languages today. People spending their free time working on projects that interest them, adding more time to the great skill clock. I feel safe in going out on a limb to paraphrase the quote above and state that, “You could get smarter programmers to work on a FP project than you could to work on a .NET or Java project.”