I was reading Hacker News this morning and came across two articles on the front page, both talking about the same topic.
First, was this:
From the essay
But there’s a damaging subtext, and that’s what bothers me. The phrase promotes an unhealthy perspective that programming is an all or nothing endeavor — that to excel at it, you have to go all in. It must be all consuming and the focus of your life.
Almost any headline on the internet can actually be thought of as a question. I think of these two as: “Is ‘eat, sleep, code, repeat’ such bullshit?” and “Can top developers have a life outside coding?”
The answer is a pretty definite yes, and I also believe that as an industry, we’d be better off if we made a conscious effort to have a life outside of coding, because it would actually make us more productive.
The allure of eat - sleep - code - repeat is certainly comforting, but it’s rooted in black-and-white thinking. If all you have to do in life is code, that means you’ve made all the right choices and odds are you’ve got it all figured out. You’re pointed in the absolute right direction and you will never need to course correct. In other words: great job, you’ve got it all figured out. Now get back to writing code for our app platform :).
“Just code. You’ve got everything else figured out. No need to think about making yourself better because you’re already perfect.”
At its core, I think this dilemma exists because we, as a field, sometimes conflate intensity at one’s work with being a one-dimensional human being who spends all of his or her time coding.
Intensity is a good thing - it means focusing more, removing distractions, and really being present / focused when doing work. Having a process and following it closely.
Being a one-dimension human being, on the other hand, is generally a bad thing. Even if you live and breathe code, you miss out on a lot of the other things that your human race is up to. It’s harder to relate with others, and you’re missing out on all the lessons that people in the past have learned, and ignoring all the cutting-edge learnings we as a society have made outside of the field of software.
A lot of the big discoveries we’ve made today happen at the intersection of two or more fields. Three examples:
- Many of our learnings in artificial intelligence are based on our newfound understanding of how the human brain works.
- Cutting-edge discoveries in genomics are based on computational science and the ability to model things with unprecedented precision.
- The famous Black Scholes option pricing/volatility equation is based on stochastic differential equations, a tool that had previously not been used in finance.
If you’d like to remain focused on making existing software better, you can get by just focusing on software and not thinking about anything outside of that realm. But if you want to make better software, you’ll probably stand to benefit from learning about things outside of your field.