84

I am in a position where I have to hire a programmer and have the option of 2 candidates, the first has experience but he doesn't have a passion for coding and he says so while the second doesn't have the experience but he has the passion, he did well in the interview and is certified.

We have the resources to train someone, but I really don't want to blow this process and hire someone who will be disappointing. Can anyone help me as to how to approach this situation?

yannis
  • 39,647
Duke
  • 303
  • 3
  • 7

19 Answers19

155

Hire the inexperienced programmer with a passion for the craft. A passionate programmer will learn quickly, care about his work and enjoy doing it. I've worked with both types of programmers and I would always hire the passionate type over the experienced.

People who don't care about their work eventually lead to problems in quality as well as in meeting deadlines.

Since you explicitly state that you have the resources to train someone, this is a no brainer. Hire the passionate programmer.

117

Whilst no one posting here is in a position to tell you which to hire, I'd like to offer a little counterpoint to the proceedings...

One of our most recent new starters is the absolute image of professional experience.

In at 9, out at 5, one hour for lunch. No lates, no weekends.

Which probibly sounds terrible to most of the people who have responded so far.

However, not only is his code better (clean, concise, patterned, understandable, maintainable, test, on time!) than most any other team member, he is also an excelent sounding board for the passionate devs when they think they are about to solve all of our woes is a single deployment, a fountain of knowledge, and a voice sanity saving us from ourselves.

He knows how to push back against pushy management. He can spot scope creep a mile down the road. He writes more unit tests than anyone else. He doesn't b*tch and moan when he gets lumped with a boring task, and he'll probably still be here in 5 years time.

(To add to my first answer)

How do you know the passionate bloke is passionate other than the fact he told you?

He might be doing his best keen face because he so desperately needs the job, people will say most anything to get a job at the moment

He might think he's passionate about coding, but will the sheen start to tarnish when he realises 99% of us don't write sexy code.

Experience is quantifiable and provable.

Experience know that day-to-day, most of us work on non-sexy systems and dirty legacy code. And Experience shows that they can still drag themselves out of bed in the morning to deal with that.

I would like to reiterate I am not telling anyone who to hire. I do not think experience is better than passion or vice versa. I am not on a massive downer about people who are passionate about coding, but I find it a little worry to see the lack of balance being presented here. All of the other top voted answers here make very good valid arguments (Matthew Kubicina, User 9094, Otávio Décio, Bernard Dy) and I have voted them as such even if I have reservations about some of their opinions.

50

I would say it depends on the rest of the team:

  • if you have a lot of experienced programmers already, then pick the passionate

  • if, on the other hand, you have only one or two experienced programmers plus many students/cheap-labor-with-little-experience-but-that-don't-cost-much, then the experienced one will be more useful.

wildpeaks
  • 2,711
20

"Experienced" doesn't necessarily mean "stuck in his ways"

As a mid-level experienced developer myself (I'm not quite 40), I am a little alarmed that the overwhelming majority of the answers here seem to imply that someone that has "been there, done that" doesn't know how to keep up with the youngsters. It's an unfair and dangerous assumption to make.

I would be interested to know what the experienced guy actually said. If he said "I have no passion for coding," then yes, I probably wouldn't consider him, the same way I probably wouldn't consider a vegetarian to be a butcher. If, however, his answers to "what do you do in your free time" wasn't about coding and the interviewer implied that that meant he had no passion for coding, it's something else altogether.

Note that I am not saying he should hire the experienced guy, or the passionate guy. I didn't interview either one, and have no idea of the culture of his company.

From Dictionary.com:
ex·pe·ri·enced    /ɪkˈspɪəriənst/ Show Spelled[ik-speer-ee-uhnst] –adjective

  1. wise or skillful in a particular field through experience: an experienced teacher.
  2. having learned through experience; taught by experience: experienced through adversity.
  3. endured; undergone; suffered through: experienced misfortunes.
    Origin: 1560–70; experience + -ed2

—Related forms non·ex·pe·ri·enced, adjective qua·si-ex·pe·ri·enced, adjective un·ex·pe·ri·enced, adjective well-ex·pe·ri·enced, adjective

—Synonyms 1. skilled, expert, practiced, veteran, accomplished, versed, adept, qualified.

12

Alternatively, pick the one with the highest StackOverflow score :D

wildpeaks
  • 2,711
11

You should hire the one that you identify as having the most interest in addressing your company's needs above all else. I've seen cases where a very good and passionate developer got hired only to quickly finish whatever he had to do for the paying employer and rushing to take care of his own business.

9

IT management consultant Paul Glen wrote about the concept of passion in the workplace in this essay for Computerworld. You might find it an interesting perspective, though I don't agree with Glen's implied assertion that passion and stability are mutually exclusive. I think you can have both. I'd suggest you also browse the comments following the article; some people had other insights.

That said, in your case, it does seem to be a choice between the two. But let's qualify what you mean when you say "passion."

When the experienced guy says he isn't passionate, is it that he doesn't care about the quality of work, or that programming just isn't his first love (perhaps he has a family? A lifelong interest in cars or music or home brewing?). Really, if an experienced guy isn't passionate about learning three new languages beyond what he already knows, but still keeps up with his main languages, tools, and such, and also home brews some beers, I think I can live with that.

But if the experienced guy is a terrible developer and doesn't care to improve, then I wouldn't call that passionless, I'd call it unprofessional. Thumbs down in that case.


EDIT: After reading some more answers, I thought I'd add a little. I think the difficulty is in the parameters of OP's question: we don't know which of the two developers is competent. We are focused on evaluating two traits seemingly at odds, though as I mentioned above, I believe you can have both experience and passion. However, both can be bad things too.

I worked with an experienced guy once that was smart, but also had spent most of his life developing in a vacuum. I spent as much time arguing with him as I did getting any work done. He was both experienced and passionate, but neither really helped my team.

Bernard Dy
  • 3,188
  • 28
  • 33
5

If you read Code Complete you would know that:

Experience doesn't matter as much as you think

This is because even the basics change constantly in the software field, this means that the experienced guy is stuck in his old ways and isn't interested in learning new things - year after year.

The passionate guy will almost certainly do this - even in his own time. I would hire passion over experience every time

billy.bob
  • 6,569
2

Neither

I'd never hire anyone who aren't passionate about their work unless it was a pretty menial task and perhaps not even then. Typically not having passion means that that they

1) are not enjoying what they do:

