views:

979

answers:

21

Being the only programmer at work I receive many inquiries into how people should get started in a programming career. The first question I ask them is, "Do you write programs at home or do you code for fun?" I have never received a 'yes' answer to this question. I then proceed to ask why these people want to get into programming, most of the time they hem-and-haw around until they admit that they heard it was fun or they thought it would bring in more money.

Would you hire someone who admittedly does not (or did not at least at sometime in the past) write code on their own time?

+12  A: 

If I had to make a decision based purely on this one thing, my tendency would be to err on the side of not hiring someone good rather than hire someone bad.

The sort of programmers I want to hire are ones who do program for fun in their own time. This is more an issue for younger developers, especially out of college. If you never wrote a program that wasn't for a class, I'm probably not going to be impressed. Married people with lots of industry experience don't always have the time to do it, but it's a plus if they say they used to and would like to still but have other responsibilities.

However, these are just rule of thumb and lots of factors need to go into a hiring decision. If I met someone who seemed incredibly smart, was visionary in what they want to build and where they see the field going, was conversant in all technologies I wanted to talk about, and wrote great solutions to the coding questions I asked, I wouldn't let this one point stop me from hiring them. Raw intelligence counts for a lot.

jeffamaphone
+18  A: 

For me, it's more important to hire someone who is willing to learn. One could argue that if they really, truly willing to learn they'd do it at home, too. But for me it's about the commitment and attitude more than what they do/do not do in their spare time.

Wayne Hartman
Another good factor to watch for. Especially in the fresh out of college crowd.
jeffamaphone
In some cases the problem of not doing it at home may not be that they don't want to... just that they don't have any particular project they want to work on, that's not too big, and many of the FLOSS ones seem too intimidating (or what's FLOSS, or the small enough ones are already there. That's been my problem. The small problems have all been solved (for me anyways) and I don't believe reinventing the wheel. I have no idea where to start in the big interesting problems, and no mentor. Not enough motivation to do my own medium project on my own.
xenoterracide
+5  A: 

If they're qualified, certainly.

I work with many outstanding developers who keep a solid barrier between work and family.

cookre
Alright, but there might be more than work and family.
Fabian Steeg
True, lots of things, and even though I'm an inveterate coder for fun at home, I don't hold it against those who aren't.
cookre
+1  A: 

Depending on the qualification and experience then probably I would. But from what seems to be the case for most good programmers I've met is that they do work on their own projects in their free time. Some aspects of programming just aren't covered for everyone in the workplace, but independent research and practice helps to cover those missed skills. Being a good programmer and programming for fun seem to go hand in hand for most people

whatWhat
+10  A: 

No I would not.

A man walked up to Mozart and said, "Mozart, my son is interested in playing the piano and wants to know how to get started". Mozart said, "He should take piano lessons." The man said, "Well, that's not what you did." And Mozart replied, "I didn't have to ask."

Mark Beckwith
True enough, on the other hand though, Mozart was known for being quite a dick. :)
Serapth
+5  A: 

If somebody is not a programmer and did not write code professionally and also did not write code privately or in school, then they are not programmers. Whether you want to hire someone who is not a programmer as a programmer is up to you, but I would guess that the answer is no.

The impact of programming (especially in a team) is not "unsigned" - You can have positive contributions but also negative contributions. One has to get some sort of experience or schooling before they can work in the field.

If somebody does not want to take the commitment of school, learning programming on their own is a cheap and effective way of checking if they even like it.

Uri
+11  A: 

As a college student, I've noticed a clear difference between people who program just in class ("just at work") and those who incorporate it into their way of life (at home too). From my observation, people who program for fun have a very natural, deep understanding of what they're doing. They realize that day-to-day, repetitive tasks can be automated, so they do it.

ankur
+1  A: 

We ask exactly that question in our company and applicants who don't do any spare time programming are considered much less likely. It's not only that out of two applicants of the same age, education and career, the one who does spare time programming is most likely the more experienced one. More important, such people usually do something different at home, e.g. maintain open source projects, play with new technologies, etc. That's an incredible value for the employer.

On the other hand, chances rise that all nerd-cliches apply for such a person which eventually could render him an unacceptable co-worker, but we were pretty lucky with our people so far.

I must admit that I've never met people who became developers because they heard it was fun or brings money. People here tend to become whatever suits their interests and abilities. But I've heard very often that this is the case e.g. in India where choosing a profession is more driven by reputation than by personal interests and our offshore HR people place much more value on such questions.

digitalbreed
+3  A: 

I can imagine situations under which a good programmer might not ever work on his own projects. I find this easy because there were times in the past 30 years when it was not practical for me to do programming "from home", except to the extent it was written on paper (I used to be a brilliant pseudo-coder - had my own language and everything!)

Now, personally, I was the kind of person who was not stopped by something as trivial as the non-existence of personal computers - I've still got notebooks full of pseudo-code that was never implemented - but others I know decided to have a life instead. Some older coders may simply never have gotten started doing "at-home" projects, coming up in a time when it wasn't practical to do such things alone; or before we had the Internet to make collaboration on at-home projects practical, for those projects that would have required more than one person.

