Great engineers don't do all nighters frequently. Some of the best software engineers I've met (quantum computing for Amazon, ML for protein design, etc.), go to bed at reasonably early and get eight hours of sleep, exercise and eat regularly, and have downtime. My guess is this type of life discipline helps keep up productivity over the long term.
I can’t speak for IT but I’d say most software engineers try and get decent sleep. I think most of my coworkers have regular albeit late to bed and rise schedules.
Personally as a software engineer I feel quality sleep makes a big difference on the quality of learning I get through experience. I'm more sensitive to the details that matter and develop deeper insights when encountering a new problem.
The part that I totally don't grok about big name consulting companies, or Wall Street, is how people there are able to get any work done while sleeping 3-4 hours a night for months at a time.
Most will agree that you need a continuous stream of good nights of sleep if you're doing any kind of work that requires creative thought, ability to associate concepts from different domains, thinking about problems from different angles etc. Sure, you can miss sleep once or twice here and there, and you can still get away with doing menial repetitive tasks, but even those are going to be a bit of a struggle.
In software, we clearly understand that people who continuously work 14 hour days are not actually producing 14 hours worth of clear-headed work. In fact, once you factor in the damage generated by the low quality of deliverables, they might be producing far less than even 8 hours of work. As an industry we've done decades of deathmarches, and we mostly know that those things don't really work. Has this realization not hit the rest of the work world, or are we as developers simply wimpier than other professions?
How does this work in the Wall Street world? Is the idea that it doesn't matter how good your work is, as long as you show martyr-level dedication to the company? Or, are these people superhuman, and are they able to do 14 hours worth of quality work every day for ever? In which case, can I have whatever they're having?
I would say its a superiority complex : thinking software engineers are paid well and hence need to be ready to sacrifice more to maintain this superior position.
And of course also because the risks of bad or interrupted sleep is not recognised widely and mostly ignored.
Thanks for the response. Sometimes I get the impression that engineers are killing themselves doing nothing but work with occasional sleep, so it's good to hear you're around 45 hours.
Engineers might stay up until 2am, but they stay up until 2am at home because nobody else is bugging them. If they eat, it's gonna be cheap stuff or frozen trader joes food from the freezer, more time efficient.
If I get 7.5 i'm solid. If I get less, on occasion due to kids or whatever, I will need to 'catch up' after a few days. I can survive on less, but I did lots of leetcode on low sleep and compared it to not on low sleep, and I can't solve algorithms as fast when i'm sleep deprived. I also can't focus as well. So generally, poor sleep for a software engineer is costly.
Well fwiw, I personally have pulled honest-to-goodness all-nighters in exceptional circumstances (debugging production problem, team (including management) expecting my code the next morning to start release-testing, etc. Of course it includes things like bio-breaks, snacks/coffee etc. But since "The night is a programmer's best friend for it is silent and expects nothing"(1), it's not that hard to get back into the zone after a break especially with a sword hanging over your head.
Thanks for this. Noticed the same phenomenon during my art school days. A lot of students would consistently "brag" about pulling all nighters. Was their work better? No. It may work at the end of a project when you need to get some stuff wrapped up and have the adrenaline to keep you focused, but regularly? No. This is especially true in programming and especially design, where making the right decision is all that matters.
Further, I'd say most of the evidence indicates this. A sampling of it follows. We know regular sleep improves quality of life and thinking. We also know many people who don't have it think that's not true but prove otherwise in tests. ;) Quiet office vs cubicle research long ago showed being able to focus with minimal interruptions improved productivity. A person with friends and family trying to code nonstop will be closer to cubicle vs someone who does it less but allocates time to not be bothered. Finally, there's also data from experiments like Fagan's Inspection Process, Mill's Cleanroom, and Altran/Praxis' Correct-by-Construction that teams of smart people on regular schedule using the right methods and tools produce the highest quality software you can get.
So, evidence is vastly in favor of a more moderate approach to developing software in one's free time. Even for a person who practically lives on a computer. The brain needs novel experiences and breaks from things. Just works better that way as connecting new dots is the basis for creativity. Gotta feed it more dots. :)
Used to pull a lot of all-nighters coding in my teens and twenties. Being twice as old now I'll regularly clock 8 hours sleep and doing an all-nighter never crosses my mind.
From personal experience, if I didn't get enough sleep or haven't eaten well, the productivity of my work just go down the drain. I get cranky and I can't focus, but I have seen a lot of engineers who can work for days sleeping just few hours a day on just crackers. They don't mind not eating or sleeping well as long as they meet the deadline.
Actually, if you enter it well rested the first 36 hours (with a couple 5-10 minute catnaps) can be quite productive, with only minimal reduction in productivity. Particularly if you get into the "zone."
It's after that 36 hours, that you need to get about 10-12 hours sleep to get caught up, and then have a few sane days.
Before we do complex cut over onto a new software system, we usually make sure all of our software engineers are very well rested leading into a friday night, in case we've got a couple all nighters ahead of us.
Anybody who tries to do back-back 36 hour death-marches with only 5-6 hours of sleep in between is setting themselves up for the seriously reduced productivity you've described. Nothing good ever seems to come of that.
So - in this scenario, I think they did precisely what they should have, but they shouldn't push their luck.
reply