I wouldn't hire someone who isn't passionate about programming. Many of the people I work with today rarely code outside of work - kids, hobbies, friends, etc. This is okay.
But what you really want is one of the guys who stayed up all night in college to bang out the latest and greatest piece of code. You want the people who genuinely love doing this - because there are twice as many people who slummed their way through CS doing the bare minimum necessary.
I work with both types, and as the former type I cannot stand working with the latter.
PS: There is a tendency to start doing side projects if there job stops directly involving coding because they start managing people, teaching, or just retire.
Ironically I've had the exact opposite experience. In professional life, the best I could say about any programmer who doesn't code in their spare time is that they're "ok." And more often than not, I'd call them pretty mediocre. I've yet to meet anyone great who doesn't do at least a little programming on the side. It's a great predictor of ability in my experience.
No offense to anyone here.
Saying that you didn't intend to offend doesn't give you carte blanche to say offensive things.
I'm one of those guys who doesn't code outside of work. I have a limited capacity for that kind of intense thinking, and since I'm using that capacity at work, I have to take time away to stay sharp. It's stupid and shortsighted to conclude that this makes me mediocre, even if everyone else in your limited life sample has been mediocre.
Also, for the record? Nothing you wrote was ironic.
The idea that doing intense work could sap your energy totally matches my experience.
I would find it hard to believe that you love solving problems with code, but never find the opportunity and necessity to do that outside of work. For periods of months perhaps? Sure, but over years? Never doing anything other than what's expected at your job? I'd find that hard to believe.
I'm sorry you're offended, but I think you're being way too defensive.
I certainly didn't make the stronger case that you seem to think I did; all I did was state my experience. If that's too much for you to hear, well, that says more about you than it does me.
There are probably tons of genius coders who never, ever code in their spare time. I just don't know any personally.
Since I default to respecting the experience and ability of everyone who posts here, I indeed found it ironic that my experience would differ so sharply from Retric's.
Oh, come on. I wasn't going to bring this up, but since you're playing the role of the civilized martyr, why don't you tell everyone how your first reaction was to send me an email calling me a "dickhead" for what I wrote? You have a funny way of "respecting" people.
No, I don't agree with you, but I had enough respect not to call you names, and I had the guts to say what I said in public.
You are acting like a child and at this point, I'm truly shocked by how pathetic and capricious you're acting in response to a stranger's statement about his experience with computer programming. I'll respond to this and then I'm done.
I wasn't going to bring this up, but ...
But of course you're gonna. Keep it classy.
... since you're playing the role of the civilized martyr ...
No martyrs here, just someone pointing out how intellectually nonsensical your reaction was.
why don't you tell everyone how your first reaction was to send me an email calling me a "dickhead" for what I wrote?
First off, you're taking that way out of context. Second, e-mailing you was far from my first reaction. My first reaction was to flame you back in this thread. I realized that wasn't contributing to the thread in any positive way, so I rewrote my response in a more constructive way, and added the little note "edited for tone and temper." I did that because I respect Hacker News.
Then I e-mailed you out of band to tell you (1) you misread my post, (2) you flamed me personally without provocation, so I thought it merited a personal response, (3) you seem like a smart guy, I have no problem with you beyond this little incident, and I really respect your work but (4) your vitriolic, misinformed flame unnecessarily made you look like a "defensive dickhead."
So writing you personally to address a personal issue was actually my third or fourth reaction and I thought it was quite appropriate to take personal sentiments outside of the thread here. Lest it descend to the flame war which you seem so intent on having.
You have a funny way of "respecting" people.
Now who's the martyr? I said that respect is my default. You coming out of the woodwork to flame me and call me "stupid" chips away at it. And you, hours later, still upset over nothing and choosing to bring up a personal communication out of context pretty much voids it.
And what you call "guts" I call absolutely pathetic. You've got a Ph.D. in Computational Biology and you're letting your feelings get hurt that someone, somewhere on the internet might think you're just an ok coder. And all that based on a completely innocuous statement not even directed at you. Not to mention, you go out of your way to attack someone personally and call them names based on this imagined slight, and then get sanctimonious when they call out your actions in a less than complimentary manner.
Your behavior here is bizarre and, to be frank, a little scary. You can flame on all you want, but I've got no interest in interacting with you or the thread further. The funny part is, I am actually sorry. I must have really hit a nerve and hurt your feelings to provoke this kind of response. Good luck to you and take care.
I certainly hope I never stop feeling like there's a lot more to learn. Once you start feeling that way, the challenges and the pleasure in overcoming them will most certainly end, which doesn't necessarily have anything to do with how much there's really left to learn.
There are so many things that are not solved yet. AI, in a human context comes to mind. Speach recognition, text to speach, image recognition are solved problems. Combining them into a seemingless intelligent experience (robot is optional), is not solved.
Master that, and you might become rich if you do.
We have the hardware so you could build a self balancing robot, that walks around and picks up trash by the road. It would be incredibly hard to build it yourself, but it's possible. However, we don't have the HW that would let you build a robot that can read a random book and the assignment and then write original essays which would consistently get's a 95 - 100% in English 101 at Harvard.
It shouldn't matter if you don't code outside of work and it isn't your employers business. But if you do code outside of work, it definitely says a lot about your character and how you regard technology.
My coworker said to me once, "There are those who do technology as a job, and there are those who do it as a passion. We want the latter"
Every company wants the best employees, but how many want to pay the best salaries?
Fact is, it's not always easy to determine the skill and aptitude levels of a prospective hire. Even if you can accurately pinpoint these things, a high skill level alone doesn't always translate into hard work as an employee. You can never know exactly how things are going to work out in the end, so your best bet is simply trying to raise your chances of making a good decision.
When it comes to coding, it's safe to say that the more time one spends doing it, the better one gets. There are tens of thousands of people who enjoy coding as a hobby, so why hire someone who doesn't?
If the programmer sitting in front of him for an interview doesn't program outside of work hours, how did he/she get the interview in the first place? His conclusion is that they must have been goofing off at work during the day on open source forums, blogging or using twitter.
For example, the guy who runs a personal blog, and put together his own widget to display some sort of stat, seems like a good idea. The guy who runs a personal blog, and spends a day (off) hunting down a widget that someone else made, that kind of does what he wants, and costs $20 to use, would not be a good fit.
My view on it is something similar to: I wouldn't take my car to a mechanic who takes his own car to the dealer. Why would I hire a a programmer who, when he needs a program written for himself, goes and finds someone else's work?
"I wouldn't take my car to a mechanic who takes his own car to the dealer." -- I see your point, but use your imagination a bit more. Perhaps there are really good mechanics out there who really love being mechanics but at the end of the day want to do something different than work on cars. In other words, you can love something and be good at it without it consuming all of your waking life.
You have to be careful with taking such a hard line. As a developer, I would hesitate to work with you.
EDIT: For the record, I work on lots of side projects outside of work.
My mechanic specializes in Asian/Japanese cars. He drives a BMW. The shop next to him specializes in BMWs. He could spend $1000s of dollars to get the special tools and equipment to fix his car. Or he could pop over to his neighbor, borrow 30 minutes of his time. His neighbor has the tools, training and competence to work on his BMW. He does not.
That is probably what the majority of real-world software development consists of, tho'. E.g. is every piece of software you use an absolutely perfect fit for your needs, and if not why haven't you rewritten it? Because that's not a good use of your time.
Also, this is seriously nasty ageism. Once you grow up the same thing will happen to you: significant others, friends, activities, hobbies, pets, kids, etc, most of which don't involve sitting on your ass in front of a computer. In fact, having put 10 years into this industry, I work a lot harder and better at my actual job if I don't spend all my off hours in front of a computer.
In the context of this discussion, however, if you were to ask during an interview "Talk about a personal programming project you've worked on recently" and you heard back:
Candidate A: "I don't do or think about coding outside of the office, but I did just recently spend $20 purchasing tool to upload images to flickr and I had to read the docs to configure it to work with my firewall."
Candidate B: "Well, I wanted to upload the 2,000 pictures of my son to flickr to share with my family, but doing that with the flickr web UI manually was taking a long time, and there isn't a good flickr uploader for Linux, so I hacked out a shell script that gets invoked when automount mounts my camera or flash drive that uploads the images to flickr with their API"
Is anyone seriously going to consider Candidate A, just based on this question, as more valuable for a coding/hacking/technology position? Obviously, other factors come into play, as techiferous points out elsewhere in this thread, but this is meant to show someone's passion, not if they have good judgement as to if something is worth doing (hopefully, you've got a battery of other interview questions that help determine that).
If passion is a good thing to have, how do you measure it other than with a question like this? And what would be a good way to measure unhealthy dedication to a hobby that could be obsessive compulsive?
1 - it's unreasonable to not ask why saving $20 is worth many hours of your life;
2 - Why would you assume that mucking about with php and wordpress, then validating front end code in ie{6,7,8}, ff, safari, and chrome is in any way fun for the vast majority of developers?
To create a better (real) example: I had a co-worker who, a while back, needed to have a handful of files converted from one somewhat obscure format to another. He already had a utility to do the conversions one at a time, but he needed to do several hundred of them and they took around a minute each to do by hand. He then spent all evening (by his words, I'm not sure how long that actually amounts to, but would guess in the 3-4 hour range from the way he talked about it) tracking down a software company that produced a bulk conversion utility, which charged $50 for the application to do it. When he told me about all the time he spent tracking it down, I asked him why he didn't just write it himself, since he definitely had the skills to write, at the very least, a script to read through the folder structure and do the conversions in the amount of time he spent looking for it. His response was that it just had never occurred to him to write it himself, despite the fact that he had the skill set to do it.
My previous example was due to the fact that I have seen many, many "companies" (read: high school/college kids with some php experience) offering widgets that could be hacked together in a couple of hours by anyone with a rough understanding of PHP and JQuery. They make their money by targeting a rather obscure, specific functionality, and waiting for someone to come along who just happens to need that function. In my discussions with a person who did this, he told me that he frequently gets emails about how a user had spent hours/days searching for something to do just that task, and that the widgets were often used on "tech" sites, where (I would think) the administrator should know at least basic PHP programming.
Judging passion is a different thing, but anyone reading this article and agreeing with the sentiment of it better be really careful about how they act about this during the interview process.
Discrimination is legal except for the few specific cases outlined in the various civil rights, equal pay, and age discrimination acts. Might as well take two minutes to research before making these types of posts.
Interviewer: Do you work on an open source project outside of work?
Candidate: No, I'm too busy looking after my kids and Church activities
Interviewer (thinking): Oh shit, I better have a damn good reason to give to HR if I reject this candidate...No, not in this case. This is relevant to the job. An employer can easily ask, "Do you have a software project portfolio?" or "What's your experience in python, professional or otherwise?" It's very much on-topic.
I'm not saying that external work and side projects can't lead to experience or knowledge that would make someone a good candidate. Someone might be qualified because of the work they've done on the side. But they can't be disqualified because of a lack of it.
That's kind of a meaningless statement. In a competitive atmosphere, not having a qualification is the same as being disqualified if the other guy has the qualification, and among programmers, the other guy usually does have that qualification.
I agree 100%.
For the record I have known many, many engineers who devote themselves 100% passionately to their 9-5 jobs and when they get home, they relax and do other things. These people are the type of people I would hire in my organization in a heartbeat.
I have also known the 'entrepreneurial' type of developers who have side projects and while they are generally good workers, a few of them are more interested in their side project then their actual day job and their work quality has suffered.
Hire the people with the skills and aptitude to do the job, leave their personal lives out of it.