2) they are spending the minimum amount if time required doing it, aka "It's just a ob"

3) Are taking away from the atmosphere in your team/company rather than adding to it

On the other side, experience is crucially important for programmers, a passionate noob might be able to spend the 10 000 hours of experierence required to become an expert faster by sacrificing his "life" and other hobbies but it's still going to take a couple of years

Since experience is so much worth it's hardly offset economically by a marginally lower salary. So I'd say neither, go with someone with decent experience at least who's passionate. The younger (because they don't have any pesky kids and wives) and more passionate they are the less experience you can demand :)

Homde
  • 11,114
2

Simple answer Go for Passionate one

He/She will put his passion to make things better and will code for long time

1

its easy to mix passion for code versus passion for get a job (or passion for get a monthly check).

Also, its easy to mix experience with years of use a cubicle.

Anyways, a real experienced programmer can do from x2 to x10 than a novice, no matter if the novice have passion or not.

In opposite, a novice can spend you a lot of time doing stupid question, remember, most programmers are evaluated by their job, not by teaching others.

1

It sounds like you might need more information to make a decision. As a part of your interview process, did you have the candidates actually design or write any code? If not, maybe that is your next step. Think of a simple problem for them to work on and set them on that task for a short amount of time.

Review their work with them later in the interview. See how well they can explain their solution. Probe them to see if they can think of ways to improve what they've already delivered.

In my experience, putting developers through an 'audition' like this has been the best way to identify the candidates that are really worth hiring.

1

Passion doesn't always translate to skills. Sometimes passion == arrogance and inflexibility.

Experience doesn't always translate to skills. Sometimes experience == arrogance and inflexibility.

Bottom line: Hire the best person for the given job. This includes passion, experience, skills, personality, reliability, and don't forget tenacity.

Bill
  • 811
0

IMO depends on why the not-passionate person lost their passion. Did they have it at all? Would they rather be doing architecture than fiddling around with APIs and loops? Have they just been soured on seeing bad code/poor management that it made them just stop caring? Don't discount someone who says "I'm not passionate about my craft" because there may be valid reasons. Even the most passionate person will quickly lose their fire when they run into walls every time they try to show passion. Like the hamster who gets shocked, eventually they'll learn to just tow the party line and the passion gets lost.

Wayne Molina
  • 15,712
0

At the end of the day, experience means nothing without passion. An experienced person void of passion is never going to live up to their full potential, and they are not going to improve their skills. What you see is what you get, end of story.

Passion is a hot, burning fuel that can turn inexperience into experience. Passion can help solve problems that the experienced say are unsolvable. Passionate people will always be looking to improve. Passionate people don't give up.

Experienced people who have given up are like Gene Wilder's character in Blazing Saddles. He had all of this recognition as being the fastest gun in the west, yet all that experience meant absolutely nothing as he could no longer hold his weapon steady to shoot straight.

An experienced person who can't hold steady when it comes time to outperform the competition will only become a liability.

Go with the passionate person, or continue interviewing more candidates until you find the right mixture of fire and wisdom.

jmort253
  • 9,347
0

I feel, if you found that in an interview in-experience candidate performed technically good and also he is love to coding. So he will be more productive to your organisation after some time if he got trained properly as compared to the experience candidate.

If you want to eat test less food cooked by someone else, knowingly. Finally the choice is your's.

0

Wow guys this has stirred up a lot of debate in the end I decided to give the rookie a shot and he has great promise so far, to the point that I am so worried maybe he is working so hard that he'll burn out.

In the end I gave them a simple 10 minute programming task and discussed how they came about to their solution and other possible solutions, the pro's and cons and I just felt like the rookie seemed to have a sound understanding. So in the end I read a lot of articles but I felt like the young guy was a good choice.

There is nothing wrong with experience, but a lot of programmers go to work and spend their time daydreaming. You don't have to code in your spare time, a lot of us do but it's not a must. A competent programmer ought to spend his 40 hours at work each week solving problems and keeping up to date with his tools. The truth though is the divide between great and average programmers exists because in this profession an individual can just coast and just be an architectural astronaut.

Thank you all very much

Duke
  • 303
  • 3
  • 7
-1

I believe that passion is overrated a a selection point for a programmer. Hire the one who you think will stay on the job the longest.

leed25d
  • 1,129
-1

I would go with the passionate guy as he is willing to learn and would add great results if proper guidance and motivation is given to him.

Programming is always 2 + 2 = 4. Its never gonna change, and the passionate guy would add more results to it with more ways of producing the same result 4.

Thalaivar
  • 103