So What Is A Good Programmer Employee Anyway?

January 02, 2007

The article about Google using an algorithm in its search for better employees got me to thinking about what makes a good programmer-type employee?

If you read the job ads (I am looking for some short term contract work at the moment so it's relevant to me) you would think the perfect employee knows nothing but technologies X, Y and Z, has good verbal and written communication skills, and is willing to be work for peanuts. Yet some of the brightest programmers I have known or worked with were often times irritable, had poor communication skills, were capable of learning 12 new technologies a day and wanted to be paid well. Yet other programmers I have known and respected were completely the opposite.

Most of the average programmers I have worked with have been pretty poor at not only learning and applying new technologies but even going slightly beyond their comfort zone in the areas they are supposed to know.

It is odd how the job ads (and talking with recruiters as well) seem to indicate that all the client will accept is precisely what is written in the job request. If you do manage to get hired, you find the actual job and the people you work with bear little or no resemblance to the initial demand.

Of course there are jobs where you need to know X, Y and Z and nothing else, and the environment never changes, but I think the reality of the software industry is that everything changes.

Thus one measure of a good programmer is how well they can adapt and learn new languages, technologies, and methodologies while still being productive. If all you know is a single technology suite and have no experience in adapting to change, how does that make you a desirable employee? Unfortunately you never see that in a job ad. It might be that it's too hard to tell someone who knows nothing from something who can learn anything.

So if Google thinks it can find better employees with some unusual survey questions by tying features of their best employees with a set of non-work skills, then why not try.

The last two places I worked have gone through 30+ interviews and even more resumes trying to find even a single decent java programmer. Some of the people I interviewed I thought would have made a good employee despite not having the letter of the job requirement, but it's difficult to convince managers of that. Then again you often see people who in their resume seem perfect for the job but in the interview you discover they've never really done anything other than cookie cutter projects.

If I were hiring I would rather have someone with a history of delivering projects using a wide variety of technologies and languages (assuming they weren't just making that up) than someone who has done one thing 50 times.

My resume is full of projects with totally different technologies I did for my various employers (and my own) so I guess I would hire me. But it does make it more difficult to verify a resume since you can't easily prove ability to work with anything, as opposed to just repeating the few things you do every day for the past 5 years.

So maybe Google's approach has some merit and it may find special people they a more traditional (as traditional as Google every was) employee search would miss.