Contrary to myth, there aren't fourteen types of programmers. There are really only two, as Ben Collins-Sussman reminds us.
There are two "classes" of programmers in the world of software development: I'm going to call them the 20% and the 80%.The 20% folks are what many would call "alpha" programmers -- the leaders, trailblazers, trendsetters, the kind of folks that places like Google and Fog Creek software are obsessed with hiring. These folks were the first ones to install Linux at home in the 90's; the people who write lisp compilers and learn Haskell on weekends "just for fun"; they actively participate in open source projects; they're always aware of the latest, coolest new trends in programming and tools.
The 80% folks make up the bulk of the software development industry. They're not stupid; they're merely vocational. They went to school, learned just enough Java/C#/C++, then got a job writing internal apps for banks, governments, travel firms, law firms, etc. The world usually never sees their software. They use whatever tools Microsoft hands down to them -- usally VS.NET if they're doing C++, or maybe a GUI IDE like Eclipse or IntelliJ for Java development. They've never used Linux, and aren't very interested in it anyway. Many have never even used version control. If they have, it's only whatever tool shipped in the Microsoft box (like SourceSafe), or some ancient thing handed down to them. They know exactly enough to get their job done, then go home on the weekend and forget about computers.
As I work with teams of programmers in the field, I'm consistently struck by the yawning abyss between that 20% and the rest of the world. It makes the divide between the open-source and Microsoft camps look like a shallow ditch.
Shocking statement #1: Most of the software industry is made up of 80% programmers. Yes, most of the world is small Windows development shops, or small firms hiring internal programmers. Most companies have a few 20% folks, and they're usually the ones lobbying against pointy-haired bosses to change policies, or upgrade tools, or to use a sane version-control system.Shocking statement #2: Most alpha-geeks forget about shocking statement #1. People who work on open source software, participate in passionate cryptography arguments on Slashdot, and download the latest GIT releases are extremely likely to lose sight of the fact that "the 80%" exists at all. They get all excited about the latest Linux distro or AJAX toolkit or distributed SCM system, spend all weekend on it, blog about it… and then are confounded about why they can't get their office to start using it.
Perhaps not shocking to me, but an excellent and important reminder for everyone, nonetheless.
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. And if there is, it takes decades. If you really want to change the software development status quo, if you want to make a difference this year, you have to help us reach outside our insular little group of alpha programmers and effect change in the other 80% of the world. And that is far, far more difficult than preaching to the converted 20%. It's why I admire people like Scott Mitchell so much, because he understands the importance of reaching out to the other 80%:
I like programming and really enjoy ASP.NET. I think it's neat and fun and interesting and cool how you can go from literally nothing to having a data-driven web application that can be used by people around the world in an amazingly fast amount of time. Furthermore, I want to spread that enthusiasm to folks. I want to say to those who may have never programmed, or to those who are using competing technologies, or to those who are just starting out - "Come over here and try out this ASP.NET stuff. Here, let me show you what it can do!" That's why I teach (which pays pennies compared to consulting). That's why I write (which pays better than teaching, but still is not anywhere near as lucrative as consulting). That's why I give free talks at local user groups and community-sponsored conferences here in Southern California. To get the word out!To me, saying that titles like Teach Yourself X in 24 Hours cheapen the craft is tantamount to saying, "Our club is full. Go away." It's not saying, "Let's welcome the newbies and get them excited about this technology." Rather, it's saying, "Newbies are ok, but they must first realize how hard this is, how hard we've worked, and how much more we know than them." I worry that such sentiment from the community will come across as pompousness to those very people whom we should be welcoming.
I wish this was easier for me, because I agree with Scott. I'm terrible at the things he's describing. I think the true measure of success isn't how many alpha geeks you can get to pay attention to you. It's how many typical, average programmers you've reached out to, if only in some small way. If you really care about the craft of software development, you'll help us build that bridge between the 20% and the 80%, too.
Update: This was a controversial post. See my followup to this post for further explanation.
These comments are embarassing. I wouldn't respond, either.
Will on November 27, 2007 1:29 AMSome people are poking fun at the spurious 80/20 statistic. Why not 60/30? 73/27? I think when you realise that 80/20 is the stuff of made up statistics you can understand the quote a little more. It's not about the numbers and it's not about the specifics.
[ICR] on November 27, 2007 1:40 AMYou can have pride in your job, you can be dedicated to your job but just because you don't do your job in your spare time doen't mean you're anything less than a professional.
You could compare it to mechanics - who's the better mechanic? The guy who works in kwik fit, or the guy that works in kwik fit who also has a 1970 Triumph Stag which he works on during the weekend?
When your work and your hobby collide, great, but it doesn't make you any better than someone whos don't.
tubs on November 27, 2007 2:13 AMHm... after reading some comments I felt compelled to contribute with my own take on the subject.
About good vs bad:
It's not about doing the job right. It's not about doing the right job. It's about doing the right job right. For this you probably don't want a Linux geek (who can only do the job right) nor a Microsoft-sellout-businessman (who can only do the right job) but rather a combo. To quote Matz:
"They are focusing on machines. But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves"
About 20/80:
You can make any arbitrary split between the good and the bad. 1/99, 20/80 or 0.1/99.9. What we can tell is that there's a huge difference between the best and the worst programmers (something like 100:1 or 10000:1) and that most people don't belong to the 100x-group (I don't).
As for the bell-curve: It's not. It's a log-normal pdf.
About where you belong:
Belonging to the top-20% is not difficult (20% of the developers belong to that group after all). If you've read one (1) CS book this year you probably belong to that group.
I'm not in one of those two groups and I even though I know some developers that fit in one of it, the most i know do not fit in.
I understand but pity the 20% group and don't understand the people fitting in the 80% group ...
Hinek on November 27, 2007 2:22 AMThose commenters who are rushing in the defence of Jeff with :
1. Don't take 20/80 too seriously : And why not? He quoted it and is the central theme of the post. He could have said the same thing without using these numbers.(and utterly out of context from a blog which was about something else completely)
2. I have the same feelings exactly : Prey tell how? Unless you are smoking something else , I cannot see how this post makes sense (The 80% use MS handdowns and one of the 20% uses ASP.net - I'm no brain surgeon but I can see the contradiction here)
This is what I think : The man can answer for himself. He maintains a blog for God's sake.
Wondering on November 27, 2007 2:32 AMWow
Just look at this backlash! Strange, as surely we all know we're the 80%ers - we have girlfriends, read books, take drugs go to gigs and read this blog (I believe that the 20%ers are way to busy reinventing wheels and ordering fatty foods online to read anything like this).
I don't think that Jeff was intending to offend anyone. I stand by my previous comment - namely that no one should be shocked that most programmers are in the 80% bracket - after all if we were in a minority then we'd be at least less than 50%.
Jeff, this should, though serve as a warning. I have seen, at least twice, you referred to in other blogs as belonging to a group called the internet Nazis.
Get out more, stop navel-gazing, and stop worrying so much about what other people do.
Oh yeah .... and there's 2 types of programmers my friend.... those who come in through the door, and those that come in through the window.
Red on November 27, 2007 2:38 AM(I can't believe I'm being sucked into this...)
"The 20% folks are what many would call "alpha" programmer..."
Well, more accurately, the 20% folks are what *the 20% folks* call "alpha" programmer.
The "rest of us" measure things by accomplishments. Let's see what the alphas consider the accomplishments necessary to join their little club:
1. First ones to install Linux at home in the 90's
2. The people who write lisp compilers and learn Haskell on weekends "just for fun"
3. They actively participate in open source projects
4. They're always aware of the latest, coolest new trends in programming and tools
5. Participate in passionate cryptography arguments on Slashdot
6. Download the latest GIT releases
7. They get all excited about the latest Linux distro or AJAX toolkit or distributed SCM system
8. Spend all weekend on it
9. Blog about it
10. Confounded about why they can’t get their office to start using it.
Of those top ten, only 2 and 3 might actually produce something. 5 and 9 are used to give some of their knowledge back to the community. Five of the other six items are pretty much self-centered activities. The last item actually points out a failure that they never bother addressing.
Would I want to join a club like this? As the late, great, Groucho Marx once said: "I refuse to belong to any club that will accept me as a member." I'd much rather be in the group that does things instead of the group that thinks they are better than the rest because they spend so much time *talking* about doing things.
Nevin :-) on November 27, 2007 3:24 AMI always find 80% of rules have a 20% minority referenced in them!
Roodiedoodie on November 27, 2007 3:49 AMOnce upon a time I worked with one of 'your' 20%'ers ... he was a total pain in the ass and everyone hated him. He wasn't actually smarter, or better, but he fit your 20% profile. He lived to code. He was passionate. He evangelised. He knew command line unix. He wasn't any good though. Did I mention he had no friends? We classified him as a HFAA - High Functioning Autistic Adult - something which it seems many of 'our kind' fall into.
I've also worked with damn brilliant guys who've never looked at Linux, don't care about open source, are self taught and progressed up through MS technology ranks and make a ton of money.
So,'your' list of 20%'ers sound more like losers than leaders. I'd rather have the impassioned discussion about crypto in a bar with 80%'ers, get drunk and be raucous, then go home and play some GTA.
'poop elitist crap' as others have so aptly said.
---
Regardless of profession, you either care about what you do and how well you do it, or you don't. I'd like to be a Hero, but I'm not naturally f'ing-brilliant-without-effort, so like most people out there, I have to work on it.
[Request: Please stick to technical articles that relate to coding or pitfalls in coding.]
Mr Sandman on November 27, 2007 4:03 AMI'm one of the 80%. Yay!
James Beswick on November 27, 2007 4:05 AMIt's true that ideas such as unit testing, proper version control and configuration management in general, adaptive planning ("agile" for the newbies), systems thinking, and so on seem to only achieve penetration in the general population surprisingly slowly - most of these ideas have been around for well over 20 years now.
And it's true that *some* of this is down to the difficulty of educating the bulk of the those focusing on implementing stuff with lots of messy real-world non-technological concerns.
After all, educating people is difficult enough even when they are primed and eager to learn. It's far more difficult when they are under constant pressure to deliver and time spent learning/self-educating is viewed as a luxury in many organisations.
But much of the problem introducting innovation comes because the organisations in question have settled into states where it isn't all that easy to change development in a whole new direction, and the 20% analytically bright people who are aware of the possible new directions are often frankly pretty *dim* when it comes to understanding why and how to get around this. This is because it involves an understanding of how people work together to create value (including the non-technical people) rather than just goings-on in the technological realm.
You're more valulable if you are prepared to work on both sides of the divide as the situation demands, eg are prepared both to make suggestions and to get your hands dirty with the hassle of maintaining real-world systems wand interacting with non-technical users hen the need arises.
The 80/20 is a rhetorical point to show a distinction between innovators and implementers. Both sides need each other and there is no shame (or particular glory) in being on either side. Many people will end up moving between categories at some point, in both directions, and this will tend to make them more valuable, not less.
Like some other commenters, I find the defensiveness many are showing here fascinating. Why so worried about a label that someone else is putting on you?
Matt Morris on November 27, 2007 4:26 AMAs I read some time ago on somebody's T-shirt: "I'm a lucky guy: I'm a Linux guru and I have a girlfried".
Matt: "Why so worried about a label that someone else is putting on you?" because I cannot help thinking who is this guy to put a label on me. You know, everybody feels special somehow and wants to put himself into a sort of enlightened minority. Coming to the conclusion that you fit into a large category and you are easily replaceable doesn't appeal to anybody.
In other words, reading the 20/80 theorem feels like hearing somebody saying: you have 8 out of 10 chances of being dumb and I have 10 out of 10 chances of being smart.
is this you're most commented on entry ever?
i write programs basically for me....to help me get my job done....almost noone ever gets to see them...
...and I like reading your blog ;)
-alex
alex on November 27, 2007 4:47 AMAlex, I think this one http://www.codinghorror.com/blog/archives/000781.html
still wins.
As a manager (I code very little any more) - I would appreciate your thoughts on how to avoid being called a "pointy hair boss"...
Rob on November 27, 2007 5:10 AMI don't know if anyone reads my comments but I do care...
I've been in this business for a long time and I've drifted from 20% to 80% and back to 20%.
I think what you need to do to stay in the 20% is to find something to keep ones self excited. I know a lot of you are very excited about ASP, the web etc. and rightfully so, however, I'm stuck in the mundane world of internal business apps and my excitement for ASP and .NET is beginning to wane.
So, what's a developer to do? Take on a huge personal challenge!
My latest interest is robotics and AI, in particular, the learning problem.
Now, why am I going on about this? Well because in order to remain in the top 20% of your field you have to have passion. You have to have a passion that is so strong that you dream about it. And if you have this plus at least half a brain you will succeed.
Like they said in Galaxy Quest; 'NEVER GIVE UP, NEVER SURRENDER.'
The point is, find something that excites you; that you are passionate about and then go for it.
Trust me, you will never regret it.
I can't agree with the 2 types thing. There's some of us in a little in-between world who never cared about linux sometimes do some coding on the weekend, but don't stop thinking about computers and are always pushing newer technology at work.
Maybe it's 20-5-75? ;)
Telos on November 27, 2007 5:59 AMIt seems like this blog posting started the classic "I am better than you" argument, and since I saw quite a few of these arguments before, here are my two cents.
These lists are usually started by a developer saying: "I am the most talented developer ever. Let me count the ways why I am so talented." Then the developers starts listing all the things he or she (actually, it is usually a "he" type of thing) does as a developer, and comes to the conclusion that this is how you become one of the 20%. I have worked with so many developers just like that (heck, I probably was one when I was younger) that I stopped taking them seriously.
So all you guys who got offended by that list - relax. Nothing is wrong with you. Some of you are more talented than others even if you never worked on an open source project in your life. There are things that are way more important to make you successful in your career.
Things like:
1) Can you take a requirements document and generate a design out of it, preferably one that is based on abstractions that would allow you to extend your code in the future?
2) Can you justify your design, choice of technology, and method of implementation and explain why it is better than the alternative? Can you actually list the alternatives?
3) Do you know what will happen to your code if 10K users would run it at the same time? Will it break? Will it scale? What if these 10K users are all the same hacker trying to break your system? Will he be successful? Did you even consider that option?
4) Can you mentor junior developers on your team or are you mostly focused on mocking them for their lack of knowledge?
5) Do you understand what value your work generates for your company (if at all) and what you need to do to maximize that value in the short-term and the long-term?
Final note - I liked reading the comments regarding the balance between work and life. It is usually a sign of maturity, not lack of skill, to recognize that there are things in life that are more important than writing a LISP compiler over the weekend. But of course, some people don't have life...
Go Sharks
At the risk of drowning myself in a sea of comments, I won't abstain from replying because this issue really drives me crazy.
I'm from that group of developers who refuse to belong to that 20% crowd mainly because I reject the idea of programming as a vocation. While I can spare some respect for the really brilliant type, I'm completely freaked out by all of these wannabe alpha geeks who hold on to their craft like some do to their Bible. As if the rest of us, the impure, were doomed to suffer in Programmer Hell.
Well, to be frank, I do suffer. I'm certainly enlightened enough to know that I'm in no way working for Heaven Inc. In fact, most of my working life has been about trying to live in a better pit, looking up, because it was dark all around. It took me a while to figure out that education and experience are no substitute to sharing a hobby with a group of qualified peers. You rarely get that privilege from work. Not unless you're, well, touched by the Programmer's Gods. And that's unlikely to happen after a lifetime in Hell...
Closer to reality, you don't need much programming genius to code the average Web application. With adequate tools and practises, I expect you can get a lot done by the 80% crowd -- who might incidentally impress everyone on aspects other than pure coding. So, if you don't mind, I will rather consider the 20% barrier as a tale for geeks who'd like to feel as part of an elite despite the fact that plain coders are only instrumental to those who hire them.
Luis Parenthesis on November 27, 2007 6:30 AMSo what is the ultimate point, that the 80% crowd isn't open to new ideas? I'm what I would consider an 80% programmer but does that make me a bad developer, or on that doesn't care about his craft or work? I enjoy learning new technologies, but I don't sit in a room with 3 monitors on all night trying to build the next Google. I read this blog, I read Hanselman's blog, I check out Java as well as MS articles to try and keep up. Is it bad that I choose to have a life beyond my pc? Should I be chastised for being one of the few programmers in the world that is actually in shape? Instead of sitting coding till 3 am I like to get up 2 times a week and play hockey at 6 am. So I wouldn't say I'm not being reached out to or I'm shunning the new technologies the 20% crowd is trying to trumet. I will say that I spend over 10 hours a day at a pc for work, why in the hell would I want to spend another minute more at one when I could be making a difference in the life of my kids by reading a book to them or teaching a hockey clinic to kids just learning to play or helping out at my local church or actually taking care of my house and the environment I live in? To me, this is stuff that actually matters and will actually contribute something to society, not trying to figure out how to build a better "mouse trap" to load data on a web page faster.
Tim on November 27, 2007 6:30 AMcurrently i am an "80%er" ,i am finding it quite difficult to dedicate myself to programming there is soo much to learn (i just started to code)and i am the lazy-reader type but i have the zeal to be a "20%er".i need to set my priorities right,curb the laziness and become more focused .
gogole on November 27, 2007 6:39 AMThis may have already been said, but frankly I am too busy to check the previous 200+ comments, so please forgive me.
This is no surprise. This is a universal truth with just about everything - careers, politics, whatever. Some people care and some don't and there is a huge huge gap in between. Think about the majority of the interactions you have throughout your day. Probably 1 in 5 cashiers/servers/attendants/etc you encounter are genuinely friendly, helpful, knowledgeable, etc. It isn't just in computerland. Look at the percentage of people who vote versus not. Then take that group that votes and you can again divide the 20% that actively give a damn enough to do something beyond just showing up once every four years.
Chaim Krause on November 27, 2007 6:40 AM"Those commenters who are rushing in the defence of Jeff with :"
I'm in defense of the actual value the post has which has been derailed by this 80/20 nonsence.
Wow. I never realized that to be considered to be among the top 20% in this industry, you had to have no life. That's sad.
Hutch on November 27, 2007 7:40 AMThere was a good post on Informit recently that addresses the need you're highlighting: 'awareness' resolving to 'leadership'. It discusses the 'Value Chain' as it relates to the SW industry.
If I had come across that orientation I wouldn't have been distracted by non-productive management activities and would have been extremely productive and focused. Instead, hoping to learn what I didn't know, I fell into a dead-end role that I'm just managing to drag myself out of. Long way to go still, but because 80% hasn't got it, there still has to be opportunity out there for me to work with.
I have no affiliation with either Informit or the author of that piece/book, I just want to be a leader and seek that type thinking.
Sans S on November 27, 2007 7:47 AMFolks, get a life and be an 80%er. There's a whole world out there beyond bits and bytes. When you're 65 years old you will have worked roughly 90,000 hours during your career (40 hours/week * 50 weeks/year * 45 years). Will you spend an additional 10 hours on the weekend to write that stupid lisp compiler, thereby spending an additional 23,400 hours over the course of 45 years? When you are 80 do you think all your bosses will be lining up to thank you, or do you think your kids will appreciate the time you took to play with them? I understand working a bit on the side for your own improvement, but this 80/20 argument is ridiculous. It sounds like a playground argument to me: "I'm smarter than you!" Take your paycheck and go home and enjoy your family. Cheers!
RealityCheck on November 27, 2007 7:47 AMWhich begs the question, what happened to us "old" 20%ers. Simple answer, we got old. The passion is still there, but the capacity for endless chasing after tech that has the shelf life of a banana is significantly reduced, partly by the futility of it all, but moreover the reality is that most of the so called innovations presented by new technologies are simply a rehash of old ideas in new clothes.
When you are an old 20%er you have likely found something other than the latest and greatest OS to be exciting or interesting. I know for me it is digital audio signal processing.
Finally, at some point all of us need to make a living, and get on in the world. Dot net and it's cousins are a means to that end. And the 80% world of coding is 98% of the world that pays real money dependably for code.
The other reality for 20%ers is that we are often successfully accused of lacking some of the social and networking skills that our 80% cousins thrive on. After all those are skills we have little time to pay attention to, when we are heads down in our digital dream world. But those skills pay real money. Eventually some of us figure this out, and begin to pay more attention to the things that people are willing to pay for, regardless of our opinion that they lack significant challenges. At some point an epiphany may transform that original thinking, when you realize that people are the key to every significant innovation. All software is made by people for people. The only question is which people. Most 20%ers start by preaching to the converted, and many never get past trying to out do one another. This is a shame, but it is inevitable. But when a breakthrough does happen, and 20%ers look to create great stuff for everyone, then they go to work for Microsoft, or Google. Or they create a Microsoft or a Google.
Michael on November 27, 2007 7:48 AMJeff,
I've considered you a lot of things, but this is the first time I've considered you an elitist.
philihp on November 27, 2007 7:50 AMThis post made me a blogger. http://passionet.blog.com/2349359/
Charles on November 27, 2007 7:57 AMIn any endeavor there are naturally a limited number of people you would consider to have virtuosity.
We can break down the nature of virtuosity itself into other subsets... and the rabbit hole goes deeper until we shockingly find ourself face to face with the realization that the hole never ends.
It is a natural human tendency to try to categorize, and it makes good business sense to create these categories to aid in decision making.
I was introduced to a different way of looking at programmers at a behavioral level. Those who know the language(s) so well they simply code the solution and its correct, and those who know the language just enough and debug their way to a solution.
Personally I find the behavioral approach to categorization far more constructive.
Nick Waters on November 27, 2007 8:04 AMThe perfect programmer you describe is a nightmare.
Charles on November 27, 2007 8:08 AMHey, 80%ers, stop whining over this post.
A few things:
) The blog post, though it hurts some of your feelings, is totally on target.
) There is no shame in being an 80%er - you have different life priorities.
) Though there are exceptions, people who install open source things usually are much better programmers / computer scientists. If you want to become much better, give it a try.
) If you are trying to be in the 20%, you already are. It is about drive and focus on this work.
I think it is important to remember that it is your life and you get to make the choices about how you spend your time on earth. If you don't want to be in the top 20% at programming and want to have a life, don't - and then don't defend yourself for your choices and don't expect that you should be paid as much or get as much respect at work.
Stop defending your life choices.
Dan on November 27, 2007 8:11 AMI wasn't defending my life choices (although I like them!). I'm merely pointing out the absurdity of defining people in the way that the 80/20 scenario purports. Life is not 80/20. It's fluid. Over the past 12 years of my working career I've been driven, worked hard, spent spare time to learn new technologies, developed LOTS of code that is running in the "real" world. Oh, and I've been doing just about every UNIX OS that's been around, as well as Windows dev. So I could easily claim to be in the so-called 20% camp if I wanted to. But I don't. It's absurd. There is no 80/20 divide. It would be much more accurate to say that there are some people who are passionate about software dev, AND they are lucky enough to find a job that offered something to be passionate about. That is harder to find than I ever expected. On the flip side, there are people who just don't care very much. It's true. I've seen it. But to delineate with this 80/20 characterization is just false. IMHO.
RealityCheck on November 27, 2007 8:27 AMThe first thing I always tell anyone who I talk to about what I do is that programming is a different way of thinking. The radical difference between programmer thought and normal human interaction is so vast that in order to relate it to others, you have to build an elaborate abstraction layer.
The thing is, you do have to let people know it's hard. In the case of 80% programmers, they need to know what they are getting into when they decide to stop using VS and start writing C++ and compile with Borland. In the case of people outside of programming, it always seems like they think it's so easy. "Oh, you just sit in a chair and type all day, you've got it hard." They have no idea what it's like to pound out brutal machine logic all day long and solve incredibly sofisticated problems with tools that they have to make first.
I once explained how hard it is to program to my roommate, who works on cars. He thinks his job is so much harder than mine just because it's physically strenuous, which I laugh at. I'm not shy of physical labor, but I've never been challenged by a car like I have by things like C++ or PHP. Here's how I explained it: "Imagine you have to assemble an entire late-model Ford, except you're blindfolded. All of the parts are laid out in front of you, but you have to physically find them, and see if they fit together. If you're lucky and the documentation is good, somebody is there to tell you how some of the parts fit together. Oh, and as for tools, you have to fabricate them all from scratch yourself."
His eyes literally got wide when I told him that. He had never imagined that programming could be so hard. This is why programmers are usually so grossly under-appreciated. All of the people out there who ever assembled a VB.NET project using Design View or put together an Access database or wrote a macro don't help either, because they like to sound like they know it all, when in fact they know almost nothing about programming. Unfortunately, most non-programmers don't know any better than to take their word for it.
Mattkins on November 27, 2007 8:30 AMFYI, I've written a followup post that apologizes for the original post that Jeff Atwood is so eagerly quoting. :-)
http://blog.red-bean.com/sussman/?p=82
Ben Collins-Sussman on November 27, 2007 8:44 AMJeff,
I just wanted to let you know that you're reaching at least 1. My skills put me solidly in the 80% although I am desperately trying to claw my way into the top 20%. Your blog posts may just help me get there. Thanks!
I think 20 / 80 is more like.
leaders and followers. This exists in all things.
except the followers in this case are lost.
Err ... This means that to be a good programmer you have to spend 90% of your time sitting in front of a computer. I'd prefer to be a sane programmer then ;)
Good post btw, as usual, if I may say ;)
Pierre on November 27, 2007 9:04 AMI disagree with those two groups; what about the group in the middle? I am aware of the latest trends and installed Linux in the 90s, but don't have the free time for OSS projects nor have I ever written a compiler. I certainly know my fair share more than the 80%, but perhaps I'm not quite up to the 20%. Where's the arbitrary group for people like me? How about... 25-30%?
My point is, I think the overall point of this post could have been made in a way that didn't involve segregating all programmers into two very different, very distinct groups. Not that I agree with the point in the first place; most "80%ers" are quite happy where they are and have interests that preclude them from really dedicating the time necessary to reach the upper echelons. I think it would help more if the 20% started yelling louder.
Tom on November 27, 2007 9:04 AM@Dan -
It isn't about defending life choices it's about the elitest (good word used here by others which describes this post precisely) arrogance in this blog post and many of the comments. Especially from people who honestly believe crap like: "people who install open source things usually are much better programmers / computer scientists." as if what software someone installs or uses has has any correlation to their value as a developer. It's the artificial bullshit tests like that and those in Jeff's blog post which are subsequently used to assume a developers worth that people have a problem with. Unfortunately the so called "20%" that are commenting here and defending Jeff's elitism with all the same ridiculous arguments are only propagating this supposed 80/20 divide that Jeff claims to want to bridge.
Mjoyal on November 27, 2007 9:37 AM
Ah Jeff, I think you stayed up too late trying to think of some content.
You're definately right...we all can't be the John Carmack's and Linus Torvalds of the world, writing compilers, coming up with a new protocol called Bit Torrent, but sometimes believe it or not this is by choice. Some of these individuals who have started a new trend or technology have dedicated a significant amount of time creating their work. And as a programmer we all know there just are never enough hours in the day. While, I'm sure I can lock myself into a closet a come up with say a new programming language why would I even do this? The whole damn point is stop re-creating the wheel so we can go home on the weekends to see our families. I'd rather be a diciplined 80% person working on the same banking software as you mentioned, making consitent money but more importantly seeing my family every night then be the 20% locked in a server room creating the next frankenstein, mutant language that will appeal to the masses. I'll leave it to someone else to do the dirty work. I'll leave it to you because life is not just about sitting in front of a computer screen for 80 hours a week.
And by the way...playing with the latest Ajax Toolkit or Linux distro doesn't put you in the 20% category. Are you trying to tell me your some elite innovate ground-breaking programmer god because you know how to burn a bootable .iso file to disk and run the Ubuntu live cd off your laptop that work gave you? I think not...lame...that's just lame.
I submit that your 80/20 observation is not that useful at the level of objectively classifying any one person in any meaningful way, especially for a particular task. I am a ninja at certain things that I doubt you have much awareness of (by virtue of the kinds of specialized projects I have worked on for years) and I am a complete idjit with regards to some of the currently popular stuff (parts of agile, certain design patterns, etc) and rusty on others (ASP.NET UI stuff). So for some tasks (e.g, building custom ETL solutions in certain vertical markets) I am in the top 1%; in others (game programming, assembly language) I am in the bottom 1%. Because I am a tad on the "been there/done that/got the t-shirt/little bothers or impresses me anymore" side, and do not for example learn Haskell on weekends (actually finding certain non-computer pusuits more entertaining, and having a life -- imagine that!) I would probably be a 70 percenter or even less to the casual observer.
So what?
Makes for a good blog post but I don't know how useful it really is. It's like arguing about which language is better. They're all better -- for something.
--Bob
Bob Grommes on November 27, 2007 9:53 AMThis is the most elitist shit you've written.
tsb on November 27, 2007 10:16 AMI'm shocked. I don't think I am either 80 or 20, and I resent the fact that you are trying to stereotype me into one. It's analogous to racism! Disappointing!
mt256 on November 27, 2007 10:31 AMI'm definitely in the 80% and I'll gladly answer your question as to "how to reach us". Keep it simple and remember that some of us are in that 80% because we simply have different minds. I program because I love problem-solving. Give me your awesome tools and give me a problem and let me do what I love. Don't try and make me understand how your tool communicates with the computer. That's your passion, not mine. I'd rather rearrange my sock drawer. Really. Because I enjoy that too.
Stephanie on November 27, 2007 10:51 AMIts a trade you guys, just like a plummer or a electrician or a mechanic.
shawn on November 27, 2007 11:04 AMI think I was a 80% until I started reading your blog... :)
UnderpaidLoveMonki on November 27, 2007 11:07 AMOk, is it possible to just say the article has a few good points, even though it misses the mark on a few items (such as there being "two" classes, what the split is, what defines the split, and which it is better to be)?
There are different types of programmers, correct. But there are many differences on more than just one big continuum.
There are differences in programming ability that go beyond any particular language or OS. An ability to think logically and find a solution that works for all cases, or to at least make sure all cases are covered; and to be able to cleanly write it up with whatever tools you have to pick from -- whether that's a huge list of personal favorites or a narrow, job-defined one or two.
There's the ambiguous "devotion to the craft" (and there's even the division between people who call it a craft and those who think such labels are pompous!) -- how much of your personal life do you devote to it? Do you read books, articles, take training for things you will never be paid for, because where you work does things differently? Do you spend hours interacting with your computer or with other humans, some of whom barely "get" email, which contributes nothing to your skillset? And, ultimately, which activity makes you feel better about yourself? The thing about this scale is that the further you are from one end or the other, the less you *want* to be on the opposite side. The cult of Torvalds has no desire to interact with the 40hr-per-week developer, and vice versa.
There's technique, which again is vague and could include anything from design models to source/version control designs. Some of which people get passionate about, while others see it as YALOT (Yet Another Layer of Tedium.)
Maybe there's something to be said for keeping up with what's new.
Maybe there's something to be said for concentrating on what you need to do the job you're paid for.
Maybe there's something to be said for donating time to open source or your own freeware/shareware offerings.
Maybe there's something to be said for your family seeing you other than through the home office door.
Maybe there's something to be said for a well defined, structured plan of attack.
Maybe there's something to be said for just being able to see the answer and making it happen.
Maybe there's a time and a place for everything.
I'll agree that the 80/20 distinction is non-existent and meaningless. If it did exist, and you want to be in the 20% band, you should do it for your own satisfaction and not anything else. Years ago I would have put myself there. I worked long hours, paid attention to each new technology, and installed and worked in various flavors of UNIX/Linux. I did a lot of script programming to automatically pull changes from source control, run make, and update the test environment as needed. Plus much more to automate away the tedious job tasks. I still use Linux to do the same. I was asked to solve the most difficult problems. I was the one to ask if a issue could not be solved. Yet, come review time, I'd get 'Excellent' at everything, and then get told I could not have a raise as I was already at the top of the salary band. I could not be promoted because I was irreplaceable. I attempted to train replacements, only to see them promoted to be my boss. So I'm in the 80% now, by choice. As I mentioned, I still play with Linux, and occasionally do my own projects on the weekends, but I find more satisfaction from playing with my kids and spending time with my family.
Tim on November 27, 2007 11:55 AMI think I'm somewhere between the 20% and the 80%. I spend a lot of time exploring new coding concepts and deciphering the work of others. I find learning other people's coding practices to be highly educational (I'm currently dissecting the entire code base for Eclipse).
I'm not a code monkey.
However, I am nowhere in the league of a Torvald.
Perhaps there should be three groups: 1% who are the ultra high-achievers, 19% who are talented but will probably never make substantial contributions to advancing software practices and then the 80% who ARE code monkeys.
Chris Andersen on November 27, 2007 12:02 PMWhat's really funny about this post is that Atwood probably wrote this assuming he's in the 20% group (when he most likely is not) :-)))
Stan on November 27, 2007 12:10 PMDamn, some people take offence easily.
Methinks thou doth protest too much.
Casey on November 27, 2007 12:14 PMWorking for a living in the 80% field, learning Objective-C, Cocoa and smalltalk in its FScript incarnation one evening hour at a time. Guess I'm in the top 20% of the 80%. ;-)
MaxL on November 27, 2007 12:26 PMI totally disagree. There was a post a while back on the 37 Signals blog about this. Something like how billions of people do something, every one of them would have a better life if they got better at it, but only the ones who are already very, very good study it to get better. I wish I could remember the specifics, it would make a more interesting comment, but ultimately the specifics don't matter. If you've got ways to make programming easier, or better, or more fun, there's a small audience that are very easy to persuade and a huge audience that is very difficult to persuade. Unless you enjoy persuasion challenges for their own sake, there's no benefit in targeting the 80%.
Giles Bowkett on November 27, 2007 12:54 PMThanks God im in part of 80%.
Pikpok on November 28, 2007 1:13 AMThe two most important kinds lie at the opposite ends of a bell curve of talent. The most interesting kind are statistical outliers on the right hand side. And an interesting answer would be to the question, how might we shift the great hump in the middle to the right?
Bob on November 28, 2007 1:46 AMthis is an oversimplification
yes there is a huge gap between the best and the most
but the 80/20 line is actually blurry in real life
sometimes i'm in the 20
other times the 80
because not every situation is the same
not every day is the same
i've been an early adopter, a crusader, an 'alpha geek'
and i've been a reto-luddite who doesnt care about the details
all depends on the situation
one thing that is true
the better, more skilled, talented programmers do share a profound distaste for stupid managers
I found the article interesting. I am clearly not of the 20% group described. I am however sympathetic to reaching out to those of us in the 80% group. To put it another way I am increasingly annoyed by Microsofts mega tools that do everything OK but nothing really well.
That all being said, I would also note that the company I work for wants to encourage those programmers/people in the 20% group and I find that counter productive. In any group there is only so much work that can be done on the cutting edge. Look we are loosing a war in Irag by relying on high tech weapons not on foot soldiers. Not every basketball player can be Micheal Jordon. I think the 20% group would be much more succesful at reaching out to the 80% group if they realized that the 80% group also has something to say. They are not just putting in time, they may not be as passionate about coding, they may have other interests, they may even just not be as smart but to develop products that work they are usually necessary. I worked with a person who I would say was part of the 20% group and not to put to nice a point on things he needed someone maintain and fix his code. Probably to boring for those elite 20% but necessary.
If I was a pie, I'd be an apple pie.
Jeff on November 28, 2007 2:27 AMGreat post.
I was going to post a comment, but there are so many already (many of whom seem to have missed the point somewhat).
I am one of the 30% who think they're in the top 20% of the 80% but are really 90% of the 20% between the bottom 70% and the top 10%. ... At least, that is true 27% of the time - the rest of the time I'm writing compilers for biochips so I really don't care.
- AJ ;)
I'd just also like to say "crock of poop" among all this elite company.
Stephan on November 28, 2007 2:54 AMI'm a Java developer and why I am no inovator , I love my job and I use Linux , Solaris and the Windows platforms. I do keep up with new trends,
but its not reasonable to to take on board every new concept and technology.
I don't write blogs or participate in disscussions all the time (well maybe this one)
So what am I? a 20% or 80%
I think some classifications there are a tad simple and wrong.
mannie on November 28, 2007 3:26 AMI don't mean to add fuel to the fire, but I think something similar happens in application development versus consulting. See http://www.curiouschap.com/?p=26. No flames please! :-)
Hisham Abboud on November 28, 2007 3:26 AMWell, there's something I've never heard before: "There are two types of people in the world. Great people, like me, who are rare alphas; and not-so-great people, the majority." I'd like to think I've moved on from the "me leader, you follow!" social skills of a gorilla.
I was running NetBSD/arm26 in 1995 at home, and Linux on spare PCs in high school in the same year; I prefer LISP and rule-based programming to the primitive C-based languages; I've read works like Knuth, the Dragon book, heaps of OS/concurrency literature and the Intel architecture reference manuals in my spare time; and occasionally I throw work I do into the public doamin. As for being aware of the "latest, coolest new trends" - have I just picked up a copy of iInformation Week/i? I'll follow real innovations in computer science or software engineering, but leave "cool" and "trendy" to the PHB, thanks.
But I would never, ever, class myself as "alpha", like I was part of some superior race of programmers. The 9-to-5-er shares my species, will be equipped with a brain with a range of abilities that sometimes fall short of and sometimes exceed my own, and I'd be a counterproductive ass to assume I am a better problem-solver. There are times when my range of understanding and knowledge is valuable, times when it is irrelevant, and times when precisely what I need is someone inot/i like me. I've worked with excellent, precise programmers who switch off at 5 to go straight to their family, and geeks who are impossible to collaborate with.
I realise clique mentality is part of primate nature, but you're equipped with a brain that can do more than see things in black and white - use it.
Anonymous Coward on November 28, 2007 3:27 AMif this 20% would have been 100%.... then there would be only leaders..no followers...
its ironic to say that.... without followers, a leader is insane...
I once told my freind: dude do something extraordinar, leave your marks on the world..
at this he replied: I am satisfied with just a secured job and few good friends around me..
Since then i understood that ...ever single person has got its value....
Umesh on November 28, 2007 4:36 AMyour world is so sad... just black or white, good or bad, ingenious or idtiotic
This is crap.
There are many more types of programmers than that.
Lots of people could give a crap about Linux because they want their efforts to go to something that changes the world -a product- instead of tinkering around with a not-ready-for-prime-time OS , which, as a category of software, is only good for getting something else done.
The type of people you describe as alpha are not alpha in my book at all. They're smart, but as an industry, we've got smart people falling out of trees. Really smart creative people that have a vision for how computers intersect with society in a larger way than an OS and can realize that vision in the actual world - they're real alpha programmers.
Or the Donald Knuths of the world, who exactly DON'T jump on every passing PHP STRUTS GIT JACKASS, er ... I mean AJAX bandwagon but actually advance our knowledge as a society and secure our future as a species. They're the REAL alpha programmers.
Or the people populating our universities, getting paid 55k a year and who are absolutely brilliant and publish their research in journals and in whose class you may have been lucky enough to sit- they're the real alpha programmers.
Not everyone YOU cited as alpha is a porn-downloading, online-gaming, forum-pontificating, semi-autistic, tunnel-visioned, egomaniac. But then, not every bird flies either, so that's not saying much.
yeahright on November 28, 2007 5:00 AMWhy reach out to the other 80? take the retrenchment money when it comes, and let the 80-now-100% take the office down with them. Live cheaply on the money and hack 80 hours a week on what i want to
forget the other 80 on November 28, 2007 5:04 AMFirst, I have to say that your "shocking" statements are only shocking to someone who lives in a cave.
Second, since I adopted OS/2 in the 90's, I guess I'm in some wierd bizarro .1% club that wanted their DOS and wanted to eat it too.
Third, I've always divided programmers into the 5% that knew how to program and the 95% that didn't but still got paid for it.
Perhaps number three is harsh. Certainly, the 95% can get things done, but they usually need help if they run up against something new, and generally get things done much slower than the 5%.
As for Linux vs Microsoft, doesn't matter one twit as far as determining how good someone is at programming. If you are dividing people up based on what tools they use then you aren't dividing them up by how good they are at what they do, you are dividing them up based on who agrees with you and who doesn't.
Dan on November 28, 2007 5:51 AM82% for me..
80% pays for my two 911's and three nice houses. 2% gets me the next contact.
Zipf's law holds. The majority of the benefit (or damage) is generated by the minority of a population. Keep in mind, there is rampant self-delusion among programmers. Weinberg conducted out a survey which found 90% of programmers consider themselves above average. The truth is worse. Knuth observed only about 1-2% of C.S. students "really get it". And if you are offended by elitism, I have to wonder how you might feel about mediocrity (or worse). Celebratory? Finally, as a self-appointed member of the top 20% (after all, I AM a graduate of MIT in CS with a subsequent MS in CS and 30 years professional experience):
Kneel... Kneel before Zod.
- General Zod, in Superman II
I would suggest at least two other types of programmer.
The 20 something Product Manager from Microsoft. You can't go to a Tech-Ed without tripping across hundreds of these guys. All young and smart and totally inexperienced at actually shipping a usable product.
And the Super-Dev. Steve Mcconnell wrote some interesting things about programmers. He stated something to the effect that if the average programmer was given a rating of 1 in terms of productivity and quality of code but by comparison great programmers were 10X better. But the really great programmers were 100X better.
And if your company is ever fortunate to ever hire one of these 100X programmers remember to keep them happy, hehe. 10% raise, corner office, whatever, it’s in your best interest to keep them working for you.
And at the other end of the scale you have the net negative code contributors (-10X programmer). That’s the person that messes up more than they create and actually moves your company backwards.
Davide on November 28, 2007 7:05 AM'Not even one reply to all this Jeff?'
Hahahaha! I think he knew that he would stir up emotions and is at the moment just sitting back and enjoying it all...
My 2c: I agree with the posters calling you elitist Jeff: 'our insular little group of alpha programmers'; puhleeze! You can take a leaf from Scott Mitchell (whom you quoted) who is one of the most humble developers on the planet.
This article received a lot of replies, and some people agreed with the author and as much disagreed with him as well. Personally I don't think it's that simple. In most shops, developers are just developers. Any good practice or standards have to come from the top. I wouldn't want to do all the stuffs that the "alpha" developers do (sometimes being on the edge is not always a good thing). I do want to be good at what ever I am doing, and many of the times I do look toward the "alpha" group to see what they're doing but I don't always agree with them.
slash on November 28, 2007 8:06 AMIf I was a pie, I'd be an apple pie.
Pies can't have babies.
http://whiteninjacomics.com/comics/pie.shtml
Jarrod on November 28, 2007 8:19 AMwhoever wrote this is an ass. To try to pigeon hole people into broad groups is just stupid. Obviously this was written by someone who thinks ( we have no confirmation... ) that he is part of some 20% of the programmers out there. Well la-di-frickin-da for you ace. I'd like to compare the average annual salaries of those in his "80%" group with those in his "20%" group. I have a sneaking suspicion his wondrous 20% would get the short end of that stick. Go get a life moron and stop nerding out online at 4 in the morning posting "i rule and am better than most of you" crap. There is enough garbage on the internet without you adding to it.
your momma on November 28, 2007 9:41 AMBy the post and most of the comments, here is what I think: 20% are Linux and Open Source devotes, and 80% just aren't.
It's sad to think someone's "better than you" (to use the mafia phrase) just because of the tool they work with, or what they do in their spare time. And by the way, I DO have my own blog, research a lot and happen to think I get a good job done. I think most of us feel that way.
It's not about wether you spend your spare time doing the same thing (with a different purpose) that you do on your everyday work or wether you get home to be with your familiy or play video games. It's about being commited to your work and growth as a professional and a person.
Hugone on November 28, 2007 9:48 AMNot even one reply to all this Jeff?
Adam on November 28, 2007 10:07 AMLet's not get too hung up about 20% and 80%. Those are not hard data. The numbers are merely used as an hyperbole to drive across a point. It is just an observation that's common in most industry and in life. Think of a bell curve. It can be seen everywhere.
jm on November 28, 2007 10:29 AMI'd say it's more like 10%, 10%, 20%, 40%, 10%, 10%.
10% - Top of the heap productive programmers. You can read their code and understand it. They are good programmers because they can take complex ideas and make them understandable. You learn things just by looking at their code.
10% - Smart enough to be top of the heap but they haven't learned how to simplify. They are in love with encapsulating encapsulated encapsulation and write some horrible code in the desire to make a single paradigm that works for every problem know to man. Looking at their code makes your eyes bleed.
20% - Pretty damn smart but just don't have the knowledge or breadth of experience to be a better programmer. They've probably been programming for many years and are still excited about programming.
40% - These are the 80%'ers referred to in the above article. I would also add that this group would include older programmers that might have been in a higher group but just kind of gave up.
10% - These are the new programmers, excited about programming but have no real experience. They talked their way into a job and are trying their best to learn on the job.
10% - And down here on the bottom of the totem pole you have the people that have no business being a programmer. They probably have a college degree in English or Business. They quickly realized they couldn't get a job in those fields so they took some courses on programming. Now they have somehow stumbled into a job, probably because they were hired by someone that in HR who also knows nothing about programming. These are the "programmers" that are constantly asking simple questions about how Windows works and how to compile.
'one of the most humble developers on the planet' - Karin J
Now unless you've actually met every developer on the planet that statement was quite a silly one. :)
Jeff on November 28, 2007 11:25 AMI would agree that this is pretty much crap.
There are two kinds of people in this world. The smart and the stupid.
Dan on November 28, 2007 12:03 PMAnd what is really funny is ... almost everyone here is firmly in the 20% bracket ...
You are reading a blog, and you are passionate enough about development to reply and give your opinions on it.
Sorry guys, much as you might not want to be labelled, or want to belong to any club that would have you as a member, you are in the 20% ... there are hundreds of thousands of developers out there who have *never* read a blog other than to copy/paste some sample code from a Google search.
Utter garbage, there is a continuum, not a divide, I have feet in both so-called types of programmer, when will people realise that the world is not digital, but far more messy and fractal.
Infernoz on November 28, 2007 12:54 PMSo, the "20%" are the ones that know what's best for everyone? Wow, what a slap in the face to the "80%" group. Such backward thinking... :-/
XO on November 29, 2007 1:06 AMHmmm... sounds like some kind of relgion for programmers? reaching out to others... passages from blogs? lol.
who are you? on November 29, 2007 1:11 AMHmmm... sounds like some kind of *religion for programmers? reaching out to others... passages from blogs? lol.
'Now unless you've actually met every developer on the planet that staement was quite a silly one' - Jeff
Of course I haven't. But I have been working in IT for about 20 years, have met quite a lot of arrogant developers (just see the blogpost at the top of this page) and very few (in the 20% category anyway) humble ones. But I read a lot of blogs and technical articles on the Web and Scott Mitchell is right up there in the 20%, helping newbies and not-so-newbies, and stayed humble through it all. You get my point?
KarinJ on November 29, 2007 2:47 AMI strongly disagree with the post. I've been working as a programmer since '83, and learned long ago that most software projects fail...often because you have an "alpha" know-it-all who can't help but drive others on the team nuts by trying to "teach," i.e., "impose" his/her "superior" method of programming on others. Or trying to cram the cool, new software development tool that they discovered over the weekend down the throats of others. "Alpha" programmers usually end up making things more complicated for the rest of the team.
The handful of projects I've been on that have been successful have been staffed by competent people who can learn new things, but they had lives outside of computers. Being able to work as part of a team is more important than being a geek. I'd actually be more inclined to hire the people who say they're in the 80% than people who say they are in the top 20%, because their egos probably wouldn't be out of control. (Although I wouldn't want to hire from the bottom 20%.)
Steve Sinai on November 29, 2007 5:59 AMRight or wrong, the 80/20 split you describe is about as useful as saying "80% of animal species live in the ocean and 20% are quadrupeds."
The taxonomy of programmers is nowhere near as clear-cut as you're trying to make it. I could just as easily arbitrarily say that there are 37 types of programmer and come up with a list as you can say there are two. (Granted, my list would take longer.)
To my experience, the two types of developers you're describing are both tiny minorities—the long tails out past three standard deviations on the bell curve, the supernovas and dark matter of development. I'd wager that every single developer reading this post and the one writing it all fall somewhere in between the two types you described.
Right or wrong, the 80/20 split you describe is about as useful as saying "80% of animal species live in the ocean and 20% are quadrupeds."
The taxonomy of programmers is nowhere near as clear-cut as you're trying to make it. I could just as easily arbitrarily say that there are 37 types of programmer and come up with a list as you can say there are two. (Granted, my list would take longer.)
To my experience, the two types of developers you're describing are both tiny minorities—the long tails out past three standard deviations on the bell curve, the supernovas and dark matter of development. I'd wager that every single developer reading this post and the one writing it all fall somewhere in between the two types you described.
Really, Jeff, this comes off as being the most elitist thing I've read in ages. And, not only elitist, but wrong. I consider myself in the 20%, but not the 20% you're talking about. You're describing that class of programmers that ranks knowledge about software technology highest in the list of skills a developer must have. Nowhere do you mention general software design skills, the ability to think abstractly, the ability to see the forest for the trees. These are the skills developers need. Developers should be interested in software technology, but only to the degree that some technologies help them get better at the skills I listed. And these are the skills we need to teach! Not "learn yet another obscure technology that has a couple of neat ideas in it but also some bigs flaws and will likely be forgotten in a year".
Michael Junkin on November 29, 2007 7:14 AMYou are missing the point with this. There are those embrace technology and blaze a trail into uncharted technology and there are those who use technology for the tool that it is intended to be.
Case and point: a calculator. In school I used a sharp scientific calculator that has 2 whole (count them) memory locations, while all of my engineering buddies had these behomoth HP's which they could program, and probably would levitate if you asked them to.
I could finish most tests in half the time, by knowing the material. Technology is only a tool when it is wielded correctly.
The bigger issue is textbook versus real world programmers. Textbook guys, have learned about classes and often scatter buzzwords like HLA, XML, OOP, OLE, FIFIFOFUM, etc., and they insist on using them. They laud the virtue of the 68000 architecture and curse those who like intel's design. These same yahoos ignore effieciency, size, and transportabiity in pursuit of the 'new' thing. These guys rarely succeed and actually delivering a product.
Real world guys continue to deliver. They tend to use lowly C (maybe even C++), and forsake newer trends. Their code is generally leaner, faster, and very tranportable. They also tend to be REAL engineers who use the tools to get their jobs done.
Both of these groups transend the 80% and 20% people that you mention.
In addition the love of Linux is not an indicator of anything. My experience is that many die-hard Linux folk would be unable to program a simple 6-line analog filter. In fact, most have never delivered a completed product in their entire life.
Doug Joseph on November 29, 2007 8:35 AMI'm gone to the dark side...I mean the 80%
musachy on November 29, 2007 10:06 AMAs an 80%er who just happens to have the training, intelligence, and job of a 20%er, I experience the 80/20 split painfully every day.
I think we need a back-and-forth excahnge of wisdom. In my experience, the 20% group knows very little about life or business. These people will never deliver anything on their own because they're too busy installing oddball CTPs and betas from Microsoft, or figuring out how to apply Model-View-Controller or the fricking Decorator Pattern to their wedding picture site (true story- and yes, the bride was incredibly desperate).
There is a happy medium. Right now those who have found this middle ground are probably using something like .NET 2.0. They're not excitedly blogging about F# hacks or LINQ 2.0, for example, but they're not using COBOL either.
Maybe the breakdown is 79/20, with the remaining 1% consisting of those rare individuals who, for example, can understand polymorphism without wanting to relentlessly play with it for 72 hours straight to the complete exclusion of any other activity or person.
So I like to think I'm a 1%er.
As a read this article I realized that I have characteristics of both sides. But in reality I am more of the 80%. I write more code for small needs and not many get to take advantage of what I have written because it may not apply to a specific need they have. I am mostly a web programmer that does software programming as a hobby. Though I work for a software company that I am trying to be a developer in.
I work with those that have the 80% mentally and those of the 20%. The problem with reaching the 80% is like you said once they are finsih with work they do not want to see or touch a computer unless to do finances, check email, stocks prices, etc... They learn the tools or technologies require to complete the tasks given to them by their shop. I do not think there is anything wrong with that part of the 80%, they do what they have to in order to pay the bills and keep their job.
There is no doubt that passionate folks can cause change in the workplace. But if you want the 80% to deal with the new technologies and cool items that are generated by the 20% that has to come through the decision makers that employee the 80%. This causing them to incorporate those items into the projects written by those programmers. Otherwise those 80% just do not have enough interest in it because it is like a luxury item to them. I could have it but I do not need it to get by.
Matt G on November 29, 2007 12:44 PMKarinJ - I know what you mean!
Well I guess if Scott Mitchell was a pie he'd be a humble pie then.
Jeff on November 30, 2007 1:39 AMYour blog is great. It can be beneficial to the 80% programmer.
On the other hand, using the convenient and productive tool is great like asp.net. Besides, writing code, there is a many other things to do at work. Using the latest function of any convenient software and programming tools helps a lot.
ppp on November 30, 2007 4:05 AMThe comments to this entry are closed.
|
|
Traffic Stats |