I suck at knowing when to quit.
Staying on track working through nand2tetris has been a bear, and I’ve been second-guessing myself as to whether I should push through or rethink where I’m spending my time.
Looking for guidance, I read Seth Godin’s The Dip which was… unhelpful to be charitable about it. I think Godin made a good observation that there are mostly two kinds of situations where work sucks: ones where there’s a payoff at the end and it sucks because getting there is hard work, and ones where it sucks because there’s NO payoff at the end and the whole situation is a dead end. He took about a hundred pages of just-so clear-in-hindsight stories to provide little useful advice for distinguishing the two situations in the moment. Back to square one.
I do think I went into nand2tetris with poorly defined goals as to what I wanted to get out of it. “Fill in knowledge gaps about physical-level computing to OS-level computing” is the best I can elucidate right now. It’s kinda-sorta been doing that, but in a college course kind of way: lots of conceptual learning that’s two or three steps removed from a practical application. I don’t think it’s getting me any closer to really understanding (say) what happens inside a modern laptop or what my linux server is doing with my application process. There are probably better resources out there if I want to learn about the detailed innards of moderns systems. If I push on what I want to get out this kind of time invested, and keep nudging on that thought until it actually feels true at a deep level, I get something like “deepening my understanding of computing systems so I can build bigger and more useful things”. That’s useful—I can see that this book isn’t really going to directly get me there.
The rest of my worry here is that I’m not just switching tactics, I’m likely putting that entire goal on the back burner for a bit. But maybe that’s what I need to do—my difficultly expending mental energy working through the book could be a sign that I’m overinvested in one part of my life. I’m intellectually comfortable with the fact that “building software” waxes and wanes between vocation and avocation depending on all kinds of suff in my life. That still doesn’t make it easy to see if I’m quitting something for good reasons.
I think I’m looking for certainty, a clear “ah-ha, yes, this is definitely the right decision” moment. If this were a professional project, I’d make a bet with the information I had, pick a metric to judge success by and set up a reminder to reflect on how the decision went some time later. That’s probably the right thing to do here. Funny how you can’t see that sometimes without spilling a little ink.