Wednesday, September 23, 2009

Ten types of Programmer you will 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 otherprogrammers 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.

Monday, September 08, 2008

SQL Server 2008

Katmai is finally out!!!.
All along through the beta testing releases, M$ have been able to whet our appetietes for the massive cool features that are bundled in the long awaited release of Katmai.
I personnaly have been in the forefront of the Katmai crusade.........:) ok I admit I am sort of an M$ kiddie..... Nways I would have documented all the new features here but am too lazy for that....besides others have beat me to it :)......... so u can find ur answers to wats new in katmai here, here and over here.
Happy reading

Wednesday, October 31, 2007

What happens to non-clustered indexes when the table structure changes

Ever wondered?
I have. Found this well written Paul S. Randal article which you can find over here
Hope it answers your questions like it did mine.

Saturday, April 14, 2007

133t 5p34|< (Leet Speak)

I dont usually consider myself a geek..........but like everyone I'd like to be considered geeky once in a while ;)
So I am learning 133t 5p34< ......ok..........I know it looks like some egyptian epitaph ....but its actually english......."Leet Speak" to be precise
133t is a "Cipher" used in gamer, hacker, programmers and geek circles. I know most of you who have downloaded software especially opensource stuff have come across this "gibberish" symbols....me too. Up until recently I never made much of it....... but now.......am all crazy about it.

So what exactly is 133t 5p34< ?......this is what wikipedia says "a writing system used primarily on the Internet, but nowadays also in most online video games as well, which uses various combinations of alphanumerics to replace proper letters."

Its relatively straight forward and great fun too....... now I can embbed comments in my lines of code that really express my state of mind lest I offend the code reviewers........muhahaha....evil evil laugh......... so I have been trying out some 133t and I must say I am getting quite "3133t"

7h3 9vi(< 8^o/\n /=0x jvmp5 o\/3^ +h3 _42`/ )09
the quick brown fox jumps over the lazy dog

bet u had not figured that out...............pretty cool yes?
Nway to read more about 133t check out http://en.wikipedia.org/wiki/Leet_speak
there is also an alphabet there....which by all means is not finite so u can get abitrarily clever and come up with your own :) .......oh and by the way GooGle has also gone 133t too!!!!

so get cracking and be 3133t ...... like me ;)

Thursday, February 15, 2007

Romancing dotNet

Well Valentines came and passed. I came across these......er...... interesting love letters to dotNET:

Declaring my love

One year later.....


cleverly written

Monday, December 11, 2006

Windows Vista - Really Un-Piratable?

Despite dificulties that have plagued MS in releasing their eagerly awaited OS Vista....its finally here. So whats all the fuss about it?......I mean its look and feel is not something that we haven't seen before.......those of u who have had a chance to use Mac's OS will definitely have nothing to write home about :) (litereally?)
Perhaps the greatest buzz has been the fact that Vista will present quite a challenge to the potential pirates..... I came across some interesting article on Vista's Corporate Activation
This time it may seem that its MS that are going to "Hearty Harr harr harr" all the way to the bank.

Wednesday, November 15, 2006

Choosing Your Server

This post is in respose to a query by one of our fellow bloggers BlackBird
To most of us the term "Servers" elicits pictures of "Tall,Dark physically intimidatin Machines, numerous connections, cold rooms, high Racks and horn rimmed techies who cannot construct a single sentence without the word Configure followed by a string of acronyms :) ".......Ok maybe I over exaggerate but am sure u get my drift...yes?

That image aside.....it helps to see a server as nothing but a conduit for information(Requests and Outputs).
bearing this in mind following simple guidlines can point u in the right direction:

1. What will your server be used for?: This is a very fundamental question. There are many kinds of servers out there each boasting various configurations. Keep in mind that these configs are for optimising the box to perform certain tasks. It would be otherwise "not very clever" to but a high end, multi core symmetric processing beast just to type letters :)..(again I over exaggerate)

2. What will you be serving: "Stuffed Turkey? or a black tea? ok this analogy may not sit well but I am trying to put across is that you should also consider the types of applications that you are going to run on your server......ever wondered why every piece of software comes with a minimum requirements list?........yes snoop around the ReadMe(s)....before you burn or cheapskate yourself into a useless setup.

3.The machine you use for a server doesn't have to be the friendliest machine available. As wonderful as graphical interfaces are, they don't make a lot of difference to the data flowing through the box. You can always use a prickly but efficient operating system for your server and do most of your work on the client anyway. If you take this really seriously, you may not even need a monitor for your server - you can often control the server from the client.

4. Read the following: Choosing a server for your Business

Finally and most commonly done: Ignore all of the above, go out there and get yourself a "Really Mean SOB!!!" :)

Additional links you could check out:
IBM Servers
Sun Servers
HP Servers

Keep us posted on what you eventaully settle for Cheers!!!