I don’t expect non-programmers to get much out of this list of the top ten things that annoy programmers, but if you’re into free thinking and science, you might like this bit — it’s the number one annoyance, “Your own code, six months later”
Ever look back at some of your old code and grimace in pain? How stupid you were! How could you, who know so much now, have written that? Burn it! Burn it with fire!
Well, good news. You’re not alone.
The truth is, the programming world is one that is constantly changing. What we regard as a best practice today can be obsolete tomorrow. It’s simply not possible to write perfect code because the standards upon which our code is judged is evolving every day. It’s tough to cope with the fact that your work, as beautiful as it may be now, is probably going to be ridiculed later. It’s frustrating because no matter how much research we do into the latest and greatest tools, designs, frameworks, and best practices, there’s always the sense that what we’re truly after is slightly out of reach. For me, this is the most annoying thing about being a programmer. The fragility of what we do is necessary to facilitate improvement, but I can’t help feeling like I’m one of those sand-painting monks.
Frustrating? Sure, sure. But then again, it is utterly delightful to be able to look back on yourself six months ago and think, what was I thinking? I know so much better now! Fixed, unchanging knowledge is one of the most devastating intellectual afflictions known to humankind. Do you really want to be absolutely sure of everything, and stay that way? What happens to your poor brain when all it can do is mull over the same things, over and over and over? It atrophies into so much grey jell-o, that’s what happens.
If you aren’t regularly stricken by how much more you know now than you did six months ago, what’s the point? If your life isn’t a constant series of epiphanies followed by epiphanies that make those prior epiphanies seem quaint and lame by comparison … well, why bother?
Eleven years or so ago, I got my hands on a computer that was connected to the internet for the first time. I had to know how this thing worked, so I began obsessively taking things apart and breaking them until they worked again. Six months later, in spite of the fact I was just a dangerous newbie with a copy of FrontPage and a lot of nerve, I had a job with the title of webmaster, and I never looked back. I have no formal education in this, of course, I can’t be taught, I can only learn, and not from people who are involved in the process of teaching, unless they are also involved in the process of being and doing — even then, I don’t learn from the instructions, I learn from the stuff the instructions are about. I take it apart, I beat on it incessantly (i am known at work for wearing out keyboards), and eventually, I understand. Then I go find something else I don’t know, and bang on it until I do.
Nothing will make you feel stupider on a regular basis than web programming, since no matter how much you know at any point, new stuff needing to be known makes it impossible to ever be complacent — but that feeling of stupid is actually the thing that makes you smarter.
Geek out on whatever knowledge makes your synapses zing, is my advice. The more you know how little you know, the more you are driven to learn.