What I do outside of work is none of my employers business - period. I'm surprised I'm the only one that finds this practice offensive?
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.
Mmmm, I interpret this practice a little bit differently.
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.
None of the top programmers I know code outside of work. They all have other hobbies and have been coding for long enough that they no longer find it challenging. They enjoy coding, but passion burns out before you truly master software development.
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.
None of the top programmers I know code outside of work.
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.
"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....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 didn't say that I never "found the opportunity" to solve problems with code outside of work. I said I didn't have the energy to code outside of work. Your incredulity concerning that fact is irrelevant to my ability.
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.
Way to take it personally. The person you're replying to did qualify all his observations by stating just that. That they're from his personal experiences. Unless you're included in, as you've already put it, his "limited life sample", I can't for the life of me fathom why on earth you should think that he thinks you're mediocre.
Mmmm, what he said wasn't offensive. He didn't say that anyone who doens't program as a hobby is mediocre. He simply pointed out that in his experience that has been the case. Read his post again...
Yes, he carefully caged his words to avoid explicitly making the generalization, while still communicating that's what he believes. Fortunately, the English language is not strictly literal, and I am allowed to respond to the intent and implication of his comment.
Ironically, if I were as defensive as you, I could have misread the parent I responded to as saying that I must not be a top coder because I do code outside of work. Thankfully, I was able to simply respond respectfully with my different experience instead.
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.
"Since I default to respecting the experience and ability of everyone who posts here..."
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.
Wow, you really are trying your best to turn this thread into a full-on flame war. :/
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.
then you are not really intersted in really mastering programing, or maybe it is just a sign of a 'blub programmer'
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.
In what way is AI a coding problem? Hacking 4096bit RSA is not coding problem. It's a math or hardware problem. For now true / classic AI is the same thing.
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.
I agree completely. I don't think it should be how many hours you put into a side project or how much time you spend coding something outside of work. It comes down to whether the person really enjoys tinkering with (new) technologies.
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"
Hire the people with the skills and aptitude to do the job, leave their personal lives out of it.
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?
Agreed, but I think you missed the point, which is...
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.
You're right: what you do outside of work isn't your employer's business. However, I would not hire a programmer who will not program at home. That's not to say I would expect them to be contributing to so Open Source project, or to be running a side business, but that they can and do put together code in their own time, for their own reasons.
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've been a programmer professionally for over 10 years and worked with a variety of teams. In my experience, I haven't observed a correlation between tinkering with programming as a hobby and the ability to be an effective employee. From what I've seen, communication skills, interpersonal skills, and the ability to motivate oneself have more impact than hobby programming.
"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.
That is a really bad an strange example of a good programmer. Why should a programmer spend his time and company programming a widget if their is an equivalent that can be bought for cheaper. I'd rather be a programmer that finds the right tool for the job than be one that sees everything as nails.
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.
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.
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.
Maybe because the programmer is an adult and isn't wowed by the prospect of spending more than 5 minutes writing something (s)he can buy for $20?
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.
It doesn't sound like much fun to just buy something for $20 rather than create it yourself. Obviously if you're going to buy it, you don't consider creating it to be fun. Some people like to create things for fun, and that is their activity or hobby. I'm not sure why doing what you do professionally can't also be your hobby. Why is buying something rather than creating it the "adult" thing to do?
The programmers that prefer creating to buying are sometimes bad for business. They may prefer to create software in-house (expensive) rather than use an existing software library (cheap). At the end of the day, a developer is only as good as the value she adds to the business.
Did you read the post your replying to? The poster pointed out that he's got other things in his life. When you grow up you might decide that $20 to spend time with your kids when they're young is cheap.
Yes, and how you spend your time is personal decision. Just because one person decides to code in their free time doesn't mean they aren't an adult nor that that's a blanket bad decision. The wording in the comment I'm responding to ("Once you grow up", "sitting on your ass in front of a computer") is kind of inflammatory and seems to imply that only non-adults have time to do coding or hacking, that it's a "kids activity", and that coding can not be a hobby (since "hobbies" is called out as another possible thing that "adults" do).
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).
I know a lot of people like Candidate B and I would not like to work with any of them. Life is a balance. Passion for programming is good, obsessive compulsion is not.
Wow, that seems kind of extreme. We have both "adults don't program in their free time" and "programming in your free time is possibly obsessive compulsive" in this thread.
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?
Most of the responses seemed to focus on the cost aspect of purchasing the widget. I was trying to imply that there was a significant amount of time investment to go out and find someone who made it before you could even buy it from them. I've known several people professionally who would rather spend 6 hours hunting down a product they could purchase rather than writing it themselves in a similar amount of time. No, what they would have written isn't as robust or well optimized as the product they purchased, but it would have fit their needs better, and they would be better able to change the functionality as needed.
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.
I am not a lawyer, but I believe that judging a job candidate based on their outside-of-work activities would actually be considered discrimination and illegal.
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.
> I am not a lawyer, but I believe that judging a job candidate based on their outside-of-work activities would actually be considered discrimination and illegal.
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.
Yep. Discrimination is the whole point of interviewing job candidates. You are trying to discriminate between the ones fit for the job and the ones not. :)
It depends on whether it's a coded way of asking if the candidate is married/has kids.
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...
"judging a job candidate based on their outside-of-work activities would actually be considered...illegal."
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.
Whether you choose to spend your time at home programming or doing something else is relevant to your day job how exactly?
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.
"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.
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.