Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question

closed as not constructive by MichaelT, gnat, Kilian Foth, Joris Timmermans, GlenH7 May 14 '13 at 12:34

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

6  
I wish it was , "skillful vs passion" –  iamgopal Jan 17 '11 at 11:37
31  
-1 to the interviewee who admits to not having a passion for the job he is interviewing for. –  Wonko the Sane Jan 17 '11 at 14:30
1  
Please elaborate. Passion is a loaded word in this usage. Also it is not clear whether passion for coding means strictly for the coding phase of development or shorthand for software development. What do you need? Is meeting short-term goals the most important thing? –  mctylr Jan 17 '11 at 17:00
4  
What if he lied about the passion or just was acting? –  lukas Jan 17 '11 at 22:29
6  
+1 to the interviewee who admits to not having a passion for the job he is interviewing for, At least he is honest enough. –  Sarawut Positwinyu Sep 10 '11 at 2:19

20 Answers 20

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.

share|improve this answer
3  
Never hire someone who doesn't care about what they do. It will show in your product. –  NickC Jan 17 '11 at 7:29
1  
Programming is a mixture of technical skill and creativity - programmers without passion are missing half of that mix. In extreme cases even if their skills start off OK they'll rapidly degenerate. –  FinnNk Jan 17 '11 at 8:33

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.

share|improve this answer
4  
+1 ... at least the passionate one does not have a reason to leave ... unless he/she is too passionate. –  Job Jan 17 '11 at 2:35
10  
+1 There's a saying... "that guy has 1 years experience 7 times". A clear case where experience (of sorts) is not really working for you. –  quickly_now Jan 17 '11 at 7:03
13  
On top of that, a lot of "experienced" programmers are just people who have been around for a long time, not that they are good :p –  Philippe Jan 17 '11 at 9:45
2  
+1 Every time. It's a lot easier to gain experience than it is to restore passion and you don't need a "passion sump" in any team. –  middaparka Jan 17 '11 at 11:31
5  
True, with one caveat. A passionate programmer may learn quickly. Sometimes, unfortunately, some people "just don't got it." –  Wonko the Sane Jan 17 '11 at 17: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.

share|improve this answer
1  
@Job: I'd assume he'd work on his own agenda and do "gray-zone" work, i.e. not explicitly recommended nor forbidden. This might be a good boon to a project with many holes and rotten parts, but it usually disrupt the schedule/roadmap, at least in the short term. –  Macke Jan 17 '11 at 7:54

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.

share|improve this answer
13  
Unless Mr Experienced is bored, set in his ways, or disruptive. In which case you have a disaster on your hands. I've seen cases of experience people having so much experience that their way is the only one and true RIGHT WAY, so they refuse to work to company standards, disagree with strategy, complain about management... and turn corrosive. Passion can be destroyed but is also (if harnessed) a powerful force for enthusiasm and cutting through the crap. –  quickly_now Jan 17 '11 at 7:04
2  
I agree completely. I was actually about to write a post about how important experience is. A bunch of instant training cannot substitute 5-10 years (or more) of experience. It just comes down to the experienced programmer begin able to see all the pitfalls straight away. Also, I see that inexperienced programmers have a higher tendency to create much more complex solutions. So if you don't already have that level of experience in the development team, get it! –  Pete Jan 17 '11 at 11:47
1  
+1 THIS. As you can see from other answers, there are reasons to choose either way. So choose the one that best compliments your existing team and provides something you don't have a lot of. –  BlairHippo Jan 17 '11 at 18:37

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.

share|improve this answer

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

share|improve this answer

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.

share|improve this answer
3  
Yeah, I love my job, but I'm not 'passionate' enough to pull repeated all-nighters just because some manager hasn't got their act together. –  Benjol Jan 17 '11 at 9:29
1  
Excellent points, especially (IMO) in the edit. To continue down the same path, it is certainly possible to be passionate about, but still stink at, coding. I've worked with those guys, too. –  Wonko the Sane Jan 17 '11 at 15:53

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.

share|improve this answer

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 :)

share|improve this answer
3  
That's a cop out. –  dan_waterworth Jan 17 '11 at 7:42
1  
so, how is it being a cynical bastard? ;-) –  Jürgen A. Erhard Jan 17 '11 at 14:27

Simple answer Go for Passionate one

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

share|improve this answer

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.

share|improve this answer
5  
+1 That said, it sounds like the person in question is pretty damn passionate about coding. (I don't think there's any professional/passionate divide, in that sense.) –  middaparka Jan 17 '11 at 11:39
8  
He doesn't spend his free time writing code. He doesn't join in arguments about different bloggers opinion on the latest coding fad. He is always telling people to stop trying to make it so complicated. He is not a nerd and work is not his #1 prority in life. So how do you spot a "somewhat" passionate programmer? Does choosing a degree & career in programming not suggest some amount of passion? Just because the candidate doesn't identify as a fanatical ninja-uber-nerd who cracks off to StackOverflow, doesnt this just mean he's not a total geek who has a life outside of the office and? ... –  gingerbreadboy Jan 17 '11 at 12:23
4  
I did mention the catch though In at 9, out at 5, one hour for lunch. No lates, no weekends.. Also, is someone who writes clean, concise, patterned, understandable, maintainable, testable, on time code really too good to be true? Or just experienced and professional? –  gingerbreadboy Jan 17 '11 at 14:35
15  
The 9-5 may be experience speaking as well. By laying down the law, it forces management to plan accordingly and not try to overfill time. Overtime has a way of becoming a habit. –  MIA Jan 17 '11 at 15:36
28  
+1 for the 9-5 guy! Don't underestimate the programmer who just gets quietly on with the job and produces great results. Unfortunately management have a tendency to overlook these people for those who shout the loudest. At our place, going a week overdue and then proclaiming how hard you have worked to finish it tends to get noticed more than just getting it done on time in the first place. –  Qwerky Jan 17 '11 at 16:59

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

share|improve this answer
2  
Really? The SO community couldn't come up with a significant invention since 1980 that affected the basics of software, at least IMHO. Alan Kay is supposed to have a quote to this effect. –  justkt Jan 17 '11 at 14:55
1  
@Jae Superficially, I understand and agree with you. But I also know some developers that know several languages and code the same way in all of them: badly. I think the key is competence, as experience and passion can have both good and bad sides. If a team's developers are competent, then experience and passion are secondary traits that simply add texture to the team's composition. –  Bernard Dy Jan 17 '11 at 15:08

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.

share|improve this answer

"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.

share|improve this answer
5  
As a fellow near-40 industry vet who rarely fools around with code in his free time unless he has a very specific problem to solve, thank you. You don't need to take this job home with you to be good at it. –  BlairHippo Jan 17 '11 at 18:43

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.

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer
up vote 0 down vote accepted

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

share|improve this answer
3  
I like how you answer your own question (or actually didn't) and then accepted it. –  Pemdas Jan 25 '11 at 4:32

Hire both and let them do pair programming together!
Best of both worlds! :)

share|improve this answer
1  
This does not provide an answer to the question. To critique or request clarification from an author, leave a comment below their post - you can always comment on your own posts, and once you have sufficient reputation you will be able to comment on any post. –  Matthieu Aug 27 '12 at 19:20

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.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.