Developer

10 types of programmers you'll encounter in the field

Programmers enjoy a reputation for being peculiar people. In fact, even within the development community, there are certain programmer archetypes that other programmers find strange. Here are 10 types of programmers you are likely to run across.

Programmers enjoy a reputation for being peculiar people. In fact, even within the development community, there are certain programmer archetypes that other programmers find strange. Here are 10 types of programmers you are likely to run across. Can you think of any more?

Note: This information is also available as a PDF download.

#1: Gandalf

This programmer type looks like a short-list candidate to play Gandalf in The Lord of the Rings. He (or even she!) has a beard halfway to his knees, a goofy looking hat, and may wear a cape or a cloak in the winter. Luckily for the team, this person is just as adept at working magic as Gandalf. Unluckily for the team, they will need to endure hours of stories from Gandalf about how he or she to walk uphill both ways in the snow to drop off the punch cards at the computer room. The Gandalf type is your heaviest hitter, but you try to leave them in the rear and call them up only in times of desperation.

#2: The Martyr

In any other profession, The Martyr is simply a "workaholic." But in the development field, The Martyr goes beyond that and into another dimension. Workaholics at least go home to shower and sleep. The Martyr takes pride in sleeping at the desk amidst empty pizza boxes. The problem is, no one ever asked The Martyr to work like this. And he or she tries to guilt-trip the rest of the team with phrases like, "Yeah, go home and enjoy dinner. I'll finish up the next three week's worth of code tonight."

#3: Fanboy

Watch out for Fanboy. If he or she corners you, you're in for a three-hour lecture about the superiority of Dragonball Z compared to Gundam Wing, or why the Playstation 3 is better than the XB 360. Fanboy's workspace is filled with posters, action figures, and other knick-knacks related to some obsession, most likely imported from Japan. Not only are Fanboys obnoxious to deal with, they often put so much time into the obsession (both in and out of the office) that they have no clue when it comes to doing what they were hired to do.

#4: Vince Neil

This 40-something is a throwback to 1984 in all of the wrong ways. Sporting big hair, ripped stonewashed jeans, and a bandana here or there, Vince sits in the office humming Bon Jovi and Def Leppard tunes throughout the workday. This would not be so bad if "Pour Some Sugar on Me" was not so darned infectious.

Vince is generally a fun person to work with, and actually has a ton of experience, but just never grew up. But Vince becomes a hassle when he or she tries living the rock ‘n roll lifestyle to go with the hair and hi-tops. It's fairly hard to work with someone who carries a hangover to work every day.

#5: The Ninja

The Ninja is your team's MVP, and no one knows it. Like the legendary assassins, you do not know that The Ninja is even in the building or working, but you discover the evidence in the morning. You fire up the source control system and see that at 4 AM, The Ninja checked in code that addresses the problem you planned to spend all week working on, and you did not even know that The Ninja was aware of the project! See, while you were in Yet Another Meeting, The Ninja was working.

Ninjas are so stealthy, you might not even know their name, but you know that every project they're on seems to go much more smoothly. Tread carefully, though. The Ninja is a lone warrior; don't try to force him or her to work with rank and file.

#6: The Theoretician

The Theoretician knows everything there is to know about programming. He or she can spend four hours lecturing about the history of an obscure programming language or providing a proof of how the code you wrote is less than perfectly optimal and may take an extra three nanoseconds to run. The problem is, The Theoretician does not know a thing about software development. When The Theoretician writes code, it is so "elegant" that mere mortals cannot make sense of it. His or her favorite technique is recursion, and every block of code is tweaked to the max, at the expense of timelines and readability.

The Theoretician is also easily distracted. A simple task that should take an hour takes Theoreticians three months, since they decide that the existing tools are not sufficient and they must build new tools to build new libraries to build a whole new system that meets their high standards. The Theoretician can be turned into one of your best players, if you can get him or her to play within the boundaries of the project itself and stop spending time working on The Ultimate Sorting Algorithm.

#7: The Code Cowboy

The Code Cowboy is a force of nature that cannot be stopped. He or she is almost always a great programmer and can do work two or three times faster than anyone else. The problem is, at least half of that speed comes by cutting corners.  The Code Cowboy feels that checking code into source control takes too long, storing configuration data outside of the code itself takes too long, communicating with anyone else takes too long... you get the idea.

The Code Cowboy's code is a spaghetti code mess, because he or she was working so quickly that the needed refactoring never happened. Chances are, seven pages' worth of core functionality looks like the "don't do this" example of a programming textbook, but it magically works. The Code Cowboy definitely does not play well with others. And if you put two Code Cowboys on the same project, it is guaranteed to fail, as they trample on each other's changes and shoot each other in the foot.

Put a Code Cowboy on a project where hitting the deadline is more important than doing it right, and the code will be done just before deadline every time. The Code Cowboy is really just a loud, boisterous version of The Ninja. While The Ninja executes with surgical precision, The Code Cowboy is a raging bull and will gore anything that gets in the way.

#8: The Paratrooper

