Welcome back after a long Thanksgiving break. If you were celebrating it, I hope it was a good one!
I was going through my usual feeds in Google reader and I came across a new post title "The Two Types of Programmers" by Jeff Atwood. In this post Jeff seems to be completely retracting his post that he made earlier on how books such as "Teach Yourself Asp.net in 24 Hours" cheapens our craft. Honestly I didn’t agree with Jeff’s first post, and now I also don’t agree with the conclusions that Jeff makes in this post either.
In Jeff’s first post he starts talking about Scott Mitchell’s new book "Teach Yourself Asp.net 2.0 in 24 Hours." and how titles like that cheapen our craft because it takes so much longer than that in order to really learn any technology. To quote the post:
Yes, the book title is just marketing hype to drive sales. It isn’t meant to be a rational statement of expectactions. The implication that you can learn a giant swath of technology like ASP.NET 2.0 in 24 hours, much less become competent in it, is funny to those of us who know better. That part is obvious. But on a deeper level, it’s also offensive. It implies that the field of software development is so shallow that a complete beginner can become competent in 24 hours. Yes, we know better, but not everyone does. And the type of people buying this book most certainly won’t know what they’re getting themselves into.
The last two sentences are what really sticks me. Saying "Yes, we know better" and "the type of people buying this book most certainly won’t know what they’re getting themselves into" is making a pretty broad generalization that people buying these books actually think that they can learn Asp.net in 24 hours. Somehow I doubt that the majority of the people buying these books actually believe that. While I have only bought one of these books ever (It was called Teach Yourself XML in 24 hours, and actually that almost sounds doable 🙂 ) I can imagine that some people are drawn to the fact that the books give a very brief overview of a technology while breaking it down into discrete steps that can be accomplished in small amounts of time (most of them are broken down into 24 one hour lessons).
The reason that I purchased the "Teach Yourself XML in 24 hours" book so many years ago was because I had not dealt much with XML at the time, and I needed something to give me a quick high level overview of the technology without a lot of background and fluff (or what I thought to be fluff at the time). I looked at a bunch of books and at the time I honestly didn’t care about SGML and the history of this stuff (I was a newbie back then) I just wanted someone to show me how to form proper XML documents. And for its purpose, the book served it well. But was I an 80% developer at the time? No, of course I wasn’t, I was green, but I sure wasn’t an 80% developer. I was reading and absorbing anything I could get my hands on. I was less concerned with the background because at the time I was more concerned with learning the technology than learning what was behind it.
So, how does having books like this cheapen our craft? Is an Amish furniture maker worried about the guy working in the La-z-boy factory? Of course not. They serve entirely different customers. One person is looking for a decent piece of inexpensive furniture, and one person is looking for a quality, hand-built piece of furniture. Saying that having inexpensive furniture cheapens the craft of furniture making seems backwards to me, it seems like it would give it more value. Right now I am sitting on a piece of crap couch that still cost me 1000 dollars, and if at the time I could have afforded to buy something better I certainly would have. I appreciate nice furniture more because I have seen bad furniture.
Now, if you are operating on the assumption that having books like this is going to create cheap programmers, that do cheap work, then you are probably incorrect. But there is a *huge* market for cheap work and cheap software. Ignoring the fact that this market exists will only send more and more jobs overseas. (I am *not* saying that overseas programmers are bad, just that overseas labor is less expensive. There are many many skilled developers all over the world.) Some people simply will not pay to have quality software built, and for them the price is much more important than the quality of the software. I am not saying that this is a good thing, it is just the reality of business sometimes.
Jeff is working over at Vertigo and I would assume that they work with large clients with very deep pockets, and it is sometimes easy to forget that almost one fourth of all U.S. workers are employed by businesses with 20 or less employees. I personally work at one of these companies and we deal with these companies all day long. We do consulting for a lot of them and it is hard because we try to only employ alpha developers and so therefore we have to charge high hourly rates in order to turn a profit, but this is in direct contrast to what most of our customers want. A lot of them want "good enough" software at rock bottom prices, something that they have to go elsewhere for.
My point is that we need these two levels of developers because they serve two different purposes. One is (often) a higher paid employee who is given more challenging tasks, and the other usually does jobs that are more planned out and formulaic. While almost every field is made up of a majority of these types of people, in few fields beyond programming is there so much contempt for them. The one thing that we do have to realize though is that these are different types of people and you can’t really interchange them.
Some people refer to these people as Morts or 9 to 5ers, but I find "Morts" offensive and I find no reason to call them this just because they do not share our passion. I prefer the term 9 to 5ers because it carries less of a negative connotation.
This leads me to the statement that I really didn’t agree with in Jeff’s latest post:
I often think we’re wasting our time writing blogs which are largely read by the same 20%. In my experience, there’s precious little trickle-down effect from the alpha programmers to everyone else.
This statement really doesn’t make much sense to me. Why would we be wasting our time when we are aiming our blogs at the 20% of our field that are going to actually read what we write? I think that any developer who is actively reading development books and blogs is not an 80% developer. And of course there is very little trickle down to the 80% because they don’t share our passion! They might have a passion for music, books, surfing, …whatever. They program to keep the lights on and the food in the fridge, but they don’t have a passion for software. Why would they want to spend their time learning about Linq when they can pick it up over time by looking at chunks of code that the alpha developers wrote?
So, in the end I don’t think that you can really reach the 80% developer because by definition if they starting reading and programming in their free time then they are becoming a 20% developer. This is not something that you can teach though, at their very start they have to want to learn and better themselves and they have to have the internal drive to do this. No book or blog post is going to change that, because the real different between an 80 and a 20 developer is not whether or not they can write a Lisp compiler, but whether they have the passion and determination to learn and perfect their craft. So keep on programming, reading, and learning because you don’t care as much as you do because someone talked you into it one day, you care as much as you do because you love the challenge and you can’t imagine it being any other way.
Loved the article? Hated it? Didn’t even read it?
We’d love to hear from you.