Live data from Hacker News

How to recognise a good programmer

inter-sections.net

21–30 of 51 posts

Re: How to recognise a good programmer

#21

Unfortunately, there are programmers that you could recognize using these criteria who produce highly idiosyncratic code that's nearly impossible for someone else to maintain for the months it takes for them to come up to speed. There are also programmers who would be recognized by this criteria who are just as insightful and productive who produce beautiful intention revealing code. How would we recognize the latter…

Make them read code.

Take a chunk of good code, a chunk of bad code (real code, not toy stuff), and ask them to explain it, find any bugs, and recommend improvements.

Re: How to recognise a good programmer

#22
I would look for the ability to think i.e., quickly and logically breaking a problem into its components and get to the essentials. Ask good questions along the way, and come up with a solution to the problem. Do this in an area outside their expertise.

Anyone who passes that test with flying colors and is interested and engaged while doing it has a first-rate mind. The rest is detail -- do they know this language? if not, do they want to learn it? can they work with other people? do other people want to work with them?

Valuing "passion" (in the 20-something hacker crowd) or a university degree (large software companies too numerous to name) over the ability to think clearly in the abstract are both unfortunately too common. It seems to me that either is more a tool for recognizing "people like us" than to actually identify a good programmer.

Re: How to recognise a good programmer

#23
post #19

I'm tired with people putting elite programmers on pedestals. I used to almost worship this one code guru at my company but I eventually moved on to just working on myself, taking up avocations outside of programming. I'm fortunate to be able to code/problem solve for a profession.

This is an article for recognizing good programmers, so you can hire them, not for other programmers to admire them.

Exactly.

Maybe you are contemptuous of them, but you have a business plan that involves having them work back-breaking hours for some founder's equity you will dilute down to the strength of Budweiser beer.

That sounds like sarcasm, but consider the case of salespeople. Many people have trouble liking salespeople, and many people do not admire them. But many businesses would close without good salespeople. So you try to find and hire the best salespeople you can find.

Wanting to put someone to work in a manner advantageous to your business is entirely orthogonal to putting them on a pedestal.

Re: How to recognise a good programmer

#24

The list of qualities here would indicate a good person in any profession, not just programming. I think these challenges only exist because we (as a society) have learned to accept schooling as the indicator of qualification.

Schooling might not work so well as qualification, but take care not to trivialize the problem. You can't really figure out how good someone is until you've worked with them, unless they have a long string of accomplishments. Schooling might be a little above noise, but at least it functions as a fairly reliable minimum bar.

Re: How to recognise a good programmer

#26

The list of qualities here would indicate a good person in any profession, not just programming. I think these challenges only exist because we (as a society) have learned to accept schooling as the indicator of qualification.

Schooling might not work so well as qualification, but take care not to trivialize the problem. You can't really figure out how good someone is until you've worked with them, unless they have a long string of accomplishments. Schooling might be a little above noise, but at least it functions as a fairly reliable minimum bar.

I disagree. I work with a brilliant coder who dropped out of high school.

Re: How to recognise a good programmer

#27

Unfortunately, there are programmers that you could recognize using these criteria who produce highly idiosyncratic code that's nearly impossible for someone else to maintain for the months it takes for them to come up to speed. There are also programmers who would be recognized by this criteria who are just as insightful and productive who produce beautiful intention revealing code. How would we recognize the latter…

Try asking them. "Hey, do you find most of your colleagues are familiar with your code or do you find most of them have trouble getting up to speed with it?" You can ask this question in a very neutral tone, one that implies that the colleagues may have been at fault. And then, be very careful to determine whether the colleagues really weren't at fault. If you're trying to hire a very smart person, you may find someo…

I've witnessed solo programmers writing brilliant but inscrutable code in Smalltalk. Bittorrent's code also fit this description for awhile. Someone who writes inscrutable code in J2EE in BigCo might do so because he's hobbled by their coding standards. But he might be one of those folks who is a brilliant coder but has no sense of what is intention revealing to those reading his code.

Re: How to recognise a good programmer

#28
I've got to say - In my experience, industry-based qualifications are more often than not a counter-indicator.

This was particularly true of the Java certifications during the dotcom boom - it was invariably the sign of someone who really just wanted to cash in... Out of the ten hires I was directly involved with, 6 were Java certified and 5 of those were absolutely terrible.

It might demonstrate a knowledge of Java, but at a very superficial level - even if you take someone with the best vocabulary in the world, it doesn't mean they'll be a good author.

A degree is a bit different. It at least demonstrates - a probable understanding of the fundamentals, the ability to stick at something and a certain level of exposure to broad ideas... Plenty of good programmers won't have degrees, but it's not a bad indicator none-the-less.

Re: How to recognise a good programmer

#30
post #26

Earlier quoted context omitted.

Schooling might not work so well as qualification, but take care not to trivialize the problem. You can't really figure out how good someone is until you've worked with them, unless they have a long string of accomplishments. Schooling might be a little above noise, but at least it functions as a fairly reliable minimum bar.

I disagree. I work with a brilliant coder who dropped out of high school.

I dropped out of highschool too; my point is that a degree in a technical discipline, from a tough school, will filter out many people who are incapable. It's the low bar to jump over. But by no means will all of the brilliant people have degrees, nor even decent looking credentials, on paper.
Post reply on HN