I'm really surprised by this mentality, especially evident in the comments, that if you're not spending all of your time outside of work doing projects related to development that you're suddenly a "bad developer." Others have said it but it really bears repeating: at some point even the best developers realize that finishing one extra feature on a side project isn't as important as spending some quality time with your spouse our children.<p>Moreover, I don't want to be in a situation where my job owns my life. I enjoy software development and I've been doing it now for 14 years. I certainly spend some of my time at home tinkering on personal projects and continuing to learn. But work for me is generally 9-5ish--and by work I mean the job for which I'm paid. Speaking as someone who will be a father in just a couple of weeks, I can say that at 8:00 pm I'd far rather be putting my son in bed than working on anything related to work.<p>Life is short, and there's more to it than software development. Understanding that doesn't mean you lack passion or aren't good at it--it just means you believe in going beyond one-dimensional.
Health.<p>If I program 9-5, go home, eat, program more, program some more, and then go to sleep, I get fat. Fast. My social anxiety mounts. Fast.<p>I need at least 1-1.5 hours a day of gym time, .5-1 hours cooking time, some social time squeezed in there somewhere. I <i>do</i> have side projects - but I don't have kids, and I don't have another hobby - what if I enjoyed woodworking, painting, writing, or music? Devote a decent amount of time to that, to your health, and to a 9-5 job, and squeezing a meaningful programming project in there starts to get difficult.
The article says he doesn't understand how someone can code at their job, then not code when they go home.<p>Here's how: even if you are very excited about programming, you can realize that there are other things in the world besides being a workaholic perfectionist who stares at a computer screen 16 hours a day. Things like spending time with your significant other, enjoying nature, exercising, concerts, volunteering, etc. I love coding and trying to improve, but have you ever just got tired of looking at a computer screen?
Dude, you can make the same statement about anything in life that fires you up. Take cooking, millions of people go home and put a frozen meal in the microwave, some cook indifferently the same stuff over and over, and some are totally into their cooking.<p>I am sure there's a person somewhere putting together an awesome meal with fresh ingredients thinking "How can people eat spaghetti with sauce from a jar every night".<p>Embrace your passions, but don't be surprised if others don't share them.<p>And if you want to understand how others feel, think of all the things you do in a day that don't bring you a driving urge for self-improvement.
I don't understand 9-5 either, why start so late? I do 7:30 to 4, and get out in time to go surfing, sailing, or skiing depending on the season. Or maybe just hang out on the beach with my girlfriend. Or maybe BBQ with some friends. Or get a nice book at the library. Or hop online and play Starcraft. Or watch a good movie. Or maybe, spend some time working on my sideproject or programming in general.<p>Work to live. Don't live to work.
The article talks about two types of programmers. The passionate type and the type that programs because it's a way to make money to fund life outside of work. Then it points out that many of the latter type write poor code.<p>I've found that if you engage your non-passionate co-workers and try to educate and inspire, you can really help them improve their skills. Nobody wants to be bad at what they do. A guiding hand can do wonders.<p>It makes their life better and it makes your life better.
I find that I cannot write code at top quality for more than about 6 hours a day. IMHO, most programmers aren't able to write at their top skill level for more than that, but don't realize this about themselves.<p>Factoring in time to handle my mails, some meetings, and that 6 hours adds up to a working day. If I program private projects after hours, I get grumpier and less focused. For my own health and sense of accomplishment, I need to stop coding at the end of the working day.<p>I don't switch off entirely. I do read tech books during my evenings, but that's a non-creative activity, so my coding doesn't suffer from it.
Why is this on HN? It's clearly written by some kid who hasn't yet realized that there are people who think differently than he does.<p>He also probably doesn't have a family, a house, or other responsibilities. There are only so many hours in a day and once you have all of those things, you can't spend every waking minute working on code -- if you want to or not.
Don't take this the wrong way; but a potential short answer is that there is more to life than programming. Or doing a single thing non-stop, for that matter regardless how passionate your are about it. Taking your mind off of it is not necessarily a bad thing - in fact, it might help you acquire a different perspective which ultimately might assist you in becoming a better problem solver in the long run.
Also, "those" people might have different, additional and probably more important obligations such as family or children. Yet some others (as pointed above) might have hobbies which require some time investment.
As well as the other valid points, I think he is looking at it bass ackwards.<p>The two types of programmer do the job for different reasons and came to the job for different reasons.<p>There are the types like me and presumably him, who are into that sort of thing and enjoy it. When it came to finding a way to pay the bills it makes sense to do what we enjoy and get paid for that, especially at times when the economy offers us good rates for our hobby. We'd program even if there was no money in it (though we'd probably chose to work on very different projects!)<p>The other type come into programming because they need a job to earn the money to maintain the lifestyle they want, and programming jobs pay far better than many others that are readily available. So those with the ability to learn at least the basics do so and try make their way. It isn't their hobby. It just pays the bills. They want to go home and do other things at the end of the day/week.<p>Sometimes the second type of programmer will catch the bug and become the first. Sometimes the first becomes completely dissolutioned and becomes the second. Or they can go half way: works 9-5 on work projects then goes home and does something completely unrelated but still programming, like being a C#+MSSQL developer 9-5 and a Linux+Python+Other person in their own time - this can be quite useful for developing new experience that will help you move away from the area you are dissolutioned by.
Another big variable in all of this is just the natural variability of time. There are times when I have side projects that I'm totally engaged with and passionate about, and times where the same projects don't hold my interest as much as other things in my life, and times when I just don't have any side projects at all. Just because you're not developing on the side <i>now</i> doesn't mean that you <i>never</i> do or <i>never</i> would.<p>Also, I find that it's hard to serve two masters. When I <i>do</i> have a side project I'm engaged in, it tends to bleed off any enthusiasm I have for doing paid work where, by definition, I have only so much say in things. It could be that the developers not developing at home are the <i>better</i> ones for being smart enough to save themselves for the big game, as it where.<p>As developers, we also have to be careful about having too much of this attitude in ourselves, because it makes us, in many ways, rife for exploitation by people who <i>expect</i> us to be so passionate about our jobs we'd do them 12 hours a day if we could.
What's disappointing is the 9 - 5 job that doesn't teach your anything nor provide much time or ability to learn it on your own. That actively discourages on-the-job self-development and innovation. And yes, they exist. A lot of "grow our employees" language is, when the rubber meets the road, hogwash.<p>I don't advocate endless additional work off-hours, unless you are really into it. And in the latter case, I'd suggest it be for your own, personal benefit and not simply to make you better at your job. Unless it's a job you love and you otherwise have what you need.<p>But, when the job's a dead end in terms of personal growth, you're going to have to invest in off hours (self) development. Or be prepared to: 1) Move to management, if you can get on that career track (given the precondition, not a good sign with respect to the quality of your organization, BTW); 2) Stay in a very protected niche; 3) Face the end of your career before too long.
Well, if you spend all your time programming, then when would you have the time to learn design & composition, color matching, copywriting, blogging, customer relations, viral architecture, business modeling, customer development, investment tactics and everything else you need to know to build a great product?
I don't understand it either, as in why don't most people have any concept of time-off? I guess many Americans depend on 100% of their salary to pay their bills and so can't afford to take any unpaid leave. But why not take sabbaticals if even for coding something interesting to yourself?
I'm kind of halfway inbetween. I like to code several hours a day. Often I don't get to do that at work, since there is more to writing software than programming. When that happens I code on side-projects, or not really side-projects so much as recreational coding.<p>For example, the other day I wrote several implementations of the burrows-wheeler transform, just because it's neat and there is a non-obvious way take the simple N^2logN algorithm and turn it into a more inscrutable linear-time algorithm.
Collaboration.<p>It's really that simple. We live in cities and work in groups and/or at companies because the benefits of collaboration and casual exchanges of ideas outweigh the detractions.
This guy sounds like he would be astonishingly dull to talk to. Both on a personal level (he has no interests outside coding PHP) and on a technical level (he has no interests outside coding PHP).