False Dependencies
I've been in college for three years now. Three years of endless assignments, job hunting, and trying to actually enjoy a college life. It's an environment where I've been forced at gunpoint to develop a work ethic for finishing boring things (something alien to me after basically surviving high school playing GSGs 24/7 and finishing assignments at the last minute). That, or face the ultimate Singaporean nightmare - being just sorta okay instead of beating everyone else at [INSERT RELEVANT LIFE STAGE METRIC HERE].
Being pushed to my limits has revealed patterns in how I operate:
- my natural working style
- what enables my best work
- my counterproductive tendencies
While I plan to explore the first two points in future writing, this reflection focuses on the last one.
I've noticed this tendency toward what I call "false dependencies" - artificial prerequisites I create before starting work.
Some examples from my daily life:
- Can't code on this product until I fully understand how XXX core technology works
- Can't start applying for jobs until I finish doing XXX or YYY Leetcode problem
- Can't start writing a blogpost before I set up the perfect Jekyll .md to blog pipeline for my personal website
I have an innate aversion to black-boxing, which I suspect stems from how my formative experiences with serious "learning" were from self-studying math textbooks, rather than building things. I think doing math builds this reflex where you innately dislike not understanding every single detail of how something works. And it's a very different mindset than the engineer that came into software engineering by building things would have. The "learning DNA" in that case naturally skews towards just "getting shit done": being fine with not understanding how something fully works as long as you trust that the guy writing the library you're building on knows what they're doing.
This innate aversion to black-boxing often just results in me feeling like I have to fully understand everything when I work. A task on writing a cache simulator for a computer architecture class results in me falling into rabbit holes reading about how cache coherence protocols work. Tangentially related, perhaps even useful, but ultimately useless for the current task at hand. I feel that even starting on a task is dependent on me fully understanding the theory behind the task, a form of false dependency which paralyzes progress.
Another form of false dependency manifests in my approach to multiple tasks. I artificially constrain myself to single-threaded processing, creating these rigid rules: 'I can't start B until I completely finish A.' When writing a paper, I convince myself the gym is off-limits until it's done. Deep in a coding project, I feel guilty about taking time for anything else. While I'm oddly comfortable with tasks I haven't started, having something half-finished lingering in the back of my mind feels unbearable.
I think another form of false dependency comes from my perfectionist brain demanding complete solutions upfront. When I code, I convince myself I need the perfect "elegant" solution before writing a single line - as if good code can't evolve through iteration. When I write, I tell myself I need the perfect outline before touching the keyboard - as if essays can't develop organically through drafts. When I do math, I insist on seeing the complete elegant proof - as if understanding can't build up from playing with simple examples first. It's this false belief that I need to make one perfect leap of cost 5, when reality shows that progress usually comes from making 5 smaller jumps of cost 1.1 each. The dependency here is thinking I need perfection before I can even start, when starting imperfectly is usually the best path to eventually reaching that elegance I'm after.
Individually, these tasks are fine. Maybe a day of concentrated work at most. But add in all the other little tasks that my brain feels are "necessary" for completion - and it spirals out of control. It becomes a big gooey blob with an "ugh field" that I don't even want to think about. It attains a kind of inertia that it really shouldn't have given the actual work involved.
I think this combination of traits might actually work very well for someone with a singular, obsessively deep interest in something. But I usually just have interests that tend to flutter around. So this usually results in me not doing much at all.
What is to be done about this?
Deadlines are very effective. Something about them unlocks my innate ability to prioritize and execute. But for obvious reasons, I would very much prefer to live a life in which I am not perpetually held at gunpoint. If I were to analyze it a bit further, I think deadlines help especially well for me because my body has a preternatural ability to somehow predict when I have only a 10-20% margin of time before I realistically cannot create a piece of work whose quality I am satisfied with. That extra 10-20% is not enough for me to fully finish all the things I would have wanted to finish in an ideal world, but it is enough for me to do what is simply enough.
There was a tweet about how you always have access to your optimal decision-making policy at any point in time. I think deadlines work because they force you to act on that optimal policy balancing quality and effort. I've been experimenting with timeboxing recently as a softer and more self-driven version of having a deadline. I wrote this essay by giving myself two hours to write, and it seemed to be a good way to focus my thoughts, rather than it spiralling into endless outlines and thinking of the best way to unify all of them.
There's a lot of advice out there on how to "develop a work ethic" and avoid "procrastination". Quoth platitudes of "eating frogs the first day in the morning" or "discipline". But I think they're useless because they suppose some platonic model of how people do their "best work". So far for me, trying to figure out from first principles and experimentation has worked better for me than following platitudes.
The footnotes:
- Having my formative "writing to express yourself" experience being US college apps has given me brain damage when it comes to self-expression - the first draft of the essay had way too many emdashes.
- When I ask Claude to replicate my "authorial voice" for certain passages that I'm trying to rework, the output it gives me is what I would consider as being written by an extremely online and annoying teenager trying to sound smart and aloof. It remains to be seen if this is a case of an LLM being too poor or too good at its job.