The cringe test: a simple way to measure progression as a coder?
I’ve heard this adage a few times over the past couple years: it’s normal, even a good thing, if you look back on code that you wrote several months or years ago and cringe. It’s a sign that you’ve learned good design patterns and generally how to write better, more intention-revealing, idiomatic code in whichever platform/language you’re writing for/in.
Recently, for a side project I’m working on in my free time, I went from happily writing code that works, albeit a little squeakily, to “oh god, this is so bad, I could write code 10x better in my sleep” in ~4 months. In contrast, I have to look back a year or more to find code that I find that cringeworthy at work. Which isn’t to say I’m writing impeccable code at work: in fact, I surmise that this means I’m progressing >2x faster as a developer on my side project than on my day job.
One consideration to keep in mind here, though, is diminishing returns: it’s probably true that someone who has 1 year of experience in Language X will learn more in one year than that same person with 9 years of experience. But this might not be true for all people, nor for all languages. Some people might accelerate or even hit “critical mass” for a language or technology after some threshold. Indeed, I definitely hit upon a sort of critical mass effect when I was first teaching myself how to code.
But back to the cringe test. Is it always a good thing to feel the cringe? Or can it also mean you’re spreading your learning too thin and constantly starting “from scratch” ad infinitum? Looking back, it definitely feels like each instance of rapid cringe for me correlated to a moment in time when I felt like I was working on something I felt truly passionate about. And perhaps that alone makes it a worthwhile goal to aspire to.
What about you? Has rapid cringe equated to productivity and satisfaction for you? Let me know what you think.