November 5th 2013
"Thing is when you build a boat, when it's finished, you can go 'there, look at that. It's done.' When you program, you can't point to a system and say, 'there, 'it's done.' There's nothing to see for your work." - Dominic Tarr, October 2013
You might look at the world of programming and think, "I'd hate that," because it looks, in an odd way, both underwhelming and overwhelming. I'd like to present you with an argument to encourage you to program anyway.
As you learn to program, if you're the type who grew up loving show and tell, enjoyed seeing gold stars on the top of your work, and thrived on public acknowledgment...you might find programming underwhelming at first.
As Dominic pointed out, you build a boat, there is a boat to prove you built it. You can point to the craftsmanship and tell stories about what a pain in the ass some finer point was. In programming, there is no boat.
Let's take the non-boat Git. Git is a difficult system to visualize. When I speak on the subject, I start with a Voldemort metaphor. His power comes of being capable of breaking up his soul into little pieces and distributing them. So it goes with Git.
Here's how to counteract the underwhelm
"What's that?" he said. "A T L A," I repeated, "a three letter acronym."
Yes, it's meta to describe a three letter acronym with three letters. That's the point.
When you hear the phrase "I'm just gonna fire up an Arch instance on my VPS and then SSH in to Vim this change," you've just heard two TLAs. Three letter acronyms kill conversations, alienate listeners and produce overwhelm in someone new to a field. When you're a beginner, TLAs are an impediment.
Some programmers (not all, not by any stretch) use TLAs to intimidate and overwhelm Outsiders, so that Outsiders decide not to join their party.
DON'T LET TLAS RUIN YOUR PARTY.
Here's how to counteract the overwhelm
Last night I learned that GRUB is a TLA+1. It stands for GRand Unified Bootloader. If some Stallmanesque programmer attempts to TLA 1UP you, you now have an ace up your sleeve. My guess is that person will not know what GRUB stands for. And if they do, hang out with them and ask a bunch of annoying questions. Programmers play like they don't want to be annoyed by you.
Annoy them anyway. It's how you'll learn.
Moreover, it's how they'll learn.
I've just been thinking about an operating system designed with women in mind. I've felt the first glimpses of it using a tiling window manager; it works the way my brain does.
What would it be like to build the operating system I want to use each day, from the ground up? Do I want to be one of the one who helps design it? The more I do this work, the more I see the importance of lowering the barriers to not just entry but engagement for developers.
Maybe just asking these questions and addressing the overwhelm and the underwhelm is a start.