Cringing is growing

·Around 3 minutes

Earlier today, I was chatting with someone who was looking at code that had written last year which made them immediately cringe.

Further, they had been consulted about some of those changes due to some errors popped up. The errors, being pretty obviously in hindsight, made them cringe even further.

What they wanted to know was basically: "Do you reach a point where you don't cringe at your past work?"

My short answer is: I hope not!

This post is my longer answer about why it seems ideal to cringe at your past work and in some ways, it's essentially just the opposite side of the fence to an older post about cringing.

To take a piece of work that you have made in the past and cringe is to admit, on some level, that you've grown both as a person and in terms of your taste and ability.

If you stayed exactly as you were, you would think that same piece of work is perfectly fine so cringing is proof of growth.

That isn't to say that you can't get to a place where you create pieces of work that you're proud of for years to come.

Heck, you could even technically get worse due to a lack of practice or just due to investing your time in other skillsets but cringing would suggest you're on an upward trajectory.

Even if you can't physically accomplish the same output, cringe suggests that your taste is still killer and helps you identify flaws that were otherwise not obvious, or you just didn't have the time/willpower/interest to iron them out.

A natural reaction would be to think "I should have known better" but the reality is that we're just navigating the present with the information we have on hand.

To some degree, it's also just simply not possible to have known better.

If I were to time travel back to my past self and point out all of the things about a project that make me cringe, my past self would just be confused.

My past self would not share the same taste, experiences or knowledge so what may seem like great suggestions would just appear like a bunch of nonsense to my past self.

"What the hell is an abstraction? It just seems like unnecessary indirection" I probably would say, because I hadn't personally been burned by the ability of a corporate to change entire systems for arbitrary reasons.

I say that like I would have even conceptually known what indirection was.

Anyway, I don't know that you stop cringing necessarily but I do think your relationship to cringe changes.

Ideally, you should think of your work as being on a timeline and as such, it's not fair to evaluate past work by your current standards.

Yes, ideally you would have all of the time in the world to refactor everything all the time but sometimes old, cringe attempts do the job.

Sometimes those decisions are wrong and broken but short of time travelling (or delegating the work to someone else), there is no timeline where that thing you made isn't cringe.

In fact, that output couldn't exist in a non-cringe state and you had to create cringe to progress as a person. The proof of that is in the fact that you can identify what makes you cringe at all!

Eventually, some amount of your output will get to a point where you can just make the thing you want at the quality you aspire to but there will always be some new avenues that are unknown and the resulting output will be more cringe and that's perfectly fine.

For what it's worth, this entire blog is a record of cringe. There are a few posts that I still think are great but most of them are still cringe which is great because it means I won't run out of motivation to improve anytime soon!