Swizec Teller - a geek with a hatswizec.com

Senior Mindset Book

Get promoted, earn a bigger salary, work for top companies

Senior Engineer Mindset cover
Learn more

    Why programmers work at night

    [This essay has been expanded into a book, you should read it, here]

    A chimpanzee brain at the Science Museum London

    A popular saying goes that Programmers are machines that turn caffeine into code.

    And sure enough, ask a random programmer when they do their best work and there's a high chance they will admit to a lot of late nights. Some earlier, some later. A popular trend is to get up at 4am and get some work done before the day's craziness begins. Others like going to bed at 4am.

    At the gist of all this is avoiding distractions. But you could just lock the door, what's so special about the night?

    I think it boils down to three things: the maker's schedule, the sleepy brain and bright computer screens.

    The maker's schedule

    Paul Graham wrote about the maker's schedule in 2009 - basically that there are two types of schedules in this world (primarily?). The traditional manager's schedule where your day is cut up into hours and a ten minute distraction costs you, at most, an hour's worth of time.

    Prim clockwork of a wristwatch, watchmaking ex...

    On the other hand you have something PG calls the maker's schedule - a schedule for those of us who produce stuff. Working on large abstract systems involves fitting the whole thing into your mind - somebody once likened this to constructing a house out of expensive crystal glassand as soon as someone distracts you, it all comes barreling down and shatters into a thousand pieces.

    This is why programmers are so annoyed when you distract them.

    Because of this huge mental investment, we simply can't start working until we can expect a couple of hours without being distracted. It's just not worth constructing the whole model in your head and then having it torn down half an hour later.

    In fact, talking to a lot of founders you'll find out they feel like they simply can't get any work done during the day. The constant barrage of interruptions, important stuff (tm) to tend to and emails to answer simply don't allow it. So they get most of their "work work" done during the night when everyone else is sleeping.

    The sleepy brain

    But even programmers should be sleeping at night. We are not some race of super humans. Even programmers feel more alert during the day.

    Ballmer's peak

    Why then do we perform our most mentally complex work work when the brain wants to sleep and we do simpler tasks when our brain is at its sharpest and brightest?

    Because being tired makes us better coders.

    Similar to the ballmer peak, being tired can make us focus better simply because when your brain is tired it has to focus! There isn't enough left-over brainpower to afford losing concentration.

    I seem to get the least work done right after drinking too much tea or having a poorly timed energy drink. Makes me hyperactive and one second I'm checking twitter, the next I'm looking at hacker news and I just seem to be buzzing all over the place..

    You'd think I'd work better - so much energy, so much infinite overclocked brainpower. But instead I keep tripping over myself because I can't focus for more than two seconds at a time.

    Conversely, when I'm slightly tired, I just plomp my arse down and code. With a slightly tired brain I can code for hours and hours without even thinking about checking twitter or facebook. It's like the internet stops existing.

    I feel like this holds true for most programmers out there. We have too much brainpower for ~80% of the tasks we work on - face it, writing that one juicy algorithm, requires ten times as much code to produce an environment in which it can run. Even if you're doing the most advanced machine learning (or something) imaginable, a lot of the work is simply cleaning up the data and presenting results in a lovely manner.

    And when your brain isn't working at full capacity it looks for something to do. Being tired makes you dumb enough that the task at hand is enough.

    Bright computer screens

    This one is pretty simple. Keep staring at a bright source of light in the evening and your sleep cycle gets delayed. You forget to be tired until 3am. Then you wake up at 11am and when the evening rolls around you simply aren't tired because hey, you've only been up since 11am!

    A city

    Given enough iterations this can essentially drag you into a different timezone. What's more interesting is that it doesn't seem to keep rolling, once you get into that equilibrium of going to bed between 3am and 4am you tend to stay there.

    Or maybe that's just the alarm clocks doing their thing because society tells us we're dirty dirty slobs if we have breakfast at 2pm.

    Fin

    To conclude, programmers work at night because it doesn't impose a time limit on when you have to stop working, which gives you a more relaxed approach, your brain doesn't keep looking for distractions and a bright screen keeps you awake.

    You should sign up by email to receive tips and science about productivity and keeping your sanity as a developer, here.

    Published on December 15th, 2011 in Business, Computer programming, Freelancing, Opinions, Paul Graham, Personal, Programmer, Programming, Side Projects, Source code

    Did you enjoy this article?

    Continue reading about Why programmers work at night

    Semantically similar articles hand-picked by GPT-4

    Senior Mindset Book

    Get promoted, earn a bigger salary, work for top companies

    Learn more

    Have a burning question that you think I can answer? Hit me up on twitter and I'll do my best.

    Who am I and who do I help? I'm Swizec Teller and I turn coders into engineers with "Raw and honest from the heart!" writing. No bullshit. Real insights into the career and skills of a modern software engineer.

    Want to become a true senior engineer? Take ownership, have autonomy, and be a force multiplier on your team. The Senior Engineer Mindset ebook can help 👉 swizec.com/senior-mindset. These are the shifts in mindset that unlocked my career.

    Curious about Serverless and the modern backend? Check out Serverless Handbook, for frontend engineers 👉 ServerlessHandbook.dev

    Want to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz React components your whole team can understand with React for Data Visualization

    Want to get my best emails on JavaScript, React, Serverless, Fullstack Web, or Indie Hacking? Check out swizec.com/collections

    Did someone amazing share this letter with you? Wonderful! You can sign up for my weekly letters for software engineers on their path to greatness, here: swizec.com/blog

    Want to brush up on your modern JavaScript syntax? Check out my interactive cheatsheet: es6cheatsheet.com

    By the way, just in case no one has told you it yet today: I love and appreciate you for who you are ❤️

    Created by Swizec with ❤️