I Wouldn't Hire a Programmer With No Interest in Programming Outside of Work
github.com
github.com
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.
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.
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?
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.
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'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.
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.
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.
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.
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.
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.
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.
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?
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.
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.
I agree 100%.
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.
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...First of all, it's a heuristic. If a programmer doesn't program outside of work, it could be that they are not passionate and don't take the time to keep their skills sharp. It could also be that they are a polymath genius, and simply can't function unless their life is full of a variety of interests.
Hiring heuristics are appropriate when there are too many applicants. For the sake of efficiency, you need some way to narrow down the huge stack of applications. However, if you are having a hard time finding developers, that's not the time to use heuristics.
It tells me something about a prospective employer's problem-solving skills and imagination when they would not consider interviewing someone for a single reason, such as not having a blog. That's like being a one-issue voter.
Also, these heuristics have a way of confirming themselves. The person who hires only programmers who do X will probably end up finding decent programmers anyway, but they will be oblivious about the ones that got away.
Seems pretty reasonable to filter out people who are bad at their job.
So your argument is really one of breadth - breadth of the filter. From my point of view as a programmer, I certainly do believe that programming outside of your job is an extremely good predictor of passion, which is a great predictor of ability as a developer, particularly for younger people. I might consider a 40-year old who doesn't program for fun anymore, maybe. I wouldn't bother interviewing a 25 year old who never saw a point in coding outside of university/work.
Yes, I think that's the point. Is this a good predictor? If you are a young, single male, then maybe so. There are many other reasons besides lack of passion that can prevent a passionate programmer from programming outside of work.
Not that it matters. I have a great job.
Is it really necessary to explain that the point is that this person clearly isn't passionate about his work, as demonstrated by having zero outside interest in the subject. Clearly if he is a genius and has some amazing reason this doesn't apply.
More importantly the point of this article wasn't so much that he wouldn't be hired out of spite or something, but that he would never even get to know these people and thus get a chance to interview. This is of course obviously true and has nothing to do with "privacy" concerns. If you are an active member of the community, then you will inevitably meet other people in this field and get opportunities that just won't show up in the classifieds, there's nothing controversial about it.
http://www.fastcompany.com/magazine/06/writestuff.html
It's strictly an 8-to-5 kind of place -- there are late nights, but they're the exception. The programmers are intense, but low-key. Many of them have put in years of work either for IBM (which owned the shuttle group until 1994), or directly on the shuttle software. They're adults, with spouses and kids and lives beyond their remarkable software program.
6-7 hours of real work a day x 5 days a week x 48 weeks a year x 7 people can get huge amount of stuff done.
PS: The longer most people are at work each day, the lower percentage of the time they are actually getting stuff done.
Every other craftsman will use their talents for their own purposes, so it is generally a good sign if programmers do the same.
Although I don't work on too many spare projects on my own, I read a whole lotta websites relating to programming (this site, for instance..) and catch up on relevant news and technologies.
If the title was "No, I wouldn't hire a programmer who isn't cranking out code every hour he's awake", I'd definitely disagree. But, in my opinion, in this business, you really need to know what's going on. And unless you're in a research position at your day job, I'm guessing your boss wouldn't want you to spend working hours studying every interesting story on HN. Ergo, you'd read up on your spare time.
That's not to say you shouldn't have hobbies. A three year old Norwegian study [1] shows that IT-engineers have the largest burnout-rate of all occupations. It's important to relax, find something that makes you feel disconnected (my love for the moment is mountain biking, but whatever floats your boat).
[1] Google translate of Norwegian article about burnout-rates in the IT-industry: http://bit.ly/it-burnout
Because I spend the largest part of my life at my day job, and want to work on something I am passionate about during that time. However I am also a person with many additional interests and desires, such as playing sports, reading, art, and music and since each of those are deep areas of interest themselves, they all occupy parts of my non-working life, while being balanced with my family.
There are plenty of people who feel this way. They are well balanced individuals who are effective at their jobs, and passionate about them. But there are only so many hours in a day. Working isn't just about time spent coding. It is about working well in a team, and relating with your customers, and understanding social issues as well as technical ones. Someone who only codes is simply more likely to be underdeveloped in one of those areas.
It is just a stupid qualifier. If you are hiring a marketer, would you only hire someone who telemarkets from home on their off time because they enjoy it? That's just stupid.
Someone who has side projects at home -might- be a more experienced developer. Or they could be a poorly rounded individual. Someone who doesn't work on side projects at home -might- be non-passionate. Or they might be very passionate and effective, and simply more well rounded. To say you would always require one or the other is just dumb.
When I was 20 I had a LOT of free time in my hands. I spent some of it doing programming. I'm no longer 20, and I have two kids who require near constant attention from my wife and I and I'll be damned if I spend any of my scarce free time doing programming. I have far better ways to spend my time these days. Mainly sleeping.
This was the single best bar I ever set for hiring young engineers.
Some other good links: http://www.joelonsoftware.com/articles/GuerrillaInterviewing... http://www.paulgraham.com/hiring.html
Maids, cooks, personal shoppers?
The first, that programmer hacking on their own projects, I agree is a very positive indicator. If they don't, it may or may not be a negative indicator, depending on the circumstances. However, I've found the combination of someone who really has the itch to hack in their own time, and that same someone who honestly can't find the time is rare. More often, after enough prodding, they'll admit they just aren't that interested, and that it is "just a job like any other".
The second, that selecting candidates based upon social connections is an optimal strategy, I approach with some caution. This is not to say that it isn't the best way for raganwald to do things, but I have seen people develop insurmountable confirmation biases simply because someone they know gave a candidate the thumbs up. A lackluster interview performance wasn't enough to overcome this; poor performance once hired wasn't enough either. The trust the hirer puts in their network to suggest the right people must be for the right reasons. This, in a person's profession network, is rather rare. More often, two people knowing one another is the basis for a referral, rather than what the two people know about one another. This works ok in situations where the primary goal is to find a good social fit, but it is like throwing dice when determining if the candidate is capable of performing the required duties. In a lot of cases, both parties just don't care; the referral is a social, not economic or professional, transaction. Luckily for both parties, many companies don't care that much either. Mediocrity is not really affected by the introduction of more mediocrity, so neither party ends up with a tarnished image. This sort of politicing sucks.
My perspective on this is much the same as Joel Spolsky's -- or at least the perspective he used to have. If a particular candidate comes pre-recommended by someone, I'm really hesitant to know that. If I'm the person doing the recommending, I always wonder whether I'm doing it because this person is a genuinely good fit, or if I am just feeling the pressure to be a good friend. If I was both introduced to him and one of the one's vetting him, I'd be really concerned that my bias is way too strong for me to make an honest, objective decision. Hiring people based on a blind resume submission sucks, too, and I don't know of any other alternatives. But I worry we have a blind spot to the biases of this method of finding candidates, simply because we want to believe the best in everyone we know.
I <3 Giles!
http://www.flickr.com/photos/raganwald/3488885664/
p.s. Giles was positively kind in comparison to discussions elsewhere. It really shows that individual communities do have a very strong cultural bias, which I think supports your point and his:
http://www.reddit.com/r/programming/comments/9s5pd/no_i_woul...
Seriously, I would be supremely interested in at least getting to know him, if not working with him. Actually managing to go off the grid at 5pm every day takes a lot of self-control. I'll bet most of the people reading this couldn't do it (myself included.) My guess is he spends his non-work time doing something enriching, not just swapping the monitor out for the TV.
I don't have the patience to sort through thousands of job posting submissions and Indian outsource emails looking for the one incredible opportunity.
Someone who just reads maths books is not really bragging about much.
It seems like when he interviews he likes to hire those with a higher level of dedication to (more love of) coding.
Perhaps as an interviewer his real concern here isn’t so much what someone does in their off-time, but rather he looks for a good fit with the rest of the team. If the current engineers are all about the never-ending love of coding and the new hire was not, the overall cohesion and possibly productivity of the group may suffer. “Ducks of a feather...”
There are complaints all over the web about new hires who are perceived as slackers, or a know nothings, being hired on in hardworking departments (at good companies) and sometimes even being promoted up and up the ladder to the chagrin of the current employees. It can cause deep animosity towards the company and increased turnover of good people. Perhaps you have worked somewhere where this has happened and experienced it first-hand, or know someone who has.
That might be fine if they're prestigious, such as perhaps Google, but you really ought to think about taking a few years off being "public" carefully in the context of ever getting a job or being invited to co-found something...
I remember vaguely a case based in Texas where the company was able to claim someone's home brewed work as their own.
http://en.wikipedia.org/wiki/Work_for_hire#Law_of_the_United...
I've had to sign a couple of documents that said that any work I created, at work or outside, that was in the domain of the company was owned by the company. This company happens to do software engineering, but I'm not particularly scared since my job has absolutely nothing to do with software engineering. I do, however, do "software engineering" outside of the company on my own time. I believe in order to prove that they own the IP to whatever else I produce, they'd have to prove that either I created it on their time, or that I created it using skills or tools I gained while employed there. They'd also get the IP under the work for hire law, if, say, I happened to be hired to produce some piece of IP, but I'd say that's pretty obvious.
"What's the best way to get across to a interviewer...?"
Just tell them. I wouldn't stress too much about it. If the person hiring you doesn't realize that there are tons of good programmers out there who don't blog, then you may not want to be working for them (i.e., they're newbies).
That said, would I be inclined a bit more toward someone who had say Open Source contributions? Of course, it would be foolish not to.
I guess most of the debate is centred around the binary nature of the decision - will hire/ won't hire. Move to a more flexible non-binary judgment and it looks more reasonable.
Personally, I am open to hire both kinds of devs, but I'd prefer someone who had a side project / Open source cred etc.
7 hours is the limit, for me and many others.
It makes me curious which fields lend themselves well to having fun time outside work doing the same things. I can imagine car mechanics tinkering with their own cars after work. I can imagine chefs cooking for their friends.
Do sports commentators call out shots at home or at the local sports bar when they are off work? How about journalists? Do they write for fun?
Well Imagine a musician who never played except when he was on stage. Or a golfer who only plays at championships.
The key is (more than whether one works at home or not, which I think is a mistaken emphasis) is to be able to see output so you can judge its quality. You could ask a musician auditioning for an orchestra to play a few pieces or a juggler to actually juggle 5 clubs. The problem is that there isn't a coding equivalent.
Most developers who code only at work can't show you any of the resultant code. An interview is too short a time to ask someone to code anything meaningful. Having some independent work he can show makes evaluating a candidate much easier.
When millions of dollars are on the line, sometimes, your passion can become your prison.
My mother is a "admin assistant" at work, and she does "admin assistant" work at home for two clubs she's part of. And a month ago a bus driver I know drove me and some relatives around for 6 hours just for the heck of it. And journalists do write for fun, ever heard of blogs? And my brother as a mechanical engineer recently fixed some headphones (they were cheap for 20 bucks or so, so he could have bought new ones easily).
While it seems that only hackers do that, everyone does it more or less as long as they are passionate about their jobs. They just aren't as visible as the hacker crowd that develops Linux as a hobby.
http://www.flickr.com/photos/raganwald/3983773743/in/set-721... http://www.flickr.com/photos/raganwald/15825489/in/set-72157... http://www.flickr.com/photos/raganwald/525184427/in/set-7215...
5.0 level rock climbing. I'd be more impressed though if you were a trials rider :)
I find this useful - Many times, I apply my comp sci ideas and solutions to solve other mundane ( non work )problems.
My 2 cents
There are a lot of really good programmers who don't tinker or blog in their spare time. If they come across an employer who makes a categorical statement that "their kind" is not employable, do you think they'll even bother to send in their resume?
As another commenter noted, tinkering with programming on the side is a positive indicator, but not tinkering is not a negative indicator. Good programmers notice the logical mistake here, and it is off-putting.
My experience is that "hiring practices" is a very touchy subject. No matter how precisely you express yourself, people will take things personally because their self-worth is loosely connected to whether other people value their potential inclusion in a team.
So I'm not even remotely surprised to find comments like yours.
Yes, you are correct. In my passion I got carried away and started constructing a strawman. My apologies!
"What I said was that I personally would never meet them, not that they weren't qualified or weren't employable."
True. I think it touched a nerve with me because I've seen job posts specifically state that they would not consider any programmer who does not have a blog (!).
Thanks for bringing up the subject; it's a good one. :)
As is this comment for me.
That is to say, if somebody is a lifelong learner and has passion for it, I'd hire them way before somebody who lives, breathes and eats a particular language 24/7.
People who are interested in the world around them spend their lives increasing a well of knowledge that comes in handy in remarkable ways, not to mention the fact that they know how to learn what they need to know, when they need to know it.
> I Wouldn't Hire a Programmer With [No] Interest in Programming Outside of Work
You know how hard it is to actually measure how productive a programmer is, he could be writing absolute crap, that just gets the job done. The projects he has could be very simple.
And someone smart might just be someone who can switch a computer on, to a lot of people.
I do a lot of technical reading instead.