We’ve discussed the topic of whether great developers are born or made. And in this guide we’re going to look at a similar topic from a different angle. And we’re going to answer the question: do you have to be a genius to be a developer?
Because of the near magical nature of coding, one of the most common remarks I hear from individuals who hear what I do is:
“Oh wow, you’re so smart!”
In fact, just recently I traveled to meet with a group of developers and the head of the company introduced me by saying:
“This is Jordan, he’s just here to be smart.”
I know that when people say things like this it comes from a good place. However it bothers me. And it bothers me for a couple reasons:
First and foremost these types of comments make it seem like all it takes to become a great developer is being smart.
Following up on the above point, these remarks devalue the countless hours of work that are required in order to learn development.
I’m going to get off my soap box for a moment and discuss the life of Steve Prefontaine. If you’ve never heard of him before, Prefontaine was one of the world’s greatest runners during his time. Before tragically dying in a car accident at 24 years old he had already broke 7 track world records.
During his climatic rise to success, many people would try to compliment Prefontaine by saying how talented he was. And by calling him a prodigy, such as on the cover of Sports Illustrated. However he was famous for getting furious at people for these types of statements.
He said that his success had literally nothing to do with talent. In fact he said he wasn’t born with any innate ability as a runner. Instead he credits 100% of his success with his legendary work ethic.
It’s important to take the same approach that Prefontaine took as developers. If you fall into the trap of thinking that only geniuses can become good coders, it will most likely lead to quitting when tasks become challenging. This is because our minds constantly are searching for ways to work less. And if you believe that being a genius is a requirement for development, you will have a built in excuse for faltering on your developer learning journey.
In a comprehensive educational study published in Scientific American, kids were broken into two groups and taken through some academic assignments. Both groups scored around the same for the assignments. One of the groups were praised by their parents and teachers, and the focus of the compliments centered around how smart and talented the kids were.
The second group of students were complimented in a different manner. Instead of complimenting students on their innate ability, students were complimented on how hard they worked.
After going through this cycle of compliments, the same two groups of students were presented with new, and very challenging assignments.
The first group of students, the ones that had been told that they were brilliant, ended up giving up and not completing the tasks that were assigned to them. However the second group of students, the ones that were complimented on their hard work, performed dramatically better than group 1.
So why did two groups of students have such different results when, by all appearances, the students had the same level of actual skill?
The researchers came to the conclusion that the students from group 1 felt like the top priority was maintaining their genius status. So they quit the second assignment early because they didn’t want to look bad and tarnish the genius label that they had been given.
However the second group of students didn’t feel the pressure to maintain a genius status. Instead they wanted to maintain their new reputations as hard workers. With this mindset the second set of students worked through the challenging topics instead of giving up.
So instead of taking the mindset that you need to be a genius to become a developer. Instead take the mindset that best developers are also the hardest working developers. With this approach your potential for skill is literally limitless. You are 100% in control of how good you will become as a coder. And your success will completely be determined how hard (and how smart) you are willing to work.
I've been a software engineer for the past decade and have traveled the world building applications and training individuals on a wide variety of topics.