All the above is from the perspective of someone fortunate enough to have been born in the United States, at the time I was. I can easily imagine people in other parts of the world, even today, where there may not be access to useful computers from home, nor to useful collaboration on from-home projects. In these cases, I can easily imagine great programmers who simply could never get their best ideas into code, except when using the resources available at their jobs.

John Saunders
+9  A: 

If they have experience programming, then who cares whether they like to spend their evenings at home programming after they've already been programming all day at work?

  • Do accountants run Quickbooks at home for fun?
  • Do salesmen sell Amway to friends and family in their off hours for fun?
  • Do optometrists measure people's vision at home for fun?
  • Do pilots play flight simulators at home for fun?

Now if the programmer has no work experience, then sure, they're better off if they program at home so at least they have some experience, even if it's not paid.

But once you get a job where you spend all day programming, and particularly once you're married and have a kid or two, there are only so many hours in the day, and most of us don't spend all of them programming. We like to listen to music, or watch movies, or ride bicycles, or take our kids to the park, or go out to eat, or fix up the house, or do any number of other things.

Kyralessa
+1 - personal projects take a lot of time and energy. I'd rather have a life that involves things other than programming.
Jason Baker
+1 - great analogies
impulse3d
Q: Do optometrists measure people's vision at home for fun?" A: Only the really good ones: http://www.hollows.org.au/
corlettk
-1 few if any occupations, even medicine, change and go obsolete at the rate that the computer industry does. A few of your examples do work at home on their own time, dont see what quickbooks has to do with actual accountants, nor do I see what a software simulator has to do with a real pilot, of which many do have private (real) planes.
dwelch
Your examples may be valid, but I'd venture a guess and say that a lot more people program for fun than there are surgeons who perform surgery on the coffee table. When hiring a doctor, I doubt people really look into whether or not they invest personal time at home into it (which is kind of freaky, actually). And yes, many pilots do play flight simulators for fun. :)
Andrew Noyes
corlettk, what you've linked to is a different situation. I gather that the optometrists in your link do the work in their off hours for nobler reasons than merely the fact that optometry is so much fun that they can't stop themselves from doing it even when they're away from the office. It would be analogous to a programmer doing unpaid projects for a non-profit; which, certainly, some programmers do.
Kyralessa
dwelch, the point of using Quickbooks as an example is that it's for small-scale accounting. Most at-home programming projects are similarly small-scale.
Kyralessa
And I'm certainly not saying there's something *wrong* with programming at home for fun. I do it myself from time to time. But I think it's a mistake to insist on it when hiring someone. Hire someone who spends every night programming at home, and you're hiring an obsessive-compulsive with no life.
Kyralessa
+1  A: 

I routinely ask students what programs they have written for fun, on their own time. If they have not written any, or they are not enthusiastic about what they've done, I do not hire.

Norman Ramsey
+1  A: 

I work with three teams, comprising 15 programmers. They represent a full cross-section of the competency continium.

All but one of the competent programmers write code at home... a couple are involved in open source projects, a few in "after hours" commercial projects... developing & hosting commercial websites. One is involved in developing automatic tracking security-cameras, and facial recognition software. One is an onsite "PC doctor" come tutor on the weekends.

Funnilly enough, the best of us (IMHO) is the odd man out. By his own admission: He goes home to his kids and doesn't even think about a computer, or work, until 6 AM Monday.

Of the rest, none of them are really interested in "techie stuff"; and it shows in the quality of there work... they (mostly) just do what's asked of them, and no more. They don't get involved in our (often heated) discussions on "How to handle ${X}".

I personally find this attitude (or lack thereof) inexusable. I do not, and will not ever, go to a medical doctor who thinks of his/her work as "just a job"; and I really don't have a problem with extending the same "expectation of commitment" to other professions, especially my profession, which I am passionate about.

Wikipedia is one of the wonders of the modern world. Believe it baby.

BUT, I am not the management, for good reason. So... I try to keep my mouth shut, and get on with "stuff"... and anyway, who am I to judge. If the worste person in the world was an incompetent (or merely mediocre) computer programmer, the world would be a much happier place.

Cheers. Keith.

corlettk
+1  A: 

I am married with 2 children (ages 2 and 4) who I love to spend time with, but, I do find time to learn new concepts and apply them on my own time. I tend to not really pay attention to what my wife watches on TV as I am reading or doing something on the computer, at night.

I believe that if someone is passionate about what they do then they will do it on their own time also.

For example, a doctor passionate about helping others will volunteer to treat the poor for no pay.

If an accountant is passionate about their job, you may find them helping poor senior citizens with their income tax returns.

Passionate programmers may not be better programmers, but I believe that they will be better informed and have a broader range of experience than a person that just works for pay.

I would take it into account as having a degree doesn't tell me that this person really knows how to program, but if they can show me some projects where they have tried to push themselves or technology, then that will help me get a better idea not only what they do, but how they do it. Do they have any unit tests, for example?

