Speak the Language Fluently
Understand the power of programming languages and increase your productivity with time.
We'll cover the following...
As programmers, we are translators in a way: we take a description of a program expressed in human languages and translate it to a real program expressed in a programming language. Translators must be fluent in both languages to be effective.
However, fluency in programming languages is somewhat ill-defined. Many books and courses say they will teach us, for example, Java in 21 days. I’ve even seen one book that claims to teach Java in just 24 hours. Perhaps we could learn the syntax of Java and some of its library calls, but could we call ourselves fluent after 24 hours, or even 21 days? No way.
No shortcuts
A language, or any skill for that matter, takes about 10,000 hours of dedicated practice to reach true competency. Malcolm Gladwell and Peter Norvig both made a compelling case for the 10,000-hour rule. This works out to about ten years for most people. Within those ten years, the mastery curve looked like this:
There are a couple of notable points. First, we won’t get far past “Hello World” without hitting a wall of frustration. That’s normal because there’s a base of knowledge we need to assimilate, syntax, libraries, and such, to be productive at all. After that, we will hit a plateau of competency where we can putter along and pay the bills, but we’re not masters yet. This is the long grind where we build the grooves in our minds so that we can truly think in that language. If we stick with it, our competency starts taking off again as we can reach true mastery.
There’s value in sticking with one language, or a set of related languages, through the 10,000-hour mark. We can increase our skill as a programmer across the board with every additional language, but we need to take at least one past 10,000 hours. Consider, by contrast, 1,000 hours of ...