What makes a good programmer?

January 12, 2008

A while ago I wrote a post in Portuguese about the lack of entrepreneurship and innovation among undergrads. I received a lot of comments from people complaining the fact that they didn’t do any projects apart from those required for school due to the lack of time and other excuses.

Well, here is a excellent, and I do agree with all of it about How to recognise a good programmer. If you are a business guy, you should definitely read this because it will sure help you when recruiting developers for your company. But I also see this post as a good reading for student who still have the time to learn from it. Here are some of the highlights for students like me:

I believe that good developers are always passionate about programming. Good developers would do some programming even if they weren’t being paid for it.
However, there’s a class of programmers that will (...) typically have learnt programming at university, and expect to get by on whatever skills they picked up there, plus whatever courses their company is willing to send them on. (...) A good programmer doesn’t need a training course to learn a new technology.
You wouldn’t look at them chattering away in the pub and think “what a bunch of geeks!” - at least until you approach a group and realise they’re talking about the best way to design a RESTful application with a heavy UI frontend.
I strongly believe that most good programmers will have a hidden iceberg or two like this that doesn’t appear on their CV or profile. Something they think isn’t really relevant, because it’s not “proper experience”, but which actually represents an awesome accomplishment. (...) “can you tell me about a personal project - even or especially one that’s completely irrelevant - that you did in your spare time, and that’s not on your CV?” If they can’t (unless their CV is 20 pages long), they’re probably not a good programmer.
Learning a new technology is one of the most fun things a programmer with any passion can do. So they’ll do it all the time, and accumulate a portfolio of things they’ve “played around with”.
(..) formal qualifications don’t mean squat when you’re trying to recognize a good programmer. Many good programmers will have a degree in Computer Science. Many won’t. Certifications, like MCSE or SCJP or the like, don’t mean anything either.

All I’ll make his my final words:

As a final note to this, in my experience most average or poor programmers start programming at university, for their Computer Science course. Most good programmers started programming long before, and the degree was just a natural continuation of their hobby. If your potential programmer didn’t do any programming before university, and all his experience starts when she got her first job, she’s probably not a good programmer.
Tagged with: en, education, programming
This post has 3 comments. Feel free to read them and leave your own.
i might aswell quit before i even start, i'm doomed. Starting to programme at 28, i must m«be crazy. Thanks for advising me :P
"Some programmers are awesome at 18. Others are awesome at 40. You can’t base your decisions about programmer quality on age"

It's a quote from the same post. Of course you learn better when you're young, and that's not only programming, it's everything.

Notice here "great programmers" is a really great thing. You can still be a good programmer even if you don't meet those patterns. And remember they are not always right. There are exceptions too!

( Sorte é que Portugal é pequeno )
anyways:

"all his experience starts when she got her first job"

ouchy

Although I agree with most of the quotes, I don't believe there's a magic formula to find a good programmer, people can be very, very, complex.

First comment of the original post by Richard, he points out exactly what's wrong with it:

"As someone that has programmed for nearly 15 years (hobby and professionally) with a background in psychological research I hate to say I find this “essay” not very scientific. This is all based on anecdotal evidence, stereotypes, and conclusions were reached without a solid methodology."

I really couldn't agree more.

"Can I find people that fit these bullet items that are good programmers? Sure, but I can also point to some really bad programmers that fit this model in nearly every way also."

From my own personal experience: this is so bloody true.

And to put it simple, get a psychologist, build a psychological profile on the programmer( or any other person you're thinking to employ ), let him work on a minor project for a while to see what she/he does, and evaluate that in context(based on his previous work, psych prof.), make her/him comfortable and not as being under the microscope, like you're in a savannah studying a lion's behaviour(lol), get to know the whole person, not the programmer only.( yeah I know, resources resources resources, it'd be much more simple if you could just see what he's done and Boom! we do(n't) have a programmer)

Of course, and as I said before, there's no magic formula and expect the unexpected.

Comment:

Author:
Email:
Website:
Comment:

About

I used to write in this blog, but I've found a better format to express myself. From now on, you may read my writings on ideas, programming and politics on my new wiki.

hCard

Name: Alcides Fonseca
Email:
MSN:
Gtalk:
Nov 24, 1988 40.197958, -8.408312

Tagcloud

Archives

Other links