Explaining Programming to My Aunt

I didn't realize before my aunt asked me at a Christmas party, "So, what is it that coders do?" how strange programming is to most people. While I couldn't answer my aunt back then, I have an answer now.

I'll start with something most people now, the movies. There is a trope of the hacking wizard; a nerdy-looking, glasses-wearing (usually white) guy staring intensely at a screen while blasting at a keyboard like a sewing machine. In reality, I only write a few lines of code per hour. It's not about writing the most code, it's about writing the correct code.

I spend most of my time thinking about what is the correct code. Thinking about what I want my code to do. Thinking about how I can get my code to do what I want. Often, I don't know how to do that, so I go to the internet for answers. I read documentation and stack overflow, then think about what they tell me. Once I guess what the correct code is, I type it out.

Better programmers come to their guesses faster. They spend less time ruminating and researching and more time coding. However, their skill comes from experience. Years of programming and reading has already given them the answers they need, meaning they can get to typing faster. What separates the novices from the experts is knowledge.

However, it's not enough to just know a lot of things. You can know everything there is to know about advanced database design, concurrent systems, linear algebra, recursive neural networks, whatever. But if you're job is to make some text show up blue, then all that knowledge about databases and neural nets are worthless. Programming is about having the information that is relevant to the code you're trying to write.

If I had to answer my aunt's question today, I would say that coding is the process of learning how computers and software work and utilizing that knowledge to get the job done.