The firehose effect
Early in my programming journey, I had a manager once who told me that the whole process was like drinking from a firehose. That’s stuck with me all of these years. It turns out that increasing your skill as a programmer means learning absolutely everything in the entire world (well, it feels like it sometimes). Just off the top of my head, you have to learn:
- the core features of your chosen language
- all the standard programming fundamentals (variables, loops, classes, control flow, input/output, etc.)
- Object-oriented design
- Writing tests, if not full-fledged test-driven development
- System design
- Building
- Continuous integration/deployment
- Version control
- Data structures
- Algorithms (sorts, searches, Big O notation, etc.)
- Libraries
- Frameworks
- So on, and so on, and so on.
Learn the above, all the time, forever. Not that I don’t love learning, but sometimes the sheer volume is overwhelming. Not to mention our total limited time on this God-green earth. You can only learn so much, do so much, be so much. You’re finite the moment you’re born. As you can imagine, for someone like me who wants to be and excel at so many things, this really blows.
Sure, I’ve read about all the time-saving techniques. I can definitely chalk up a good part of my insanity to constantly working on my goals and burning out at various points in an attempt to play catch up on what I missed in my 20s. Only recently have I learned to take a step back and create more margin for recovery, but that’s still the rub - even when you brandish your copy of Essentialism or whatever and commit to focusing on only the most essential, high-impact tasks, you’re STILL not going to be able to do everything in your lifespan. It’s a rigged contest.
I can’t tell you anything new about what to do with finite time. That’s what books like Four Thousand Weeks are for. Question is, what does that mean for you and me, individually?
Me, I’ve been learning more and more to lean towards satisfying practices centered in the now, rather than keeping my eyes primarily on the future. The chase of achievement isn’t a way to live, I’ve found out. It’s fun and goals can give meaning, but ultimately it’s at the expense of fulfillment in the present moment. And programming is fun for me. That’s why we go on this journey to begin with. “Wow I can sit in a room all day and play on the computer for pay? Awesome.”
Still, that leaves the firehose effect, and there’s no easy solution here. I think all I, or anyone, can do is to keep focused on the now - see what needs to be learned next or which gap to fill, have an idea of where you’re going, but don’t get so locked towards the future and seeing all the growth you have to do when you’re missing out on what’s here and now. Really, that’s the solution for a lot of things, I’m finding. The more you live in the future or what’s to come, the less happy you are with what’s in front of you. At least this way you’ll be happy with what you’ve done instead of stressing about where you need to go.
But maybe THIS will be the year I become a combination programmer/artist/actor/Buddhist. Just need a bit mroe time. You can skip meals for more than one day in a row, right?