How To Choose A Good Programmer


How To Choose A Good Programmer

This is a guide for nontechnical managers who need to hire programmers. If you are one of those managers, then you probably have a list of questions you ask in an interview that you think will help you decide if someone is good. I hope to convince you that these questions are misguided, and will actually help you hire worse programmers than random chance would.

I’m going to give advice about what to look for instead. This advice is based on my experience hiring (successfully) at Google. Google has a reputation for being hard to interview at, but it’s not because we try to trick candidates or make them do brain teasers. It’s because we try to get an accurate signal of their ability by giving them hard work and seeing how they do at it. If your process isn’t like this, then it’s easier than ours, and the advice will be even more useful.

You’re looking for high-quality, productive programmers, right?

No, you’re not. You don’t know what a high-quality programmer is; neither do I nor anyone else. We can recognize one when we see him, but we can’t describe the characteristics that make him good other than in vague terms like “knows what

How To Choose A Good Programmer

This essay is about how to choose a good programmer. It’s especially aimed at those people who are not themselves programmers, but who are hiring programmers.

The programmer you want is someone who can figure out what to do when the spec keeps changing and the only documentation is the code itself, which was written by a half-mad genius who left the company in a snit six months ago.

To find these people, you must talk to them while they work. You need to see firsthand how they think and how they solve problems. Forget everything you’ve read about interviewing techniques — all of it is worthless. What you’re trying to do is as different from a job interview as hunting for gold in Alaska is from going to the supermarket.

And yet both activities involve talking to people and asking them questions. So here’s a simple rule of thumb: The more the conversation reminds you of an interview, the less useful it is.

In an interview, there are very few ways for a candidate to prove himself except by answering questions. If he gets stuck on one question, maybe another will give him a chance to recover. And since interviews have no time limit, it doesn’t matter if he spends five minutes thinking before answering each

What is a good programmer? A good programmer is a person who writes code that works, but more importantly, who understands when and why it works. A good programmer can take an idea and make it into code, and take some code and make it into an idea.

What makes a good programmer? It helps to be smart, but being smart doesn’t guarantee success. Good programmers are at least as likely to succeed because they understand the problem they’re trying to solve. A good programmer also has an intuitive sense of what sort of solution will be easiest.

Good programmers have a healthy dose of both humility and pride. You don’t see many arrogant master chefs or surgeons; the most successful people in professions that require skill know that their success depends on both knowing their own limits and working hard to improve them.

How do you choose a good programmer? You need someone who’s smart, but you also need someone who knows how much he doesn’t know.

If you want to find a good programmer one way is to ask him or her about the problems they’ve solved in the past. Tell them about a problem you have, and see if they can think of some possible solutions. A truly great programmer would point out that maybe your real

There are a lot of programmers in the world, so many that they’re not special anymore. It’s hard to find good ones.

I’d like to say this is because there aren’t enough good programs around, but that’s not true: there are plenty of good programs, and some bad ones as well. (In this essay I won’t talk about bad programmers or bad programs; there are many reasons for them, and no easy solution.)

So why is it hard to find good programmers?**

A good programmer is someone who always looks both ways before crossing a one-way street.

A good programmer is someone who does not make the same mistake twice. Unfortunately, he does not always remember what the first mistake was.

A good programmer is someone who can convince you that “Hello World” is really the answer.

A good programmer is someone who can solve the Halting problem.

A good programmer is someone whose program contains no bugs and does something useful, but refuses to do anything else.

A good programmer is someone who knows his or her own limitations better than anyone else’s.

The most underrated trait of a good programmer is taste. I don’t mean the ability to decide between chocolate and vanilla, or whether this shade of blue matches that shade of green. I mean the ability to decide how a section of code should look when it’s finished, and then to write it that way without being told.

For example, here’s a small part of a web page rendering routine. It’s in Java, but that doesn’t really matter:

font = new Font(fontFamily, fontStyle, fontSize);

graphics.setFont(font);

metrics = getFontMetrics(font);

if (underline) {

Color baseForeground = graphics.getColor();

Color foreground = new Color(baseForeground.getRed(), baseForeground.getGreen(), baseForeground.getBlue());

graphics.setColor(foreground);

int descent = metrics.getDescent();

int yPos = y + ascent;

graphics.drawLine(x, yPos + descent / 2, x + width, yPos + descent / 2);

I’ve written a lot about hiring software engineers and I’ve had some pretty specific ideas on the subject. But recently, I found myself trying to distill all of this down into the simplest terms possible, so that any manager could understand it.

Ultimately, I came up with three questions:

1. Can they communicate?

2. Can they get things done?

3. Do they love to code?

It’s as simple as that. You can probably spend days or weeks interviewing someone and still not really know if they are good at their job or not. But if you can answer yes to these three questions, there’s a good chance you’ve hired someone who will be successful on your team.


Leave a Reply

Your email address will not be published.