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?

7
  • 6
    I wish it was , "skillful vs passion"
    – iamgopal
    Jan 17, 2011 at 11:37
  • 32
    -1 to the interviewee who admits to not having a passion for the job he is interviewing for. Jan 17, 2011 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, 2011 at 17:00
  • 4
    What if he lied about the passion or just was acting? Jan 17, 2011 at 22:29
  • 8
    +1 to the interviewee who admits to not having a passion for the job he is interviewing for, At least he is honest enough. Sep 10, 2011 at 2:19

19 Answers 19

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.

7
  • 6
    +1 ... at least the passionate one does not have a reason to leave ... unless he/she is too passionate.
    – Job
    Jan 17, 2011 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. Jan 17, 2011 at 7:03
  • 14
    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, 2011 at 9:45
  • 3
    +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. Jan 17, 2011 at 11:31
  • 5
    True, with one caveat. A passionate programmer may learn quickly. Sometimes, unfortunately, some people "just don't got it." Jan 17, 2011 at 17:11
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.

18
  • 7
    +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.) Jan 17, 2011 at 11:39
  • 9
    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? ... Jan 17, 2011 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? Jan 17, 2011 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, 2011 at 15:36
  • 32
    +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, 2011 at 16:59
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.

3
  • 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. Jan 17, 2011 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, 2011 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, 2011 at 18:37
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.

2
  • 7
    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, 2011 at 18:43
  • There is a difference between balancing work and home life and being apathetic, low energy, and suffocated. I don't think anyone was implying that experience was bad, just that experience without drive is basically like a super fast muscle car without a gas station.
    – jmort253
    Jan 18, 2011 at 6:59
12

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

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

2
  • Elaborate please - what did you mean by "take care of own business"?
    – Job
    Jan 17, 2011 at 2:34
  • 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, 2011 at 7:54
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.

2
  • 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, 2011 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. Jan 17, 2011 at 15:53
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

5
  • Bingo. I know to many "experienced" devs who know one language, the one they work in right now, and one tech for this and one for that... the ones they are using. Nothing else. And nothing else interests them. Jan 17, 2011 at 14:25
  • 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, 2011 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, 2011 at 15:08
  • There is not much in main stream programming that wasn't known in academics 20 years ago. With proper education, one doesn't have to try things out in one's spare time.
    – Sjoerd
    Jan 17, 2011 at 20:42
  • @Sjoerd LINQ - 20 years ago? They might know things in theory, but we all know practice is much different
    – billy.bob
    Jan 17, 2011 at 20:46
3

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

5
  • 3
    That's a cop out. Jan 17, 2011 at 7:42
  • Based on that argument, no beginners would ever be hired. You can’t get experience unless you have a job. Jan 17, 2011 at 11:38
  • only if you discount bad hiring practices, and that's a big if ;) There are some projects where you really need lots of programmers though (even if they then to run into Brooks's law) where you could cram in new beginners. Beginners/New grads also has a big benefit in that you can run them into the ground working day and night in your little company bubble before they grow up, know better and move along. That seems to have been Microsofts strategy atleast in the early days.
    – Homde
    Jan 17, 2011 at 12:28
  • 1
    so, how is it being a cynical bastard? ;-) Jan 17, 2011 at 14:27
  • Hey, it's not like I would do something like that :P But it's good to know business "practices" like that to avoid falling for them. Hopefully most have enough sense not to employ them. Besides, personally I believe that hiring a fewer but more skilled programmers and richly rewarding makes much more business sense and is more pleasant for everyone.
    – Homde
    Jan 17, 2011 at 14:43
2

Simple answer Go for Passionate one

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

1
  • ...or until the long hours being "passionate" about the craft leads to early burnout. Whichever comes sooner. Jan 18, 2011 at 19:12
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.

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.

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

1
  • 4
    I like how you answer your own question (or actually didn't) and then accepted it.
    – Pemdas
    Jan 25, 2011 at 4:32
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.

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

8
  • Quite the opposite I think - un-passionate (is that a word?) developers tend to be lazy developers, in my experience. They don't care about getting the job done right, they just care about getting it done. Jan 17, 2011 at 3:15
  • @leed25d - Not sure I agree. The last thing I want on my team are a bunch of fat cats sitting around sucking up all of the oxygen and wasting space.
    – jmort253
    Jan 17, 2011 at 3:16
  • You both are talking about energy not passion, it seems to me. I stand by my statement that 'passion' is a buzzword these days.
    – leed25d
    Jan 17, 2011 at 3:37
  • 3
    Never hire someone who doesn't care about what they do. It will show in your product.
    – Nicole
    Jan 17, 2011 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, 2011 at 8:33
-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.

2
  • Unless your boss is called O'Brien.
    – chiurox
    Jan 17, 2011 at 18:58
  • @chiurox: If i am the boss, i would always prefer the passionate guy.
    – Thalaivar
    Jan 22, 2014 at 14:47

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