I don’t ever want to be a code snob. I never want to be the person that looks down from an ivory tower on plebeian beginners and says, “Have you tried using ‘sudo’?” I’ve seen plenty of that from my time as a beginner, everything from “Well, just don’t use Windows” to “Yeah, but do you know any real languages?”
Last week my roommate, who is just learning C#, asked me, “So are C# and C++ very similar? Would I be able to learn it pretty easily?” Instead of offering him help to learn C++, or encourage him to learn as much as he can, I started ranting about how much harder C++ was than C# and how it was way more difficult to learn and to use, and you had to be a really good programmer before you learned C++. I tried scaring him with things like pointers and memory allocation, and the lack of a garbage collector.
After talking down to him, I realized that I had become the person that I always hated in the community, the C++ asshole who belittles anyone who doesn’t use pointers, and considers them lesser in some way. I felt the wave of guilt as I realized that I was enforcing the stereotype that people have for programmers.
So this is my formal apology to anyone who has been the subject of a mean comment rant, to anyone who has been told they aren’t a “real” programmer, and to anyone who has to put up with programmers on a regular basis.
To programmers, the world can sometimes feel like two camps: the people who are better than them at coding, and the people who are worse than them at coding. The first group of people are better than the programmer, and he or she should try to be more like them, and the second group are worse than the programmer, and they should try to be more like the programmer.
This mindset is really damaging. It can lead to programmers talking down to the marketing team, or the content team, or the design team, or the project managers, or pretty much anyone who is not as enlightened as them. They feel entitled to this superiority because they have the power to make a grid of small lights flicker at their whim. This does not actually make them better, and if any programmer has ever said something to make you feel inferior to them, don’t think that for a second. Here are the facts:
- You are better than them at a lot of stuff, like cooking, or talking to girls, or riding bicycles. I promise you are 100% better than me at all of those things.
- You don’t have to know code to be smart. There are smart people all over the world who have made history and don’t know how to code. Aretha Franklin doesn’t know how to code, Emma Watson doesn’t know how to code, and President Obama doesn’t know how to code. I think all three of them are smarter than me.
- You have a lot in common with programmers. They worry just as much about self-esteem and insecurity and dental hygiene as you do. They get bored a lot, and feel uncertain, and waste hours binge-watching TV shows. They also like to eat, so maybe eat lunch with them sometime and ask them about their family or their favorite sports team or what music they’re listening to.
I’m sorry that programmers are generally bad people. I’m sorry to my roommate for ever talking down to him. In the end, you can learn code or not learn code, it’s perfectly fine either way. In the words of a very smart programmer:
this is why I'm hesitant about the "everyone should code" thing. Every programmer I know, myself included, is a giant pain in the ass.— Jeff Atwood (@codinghorror) December 8, 2014