| For this comment I'll try to stick to one specific thing. I'll focus on the mechanic analogy, but I do think the premise of the article is flawed. I have some thoughts about burnout in programmers etc. but they aren't well enough formed for a 1am UK time post... I actually think the analogy of car mechanic is really appropriate. Many people (myself included) could not fix even the most trivial of problems. I have fixed some very very trivial problems by poking around / research, but as a general rule the car has just gone into the garage, and someone else has fixed it for me. I've also once had a car in the garage for over a week. I briefly mentioned the problem, over the phone, to my non-mechanical grandmother, only to have her diagnose exactly the issue at hand. Simply: She has had the same thing happen to one of her cars. Those mechanics hadn't seen it. So she was correct. But that anecdote doesn't really mean anything. It was just one of those things. Experts can't know everything and those car mechanics will always know more than my gran about cars! 'So at the end of several days' worth of programming, and problem-solving, and forward-thinking, all a programmer might get is a "thanks, now here's the next thing I need you to do."' - yes! That's exactly how mechanics (amongst others) are treated! Who pays a mechanic and says "amazing job" when they don't understand the original problem? It's meaningless faint praise to say good job for something you don't have an inkling of the difficulty of. The whole article sounds like the author wants programming to be treated as art. I tend to agree that it takes great skill and dedicated learning to become a good programmer. But I don't think that is what defines art. It takes skill and dedication to become a good carpenter, a good brick-layer, a good joiner... But no one gives these guys a round of applause when they do something subtly brilliant. It's only others in their craft that go "hey, that's really pretty nice, well done". * Sorry. Building references just came to mind. People don't notice when they do a good job, but oh boy do they notice when a not-quite-good-enough job is done! |
The main difference I was trying to illustrate between mechanics and programmers is that people occasionally get exposed to at least a little bit of the complexity that mechanics have to deal with. That might not make them treat their mechanics as well as they should, of course.
But, in programming, we want to hide as much of the complexity from people as possible. Error messages have to be meaningful to the layperson, interfaces need to be intuitive, and so on.
I haven't been able to think of another discipline quite like that. If anybody else can, I'd love to hear about it!