You know those movies where a sole commando is air-dropped deep behind enemy lines and comes out with the secret battle plans? That person in a software development shop is The Paratrooper. The Paratrooper is the last resort programmer you send in to save a dying project. Paratroopers lack the patience to work on a long-term assignment, but their best asset is an uncanny ability to learn an unfamiliar codebase and work within it. Other programmers might take weeks or months to learn enough about a project to effectively work on it; The Paratrooper takes hours or days. Paratroopers might not learn enough to work on the core of the code, but the lack of ramp-up time means that they can succeed where an entire team might fail.

#9: Mediocre Man

"Good enough" is the best you will ever get from Mediocre Man. Don't let the name fool you; there are female varieties of Mediocre Man too. And he or she always takes longer to produce worse code than anyone else on the team. "Slow and steady barely finishes the race" could describe Mediocre Man's projects. But Mediocre Man is always just "good enough" to remain employed.

When you interview this type, they can tell you a lot about the projects they've been involved with but not much about their actual involvement. Filtering out the Mediocre Man type is fairly easy: Ask for actual details of the work they've done, and they suddenly get a case of amnesia. Let them into your organization, though, and it might take years to get rid of them.

#10: The Evangelist

No matter what kind of environment you have, The Evangelist insists that it can be improved by throwing away all of your tools and processes and replacing them with something else. The Evangelist is actually the opposite of The Theoretician. The Evangelist is outspoken, knows an awful lot about software development, but performs very little actual programming.

The Evangelist is secretly a project manager or department manager at heart but lacks the knowledge or experience to make the jump. So until The Evangelist is able to get into a purely managerial role, everyone else needs to put up with his or her attempts to revolutionize the workplace.

About

Justin James is the Lead Architect for Conigent.

107 comments
nervouscat
nervouscat

In the public sector, it is easy to spot Mediocre Man.  Good enough for government work as the saying goes...

theonlyrealpersonhere
theonlyrealpersonhere

Missed the FRAUD. This is the guy with an IQ of 80 who wanted a "job in computing" for the prestige and the money. Since IT managers rarely exceed an IQ of 60, the FRAUD has managed to talk his way into 99% of the jobs going. Also missed the GRADUATE (closely related to the FRAUD). This is a guy with a degree in "computer science". There is, of course, no such thing as "computer science" unless you're an electronic engineer - in which case you have a proper degree (in electronic engineering). Programming is an art but since artists are born and not made, universities cannot actually teach the subject - which is why they all lied and called it science. Then again, just about anything passes for science these days. Take the great god 'Big Bang' for just one example. Religion must masquerade as science these days since religiomaniacs of all stripes are determined to take the world back into the Dark Ages - and they're succeeding. Just look what they've done to Iraq. You might think Iraq is a long way away but tomorrow it will be YOU.

rwilson
rwilson

You forgot the "CIA Programmer". That is the one that indugles in "magic number theory", i.e. "put the right 'magic number' in the 'right spot', and you can fix that, but also keeps the "right spot" and the "magic number" a secret . . . need to know and all that, you understand. These are the ones who have found where certain bugs are and how to work around them by "plugging" an instruction/value/whatever in just the right place but they don't feel the need to either document the issue and solution or correct the code . . . after all, unless you need to know it, why should they tell you?

erikmidtskogen
erikmidtskogen

Theoretician here. The problem is that your assessment isn't entirely correct. "Elegant" code is elegant precisely because it *is* so easy to read, understand, and maintain. And recursion? What's the big deal? It's just programming technique. And it's not even usually the most processor-efficient one, in contradiction to your inference. And you're mostly wrong about how quickly we work, too. OK, granted, if it's a small "throwaway" project of just a few days or weeks, it might be overkill to bring in an IOC container, an ORM tool, set up an automated build/integration tool, and create a comprehensive automated test suite. But on a project of any significant size, my own experience is that this initial investment of time actually results in the project getting finished sooner than if you try to go the Cowboy Coder route and just start flailing away. Not only that, but the result is a project with fewer defects, which can later be extended and maintained far more easily than some loosely held together pile of unreadable spaghetti.

bob.zormeir
bob.zormeir

Looks like the top ten lists have bottomed out. Next time, how about listing the top ten bad ideas for lists?

cajtech
cajtech

I am a "developer" only because the training sessions I completed said I was. C++, Visual Basic, etc. I know almost nothing about software/databases in general, but I know all I need to do ONE TASK. All I need is a help menu and I can program it correctly EVENTUALLY!! The code works as intended. Maybe it's "good code", maybe it's not. Here's the catch: I don't work for any software department, I work in the hardware side, so, my boss doesn't know if my code is "good" or on time or anything, but is impressed that I can make this computer work "like magic" In my current job, my bosses all know their stuff, and I have since learned actual skills, but have you encountered THE WANNABE?

etkinsd
etkinsd

dude were you stoned when you wrote that? what planet are you on?

dcastillo
dcastillo

you forgot about us 911 truth programmers, we are a lot we are smart and fast and we want the truth!

royhayward
royhayward

This guy/gal never enters a conversation without having had a better/worse experience. "At my last job..." is a common phrase that comes into play as the segue their way in. This also applies to software. No matter how well what is in place is working, they think it can be done better. (Primarily by a guy at his/her last job.) Often these are consultants, but not always. And they can be mistaken for the contrarian or the fanboy when not talking about technology.

