Can You Become a World-Class Programmer without a Formal Education?
Should testers learn programming? This has been one of the persistent questions that’s been posed repeatedly in several software testing forums, and the jury is split pretty evenly on whether people think this skill is necessary for testers to possess.
Pragmatically thinking, any person who chooses to be in a software engineering discipline should have some level of programming language knowhow—though the degree of expertise can obviously vary.
One of the realities of the software testing world today is that not all testers have a background in formal computer science education. So if someone does not have formal education in programming, can he or she really gain coding expertise?
The story of Instagram’s CEO Kevin Systrom is quite inspirational in this regard. Systrom, the creator of the $1 billion photo-sharing app, never had any formal programming training. He was a marketer who learned coding by night.
Malcolm Gladwell, in his groundbreaking book Outliers: The Story of Success, narrates a story of how Bill Gates became a programmer while justifying the 10,000 hour rule. Gladwell explains that to achieve world-class expertise in a chosen endeavor and become an "outlier" requires 10,000 hours spent doing that one thing. In the case of Bill Gates, it was his relentless focus on getting better at programming that made him a legend.
A closer look at these stories reveals two things that are needed to master any ability. One is passion; the other is practice. Both Systrom and Gates possessed a solid foundation of this combination. Like Gladwell says, "Practice isn't the thing you do once you're good. It's the thing you do that makes you good."
So what stops people from learning coding? More often than not, it’s their own inner demons, quite akin to the Thai elephant syndrome. But luckily, there are many sources being developed to simplify learning programming. Initiatives like Small Basic, Codecademy, and many more have been designed to bring the fun back to programming while simplifying the overall learning process.
One other way to beat the mind block could be using the “power of ignorance,” as James Bach explains in his book Secrets of a Buccaneer-Scholar: How Self-Education and the Pursuit of Passion Can Lead to a Lifetime of Success. Ignorance can help us question the very fundamentals of a complex subject, and answers to those questions bring us closer to gaining knowledge incrementally.
There is always more thrill and joy associated with being referred to as a self-taught programmer rather than a formally-educated one.
Do you agree? Let us know in the comments below.