After writing the headline, I realized that there are actually two myths around genius programmers – the one I am going to address in this blogpost, and a myth surrounding the importance of genius programmers in teams, which I might have to address some other time (short hint: teams are more important than any individual).
Yesterday, I spent a couple of hours at the Emergent Works 2020 Summer showcase where people who were part of the mentee program at Emergent Works showed what they had learned over the summer. It was really impressive, and shows how a good mentor can help you learn a lot in a short time.
During one of the presentations, one of the mentees mentioned that one of the most important things he had learned, was that you don’t have to be a genius to be a programmer, and mentioned that that had always been his impression before.
Since I have been working in the tech field for a couple of decades, I tend to forget how people think of people in the field, so this comment really made me think about the perception many people have of people in the field. Especially people who don’t really know anyone in the field. And it is true, there is the whole idea that to be a programmer, you have to be a genius.
This impression is perpetuated by the stories we get out of the tech field. About the big successes, generating multi-million fortunes for the founders and early employees. Here people involved, mostly young white men, are usually presented as geniuses, that have done something that no normal person could have done.
The truth is, this is just a myth. A damaging myth.
There are obviously a level of skill involved, but a lot of it has to do with connections and the sheer dumb luck of being at the right place at the right time.
In reality, the tech field is not characterized by these people. Most people who work in the tech fields are not geniuses, but rather ordinary people who have learned a particular skill set. Not necessarily an easy skill set to learn, but one that most people can learn if they have the chance.
It is also important to remember that many people who work in tech don’t program, but fulfill other roles, such as testers/QA, business analysts, program managers etc. Here the skill set needed is different, and again something most people can learn.
In a time where we desperately need more people to go into tech, we need to dismantle this myth of having to be a genius to work in tech. We obviously welcome geniuses, but most people, also those working in tech, are ordinary people. We need to show everyone that tech is a viable path, even if you haven’t grown up with a computer, even if you don’t spend all your spare time on programming.
Note, that I am not arguing that working in tech is necessarily easy. It is a field that is constantly changing, and where you need to put some effort into keeping up. But this is true for many other fields as well, and no one claims that you have to be a genius to work in those. Instead people agree that you have to put in some effort to getting into the field, and in staying in the field.
So, in other words, the myth of having to be a genius to learn to program, or to work in tech, is one that needs to go. We need it to go, because it is a barrier for people who are well qualified to work in the field, but get turned away by the belief that it requires something extra-ordinary of people. This needs to end.
A note on Emergent Works. It is a wonderful organization, which describes itself as:
Emergent Works is a nonprofit software company that trains and employs formerly incarcerated people.
The organization has a special focus on Black and Latinx people, since they are so over-represented in prison and under-represented i n the tech industry.
If you have money to spare, consider helping them with donation. If you are in a leading role in a US tech company, consider hiring them for software development. If you work in tech, and are willing to use some of your spare time, consider becoming a mentor.
sonofrojblake says
“many people who work in tech doesn’t program,”
Lots of them don’t English much neither. 😉
Kristjan Wager says
Or maybe don’t write blogposts while distracted by other stuff. Thanks for pointing out the error
Marcus Ranum says
The venture capitalist community reinforce the stereotype in a very bad way, by searching for companies to fund that are led by people resembling the last round of big successes. So, for example, they want people who look and act like Elizabeth Holmes. Oops, Mark Zuckerberg. Whatever. It’s a stupid strategy and I’ve pointed out to a number of them that what you really want is someone dependable, practical, and honest, who can hit targets, deliver business, and win customers with innovative, solid, high quality products. Genius does not make solid, high quality products – the quintessential example is Steve Jobs whose main skill appears to have been finding solid, dependable, practical engineers and driving them mad trying to make them produce things according to his fantasy vision.
A friend of mine and I had a long-running discussion about how easy we thought it would be to hire an actor to play the part of a genius visionary developer, then get a bunch of venture dollars and spend the money on champagne, hookers and blow. Well, not quite, but it would work. There is an interesting problem that to recognize genius, one has to be a near-genius, or one is easily fooled by a fake genius.
robert79 says
I just started teaching programming 101 again this quarter. One of the things I emphasise to my students, is that *everyone*, me, you, the brightest kid in class, occasionally gets stuck for an hour on something incredibly stupid in their code (usually an unbalanced parenthesis or a missing space.) I suspect “genius” programmers are simply programmers who have the perseverance to stare at a screen for hours until they find that one silly typo.
Of course, my main lesson is that they should *not* stare confused at a screen for hours. Since everyone makes silly programming mistakes, there is absolutely no shame in asking for a 2nd set of eyes and asking a classmate (or worst case, me) if they spot anything off.
Marcus Ranum says
robert79@#4:
Of course, my main lesson is that they should *not* stare confused at a screen for hours. Since everyone makes silly programming mistakes, there is absolutely no shame in asking for a 2nd set of eyes and asking a classmate (or worst case, me) if they spot anything off.
I remember one notable incident where Andrew L. was doing some time-conversion in a parser, and his numbers were just coming out wrong, so – after hours – he came and asked me, and I did a parallel implementation and my numbers came out wrong, too, but differently. So then we had 2 programmers stuck burning the petrol on this one problem, and one of the other engineers stopped by and got stuck in the trap and then there were 3.
Eventually we figured out it was a daylight savings time issue.
Rob Grigjanis says
My second career was programming (mostly Sharp APL). One of the steps was a cool little course* co-funded by the Ontario government and business. One programming instructor, a class of about 10, learning the basics of a few languages. It was a blast. Loads of fun, and suited me to a t. Near the end, they had some HR people from a big bank come in to give us practice job interviews. We were told afterwards that only one of us would have been hired based on the interviews; the bloke who was the worst at programming. But he was a first rate schmoozer and BS artist. Not a great intro to the corporate world.
*Which, along with a lot of other really good programs, was axed when Mike Harris’ Conservatives came to power.