Aaron A Baker
Aaron A Baker

You've done a good job of pointing out the worst in people, how about pointing out the Good Programmers, might make a change. I'm sure there must be at least Ten out there somewhere. I know quite a few excellent programmers personally, far more than Ten. So perhaps you would care to balance the act a little? Give credit where credit is due. Thank You Regards Aaron

bragr
bragr

Some of these are painfully familiar. Painfully familiar in the "why don't i keep a revolver with just one bullet next to my keyboard" kinda of way... Besides that very funny.

DigitalFrog
DigitalFrog

Personally, I've found I never trust a programmer who listens to country music and/or reads Zane Grey novels....

donp
donp

Funny! I couldn't help see people's faces as I read about each type - including my own. Actually I fit into more than one pigeon-hole! Good piece of writing Donald James Parker

Subayai
Subayai

1. The Dreamer: This person has no idea what it would take in time or resources to do something but they are passionate that can not only can it be done, but before the next sales manager meeting. 2. The Bureaucrat: This individual is all about process. They will not deviate from the established protocol and will viciously enforce the rules. They care not whether anything is ever delivered and would be perfectly content if no changes were ever made to the production environment. 3. The Executioner: This force in the business gets things done. They have read every aggressive management book ever published and now how to execute. They will hire contractors and then fire them in the first week if things don't look like they are getting done. They will hire employees, fire employees and reorganize the business to ensure their task gets finished when they want it. In their desire to have their thing done with little understanding of what "it" is, they are easily spoofed into believing it is done when it isn't. 4. The Vacillator: This person will never say "yes". They participate in requirements meetings but never commit to features or schedules. Instead they send a follow-up email with a completely new wish-list. After a rapid-prototype is built they decide they want to hire a management consultant to help them figure out what they want. 5. The Charlatan: This person works in the IT field but shouldn't. They have a degree in fine arts but somehow got a job as a business analyst. They tried their hand at building web pages but weren't very good at it. They spent most of their time in meetings, going on business trips and attending training classes on user-interface design because they don't actually understand the whole "requirements" thing.

Dr Dij
Dr Dij

Get out my binocs, my "Petersen's Guide to North American Programmers"; get up early and go to an area where I can match them up with the checklist. We can do counts, see how many are laying eggs, displaying for mates, or gathering yummy crunchy bug or caterpillars for the fledglings :)

Locrian_Lyric
Locrian_Lyric

Even "Mediocre Man". "Good enough" is good enough to assign to low-level projects, low-hanging fruit and low visibility projects. Various busywork that has to get done but would be a waste of more senior assets. The strenght of the theoratician is that he is also the one who can come up with new paradignms, and is the go-to guy if you are having serious efficiency issues and need a way to speed up processing time. Code cowboy is the only antidote to the management methusela who sat on the project specs until one month before it is due. "You want it done right, or do you want it done?" May be his credo, but sometimes you need to worry about *if* it works at all. The analogy I use is that if you need to get accross a river *today* then the golden gate bridge five years from now is useless. I've seen the works of 'code cowboy' be refined and integrated into permenant systems. I've been the maintenance coder to clean it up and it wasn't pretty, but it worked. To the Ninja, I would add a word of warning. If you're his manager, make sure he gets credit, or he'll be the first the beancounters let go, because he is invisible to them as well.

Tony Hopkinson
Tony Hopkinson

I specialise in the practical implementation of outre theories while skydiving into the ofice riding a bull, with a pointy hat. That's me in that hat, not the bull. No beard unless you count three days growth, but subtle and quick to anger... One type you missed is the plodder, the chap who's happy with jobs that normally you are searching desperately for a junior and delgation practice. Like align all the slightly misplaced controls in the UI. Another very valuable chap if you use him right. Types 1 - 8 I can work with, 9 and 10, the door is that way.

cloclutr
cloclutr

We all know him (yes, generally it's a 'him'). You can't possibly say anything about coding, software development, baseball or anything without him saying, "well, actually..." and then disagreeing with everything you've said. To test, go to a meeting with him and say, "I think the Holocaust was bad..." and just wait for the "well, actually...".

rrhqpusyrvkuw
rrhqpusyrvkuw

#12 Tech Fashionista knows about all the latest buzzwords and is too busy reading the latest tech blogs and textbooks to do any real work. If you want to know about ?Web 2.0? or the latest design pattern he is your man, but if asked to actually develop a system he wouldn?t know what to do. You would end up with a mess constructed out of incompatible latest software fashions that the rest of the team can't understand. Where he or she could be useful is to wow management or potential clients with knowledge of the ?bleeding edge? of programming.

whydoyoubneedthis
whydoyoubneedthis

#11 The Software Developer This is the person who works 40 hours weeks by communicating with the customer, prioritizing tasks effectively, taking time to consider all the levels of design, programming economically and robustly, and testing routinely. This person is typified by an ability to get the best results in a given amount of time with the least amount of hassle.

techrepublic
techrepublic

Aaargh, it's in my head now, get it out!

Editor's Picks