Ask HN: Can you code more than 40 hours/wk?
I can code about 40 hours a week. And I mean really code, not just being at work: heads-down, super-productive hacking. All told, I spend about 32-34 hours a week at work coding so I usually end up spending about 10 hours a week on my side-project. This comes out to around 6-8 hours coding and 2-4 hours designing, researching, etc. Those numbers change quite a bit depending on overtime so I typically get in about 25 hours a month on my side-project. The thing is that I want more, but I simply cannot bring myself to code more.
It's somewhat amorphous, but I know that sometime every week I'll hit a limit. While I can keep pushing on, my productivity takes a dive. If I persist, after a week or two of overdrive, my overall performance starts to dive. I thought something was wrong with me so I took several steps to try to improve through life-hacking: I began going to a gym 3 times a week, dramatically improved my diet, and have almost entirely kicked the smoking habit (down to 2 a day from a sadly higher number). Nothing seems to work. The fatigue from ultra-focused coding just leaves my mind incapable after 40 hours of further deep concentration.
I typically spend the rest of my free time learning new things, playing games, or being with my girlfriend. I definitely enjoy these things and like to have some balance, but I feel like I'm missing that hardcore edge to really hunker down and produce a quality side-project once in a while. I feel like the hacker version of a guy who needs steroids to take it to the next level. Is this normal? Are the 16 hour/day guys the exception? Is it really that naive to try a side-project and keep the day job? Am I demanding an unreasonable amount from myself?
Thanks in advance for any feedback you guys have.
54 comments
[ 2.7 ms ] story [ 113 ms ] threadI still make time to learn new technologies, I just find the physical act of coding to have rapid mental diminishing returns after around 40 hours. That probably isn't a big deal if you were running a startup. Code for a while and then attend to the many other aspects of the venture. Having a day job can really throw that balance off, especially when working for a company that doesn't waste much time with meetings and busywork (which is a nice thing).
Given that there are only 24 hours in a day, pulling a 16 hour day frequently means you're not getting much sleep nor much of anything else ;)
Worry less about what other people can do. It's an ego-oriented goal and it can end up causing you to feel defeated as well as lose track of your real purpose. Instead focus on whether or not you feel like you could do more, and whether or not it's worth it.
You've got plenty of company no matter what you decide. :)
I firmly believe that you need downtime though. Between my dayjob and my sideprojects I always take an hour or so to play, watch television, read or anything else that doesnt take much brainpower.
Are you totally certain that you will have a lot of work 3 months from now? 12?
Doing the overtime to justify the new hire sounds like a good, low risk approach. Congrats on putting in the hard yards now to enjoy the growth soon. :)
Don't do it too long - you WILL burn out.
Think I was pulling 16 hours a day consistently for two or three months. Managed to meet all deadlines, but in hindsight I think I made a couple of poor design decisions - and I didn't question some of the things clients asked for (just cracked on and did them without offering much input).
Now I make a conscious effort to say no (which I don't like to do, but must) when I don't think I have the spare capacity.
Only problem with freelancing is how difficult it is to find time for your side-projects. Am also trying to sort out enough head room to be able to focus on my own stuff. Good luck with it!
I actually get more done at home anyway since I have my perfect setup, good music and no interruptions. Anyway, count yourself lucky that you're actually very productive already.
I think it is unreasonable to expect > 40hrs of pure programming productivity a week -- the body/mind needs time to recover.
You should still keep up the gym, diet and smoking improvements as they will continue to benefit you as you age (we all age, dont ignore it!)
I sincerely hope so, and I question the hygiene/health of anyone who spends 16 hours a day > 1 day a week in front of a computer. I certainly have done 16 hour stretches of coding, but I don't think anyone can sustain that for more than a day or two and still be sane. (I think you turn into rms, which can be seen as good or bad).
The message that I would like to give you is that of quality over quantity.
First off, you don't have to be at a computer to be solving your coding problems, keep a notebook, keep them in your head, write down answers as they come. Relaxing you think about a problem probably doesn't count against your concentration hours.
Secondly, if you are banging your head against a problem, it is probably time to take a break or get help with it... There are diminishing returns from struggling with a problem.
I don't doubt that you can spend more than 40 hours a week coding, but that seems like a shitty quality of life. Wouldn't you rather see the sun occasionally?
Wouldn't it be better for you to just work within the 40 hours, optimizing your use of them? Maybe find a way to get stuff done at work more efficiently, so you can spend more of your quota coding your side project?
It might also help to not try so hard when you are 'concentrating'. Let me explain:
I feel like if you are trying really hard, it takes more out of you mentally than if you are approaching it from a mentality of playing. Having more fun will definitely stretch your endurance for these things.
My mantra is to 'work' as little as possible to achieve my goals. So I like to turn 'work' things into puzzles/games. 'Work' is psychologically un-fun.
May I throw in my two cents?
For me personally, and because I am 22, and because I truly enjoy my job (game engine programmer), I tend to put in way more hours than I need to.
Way more hours.
On the order of 80-100hrs/wk. Of coding. (Which is to say, 80-100hrs/wk of actual thinking + typing. Not "time spent getting ready to program" or "time spent psyching myself up to begin working on the problem" etc.)
(Also, I love Vim. I'd likely be massively frustrated with all the programming I was trying to do, if not for ViEmu + Visual Assist.)
And damn, it's fun! The only strain I feel is from lack of sleep.
Also, I think the 'quality' argument is subjective. It's true that if you're physically exhausted, you can't work. But if I'm merely pushing myself, the output of my work is of a similar quality as when I'm living a "balanced" week.
But the insidious thing is, I have a personality where if I try to "balance" myself, I wind up mentally not "getting in the zone" for any of my projects. And for me, it's a little depressing to be in that state, because I am only capable of bug fixes / minor tasks. Nothing architectural.
So, in conclusion, I am certainly not planning on keeping up this lifestyle forever --- I'm just enjoying the 80-100hr weeks while they last. It's a similar feeling to being a kid staying up all night at a friend's house. It's fun!
It's great to hear that you are loving your job. When I have a decent programming problem to sink my teeth into, I am just the same way.
100 hours is 14 hours a day, every day.
The reason I make those claims is because I don't do much else at the moment except "work" (which for me equals fun). I don't play any video games anymore except the one I work on, and even then it's usually only once a week. I don't use facebook. Etc. Hacker News is my outlet, typically before bed (like now).
Think of it this way... there are 168 hours in a week. A "proper" amount of sleep is 8 hours a day, which is 1/3 of a day. So 168 * (2/3) = 112 waking hours. Throw in the fact that I often have trouble sleeping, or go without sleep, and... well, you get the idea.
I'm not claiming that I typically work 100 hours. This week in particular has been unique. I'm just saying, for me personally, when I'm passionate about a thing, I wind up way, way more productive by obsessing over it and pushing myself than if I try to "balance" myself.
Also, when I'm in "hardcore work" mode, I can only focus on exactly one project. There is little or no room for any other projects, such as side projects. Even doing an unrelated small bugfix has the potential to completely destroy my enthusiasm / flow.
There are downsides, of course... one example that springs to mind is: my right wrist has been hurting me. Badly, actually. I've been ignoring it, but that's stupid obviously. I think it's possibly because of the shape of my mouse. (I've heard that I should get a "splint" to prevent horizontal / vertical wrist movement.)
Also I need to take care to ensure good nutrition, which I've been slacking on. Also, Vitamin D pills + B12 pills.
In the end I had to get a chair of the right height, a desk of the right height and a wrist rest.
Take it seriously, the most important thing is an ergonomic work setup and some breaks.
I found that trying to be a father, an employee and also a startup entrepreneur all-consuming. I really couldn't do anything else, all my time was tied up.
Also, I probably couldn't have done it at all if my fulltime job required my full talents. As it was, it was a pretty simple role requiring only lightweight UI work in C++, so it didn't drain my brain at all.
Don't beat yourself up about not sustaining a huge number of hours. The best solution is to be clever about how you use your time and to try to reduce the number of hours you work.
If I can manage 10 hours per week, I consider the week highly successful.
I'm most productive when I fiddle my thumbs and have bizarre bursts of genius or when I plug at it at a pretty normal number of hours per week.
I've been exceeding that on a regular basis lately mostly because I have a full-time job + side projects. It's not sustainable and I don't want to keep doing it, so I'm going to try to wrap up a few things pretty soon.
This is a topic that:
a) people really like to brag about,
b) it's hard to separate "hanging around" hours from really productive hours,
c) even if you can distinguish those, it's a major pain to accurately track them (do not trust what anybody says just from remembering).
Do not worry to much about raw hours numbers. Focus more on quality of these hours.
In my experience, the difference in productivity / results achieved between "good" and "bad" hours can be staggering. Well rested me can easily outcode several tired overworked stressed mes :).
Forcing yourself heroically to work more when you already can't can be very counterproductive (game industry notorious for permanent crunch times sometimes does self-reflection [1][2]).
Working many forced hours can make sense when you have some external situation where additional benefits of getting something done by deadline outweigh loss of productivity. But even there, you are only borrowing it from your future self.
Yes, I had situations where hunkered down and produced magnificent amount of results working crazy hours every day, but at the end I got literally sick and was unable to do any intellectual work for quite some time afterwards.
[1] http://archives.igda.org/articles/erobinson_crunch.php
[2] http://www.lostgarden.com/2008/09/rules-of-productivity-pres...
And the reports really do help understand where your time goes.
They also help you see how your productivity is declining through the week, and the patterns that match when you can really burn through stuff.
As to the answer to your question, I think it varies a great deal, but I don't think you'll ever get an honest answer based on any kind of data from silicon valley, statistical or otherwise. The problem is that productivity is too amorphous, and there's really no hope of getting an honest appraisal from actual engineers because they're just as likely to fooling themselves as to provide factual data. I know I've had some amazing 100 hour weeks where mountains were moved, but it's really hard to be sure that I wouldn't have gotten twice as much done in two 30 hour weeks...
Also apropos, I've currently been on a death march for the past three months. At this point I'm still pulling 80 hour weeks, but I'm so worn down now that I'm sure I'm not getting anything more done than I would in a normal 40-hour week. It's sort of a make or break moment for the company I've spent the last 3 years building, so it's worth it this time, but it's also the sort of experience that highlights the dangers of too much work. My body mind and body are down far beyond what I could achieve on a personal project, or some artificial scenario like you are given in college. It's definitely not a lifestyle that I plan to continue, and I would caution anyone against living this way. It's better not to burn yourself out, and always keep something in reserve for when you really need it.
Years back I started writing multi-format shellcode, which required me to learn 4 different OS and 3 different chip architectures to the point where I could get assembly running across all of them. That was an insane project that started out as get shellcode that worked on Linux and Freebsd/x86 and just ran and ran as I found more things to add in and tweak. Then I'd sleep through the whole of sunday and turn up for work on monday.
On the other hand I've worked on projects in my work time that are so mind numbingly dull that I've spent 4-6 hours a day actual programming, come home and collapsed in a heap.
It sounds to me like you're going past your wall and it's not flexible. You need to qualify and stick to your limits. The gym, diet and smoking side of things is a good idea, but not enough.
How's your sleep? I find that's the biggest factor in my day.
I should probably work on my sleep schedule. I get about 5-6 hours a night on a weeknight and 10 on the weekend. I have a seriously difficult problem going to bed before 2am, but fortunately my job doesn't expect me in until 9 or so.
I've wondered the same thing a LOT. What I've discovered is that you can only push yourself so much (although it's more than many people believe), and that there are limits on how long you can spend focusing on one (type of) thing.
Also check this out: http://dl.dropbox.com/u/242985/rules_of_productivity.pdf
It's called "Laws of Producitivity: 8 Productivity Experiments You Don't Need to Repeat" and it's exactly what it says it is. Very interesting; I forget where I originally discovered it.
My advice is to keep pushing yourself, but don't sweat it if you don't improve over night.
At home, when I'm actually working on a project (ie. not work related) it usually goes from 2 hours to 4 or 5, if it's a weekend I might spend a whole evening on it, otherwise I save my nights for relaxing, playing a game, going out etc.
All in all, it's probably more than 40 hours a week; around 55, I'd say. I'm kind of trying to reduce it though, maybe hit the gym 3-4 times a week again, or just find a hobby. :-)