Very true. I've seen too many engineers lose focus easily due to poor sleep. What's even worse is that many of my fellow engineers lost curiosity over time. They thought it was due to age or burden from raising a family, but it's really about managing energy. Intense curiosity requires intensive mental energy, which one can't get from drinking coffee all day.
Don't underestimate the benefit of exercise on mental performance. Your brain is a physical thing after all, mitochondria and all, and exercise improves its ability to function. Plus you'll feel way better, and probably live better for longer.
>During sleep, your brain restructures and reorganises information, creating links between unrelated ideas. This leads to new, creative ideas that you use in your day to day to solve problems and write better software.
This reminds of the character Ko Murakami in the manga World Trigger, who can master anything after trying it once and then sleeping on it. Great read if you like manga around strategies and battles.
There's another point of social life in relation to work: When you write software, you're working with people, not computers. You have human end users or other humans writing software that interfaces with yours. No matter where in the stack you are, understanding people makes you a better programmer or engineer.
I would add "proper diet" to this list. You still feel like shit even if you do everything from this list but eat only doritos and drink litres of mountain dew. Sleep-diet-exercise is the holy trinity of health and maintaining good baseline of mental performance.
Quite a good list, I was expecting something else, again one of those tired UNIX blog posts where only UNIX counts as development environment, instead I got something more rich out of it.
Writing stuff (usually visually) down with a Pen + Paper, also helps me a lot, especially when i try to understand a problem i have. And afterwards i try to explain the problem to myself.
I liked the (audio) book Spark - turns out aerobic exercise is really good for you.
Was pleasantly surprised with the list. Agree with all of them. The last point about notebooks has especially been useful for me the past few year. There's just something different about using it to help you think.
Most of the time, I don't finish fleshing out an idea on paper. But the act of writing (or drawing) it somehow helps me explore new concepts faster. After that I just continue coding or whatever the next steps is. It's also useful when I want to sort or categorize different ideas/thoughts into sections.
I'd like to add that it's really nice to have a notebook always in front of you. Mine is always open & ready to be used. It sits right in the middle of my split keyboard so it's literally always in front of me.