James Black
+1  A: 

No, I wouldn't.

Is it really a big deal for the company/product? Maybe not.

Is it a big deal for me personally? Yes, what's fun to work with those people?

Kai Wang
+3  A: 

I started programming very young. I wanted to do it because it was cool to make things happen on a computer. That desire has never stopped, but I am busy with other things now (and more everyday it seems). So usually if I code at home, it's to explore new ideas/languages/frameworks and tools.

Based on my own personal experience, someone in software development who does not bother to download and try out new ideas/languages/frameworks and tools is always years behind. They only bother to do what they have to do to complete each individual task. That's a terrible thing, because the client(s), if not the team and itself and the environment you are working in, are usually years behind.

So, in conclusion, if they don't explore and read about new technology, they are not worth hiring. If they at least know what's new and out there, and what it is for, a smart and experienced developer will be able to apply that knowledge.

Richard Hein
+23  A: 

The industry is full of people who program "for work" but aren't particularly interested in the art of it. Finding people who program in their spare time is finding people who look at the task a bit differently.

Imagine for a moment:

  • A construction worker who builds for fun in his back yard
  • A woodworker who enjoys making his own furniture
  • An architect who draws sketches of imaginary building projects in his spare time

Certainly these people are the exception rather than the rule. You can practice your trade for fun, but many people don't. It's not expected, but you do tend to look at these exceptions as possessing something special. Now let's look at the other side:

Imagine for a moment; would you hire:

  • A musician who won't play music if she's not getting paid to do so
  • A cook who doesn't want to prepare his own meals
  • A painter who won't pick up a brush if not to work on a commissioned piece

When talking about these professionals, it seems out of the ordinary to expect that they wouldn't practice their trade for their own entertainment. Why? What's different? Clearly, these people are (expected to be) artists at whatever they're doing. Painting isn't just a 9 to 5, it's more of a calling, it's practically an identity. And it's special. When you say "I'm a painter," people say "Wow!" When you say "I'm an accountant," people say, "Oh."

When you're hiring, you really want to find a programming Da Vinci. You'll settle for someone who will put in his time to pick up his check, but you'd prefer to find someone who sees his projects like works of art, who does it because that's how he'd prefer to be spending his time.

Of the programmers I've associated with, 100% of the most productive ones work on programming in their spare time. And this difference isn't even close; a single (skilled) programming "artist," even one fresh out of of college, has the same average productivity after 1 year as a decent-sized team of experienced "at-work" coders. It can be embarassing.

So, when I hire, do I ask if they program in their spare time? Hell yes. Not directly, of course; that can be faked. Rather, I ask them to show me a project (and source code) for something they've built on their own. I ask them to explain what made them decide to write it, how they went about finding information on how to do it, etc. For the artists, this is like asking them to tell me about the time they won the lottery. You can really tell the difference with the people who do this because they love it. Not all "artists" are good at their art, but the ones who are can make a huge difference.

tylerl
Really a Great Answer!
mafutrct
A: 

Hey man ! This site has been thought up by one of the best-in-hire-developers guys around !

Name it: Joel Spolsky !

How about reading his stuff here:

  1. Go there.
  2. You may end up there !

You may find everything you need to be able to guess who may be a good developer or a bad developer. This is not about "writing programs for fun at home": this is about this and everything around everybody should know :)

Oliver

Olivier Pons
A: 

I assume that people that "program for fun" are usually considered "better" because:

  • They spend a lot more time with code, than just 8-5.
  • Actually love it.

That said,

  • People who constantly work don't have their "own time", that doesn't (necessarily) mean they can contribute less.
  • The overall is more important, I'm sure you would have hired someone in the caliber of (favorite mathematician/physicist) even if they don't code for fun.
Liran Orevi
A: 

It's a pretty simple difference between someone who loves programming and someone who just does it for a paycheck.

The person who does it for the paycheck spend 40+/- hours a week on work related programming projects.

The person who loves programming will spend that much time plus another 15+/- every week reading programming blogs, learning about new technologies, taking on unique projects or just mulling over something programming related in their head. In a single year they will have 780+/- hours more experience than someone who just does it for a paycheck. Multiply that number by how much you make hourly (factoring in benefits and your employer's half of the taxes) and you'll see who's worth more. A lot more.

Spencer Ruport
A: 

I want to hire passionate and independently motivated engineers.

If they don't program at home, I'm skeptical that they are passionate, but they might convince me.

Dustin Getz
A: 

It would certainly be an indicator, but nothing more. I'm not hiring somebody to code for fun at home, so it's not directly relevant, but may be a sign to watch for something else that is.

For example, on most programming jobs, there's been little or no opportunity to learn completely new programming languages. So if somebody isn't writing code for fun at home, that person might never get real exposure to new languages. (They still might be a good contract hire.)

Of course, contradictory indicators can be just as important. Does the programmer play music? That's one of the best indicators I've found of programming ability. And if you're a sufficiently serious musician, you might not always have time for writing code at home. If you're a good programmer and you get along with the team, then I'd hire.

Ken