My Kung Fu is the Best
February 4th, 2009 Posted in essays, programming, rants, software industryI don’t know if it is a phase I’m going through or if I’m just starting to show my age, but I’m growing tired of meta. I spend so much time learning new things about programming that the amount of code I’m actually generating has deteriorated down to just what I’m doing for work.
I didn’t come to programming from Computer Science. I was an Electrical Engineering major who switched over to Physics and then fell into programming as a hobby which turned into a career. When I first started programming I had a very low opinion of it. I see a lot of EE types with this attitude: software is easy, and what they do is the hard stuff. Even back then I could see that the field of programming was a huge mental quagmire and I swore that I would not get caught up in it. Software is just there to make the hardware do stuff. My attitude was that the “how” doesn’t matter so much as long as it works.
Naturally that’s not what happened. I got swept up in the industry trends. I became addicted to learning what was new and cool. I was an object zealot and fanboy. Then STL. Scripting languages. ORM. Patterns. TDD. Refactoring. The past few years it’s been functional and logic programming. And that’s all great. I’ve learned a lot and had a lot of fun. But sometimes I wonder if I had just kept my head down and coded more instead of trending more, where I would be. I’m not talking about ignorance here, just pragmatism. There is a balance between the two and I wonder how far off the mark I am, or if I’m off the mark at all.
What I’m growing increasingly intolerant of is zealotry and opinionism. Both of which are almost inseparable from computer programmers. The worst is when I feel it from within. When someone shit-talks the tools I use to do my job, I get a little tight in the chest. And why? Why the hell should I? If I’m getting my work done the best way I know how and the people who use my software are happy, then what is the problem? The truth is, there isn’t a problem.
Michelangelo is said to have seen sculpting not as chiseling out an image from stone, but as releasing the sculpture that was already in the stone. That is such a powerful idea because it means that there are an unlimited number of sculptures in that stone. No two sculptors would set the same sculpture free. Programming is like that. Software is so very abstract, and the limitations on what we do are relatively few compared to other disciplines. Anything that works and makes sense to the programmer is probably not wrong in a fundamental sense. Certainly issues of specific application, maintenance and communication can be discussed, but what I’m getting at is that my methodology or toolset is not dumb just because it isn’t the one you use.
“The Tao that can be told is not the eternal Tao.”
That’s a nice way of saying that you do not have all of the answers.

6 Responses to “My Kung Fu is the Best”
By AdamD on Feb 5, 2009
Couldn’t agree more. Too often people fall so in love with their technology that they think everything else is sub-par. Or, they forget that the things that are important to them might not be the things that are important to others.
That’s actually a big part of why we started Portland Web Innovators. We wanted to get together, talk about the web and not feel it necessary to focus only on the technologies that drive it.
By matt on Feb 5, 2009
@AdamD pdxwi is great. I missed this last one but hope to make it to more in the future.
By matt on Feb 5, 2009
This guy (link below) is talking about the exact same type of thing I’m talking about, only in more specific terms re: agile development. Worth a read if you like what I had to say here.
http://www.noop.nl/2009/02/the-decline-and-fall-of-agilists.html
By Matt W. on Feb 6, 2009
Beautiful.
By yorba on Feb 6, 2009
it calls to mind unclebob’s reaction to joel spolsky’s statement that you can have good code with tdd.
tdd might be analagous to a doctor washing his hands
but it might be closer to a doctor prescribing antibiotics for everything. and then you have mrsa
By matt on Feb 6, 2009
@yorba There’s a reason for that. This post was triggered in part by one of the recent Stackoverflow podcasts. I haven’t seen Bob’s responses to Joel though.
I’m not a TDD zealot (I used to be) but I hate seeing things misrepresented, especially when subtle but important points are being missed. I like Joel but I think sometimes he doesn’t try too hard to see things from other points of view. I think that is generally symptomatic of the profession… After a while you convince yourself that you’ve got it all figured out. And shortly after that you move into management. Ack!