In 2021, I was a college dropout drowning in tutorial hell.
But in the last 4 years, I've built a complex Go chess library, led multiple backend projects from scratch, and mentored other developers.
These three mental shifts helped me get here:
Mental Shift #1: Stop trying to write "perfect" code from day one.
My early projects were messy, overengineered disasters—six layers, three frameworks, benchmark-driven madness—and that was exactly what I needed. Each failed experiment taught me more about what matters than any pristine tutorial ever could.
Mental Shift #2: Embrace your beginner's curiosity over expert paralysis.
With this shift, I was able to:
Try every framework combination (yes, it was complete overkill).
Build projects I had no business attempting as a junior.
Ask "stupid" questions that led to breakthrough insights about fundamentals
Of all the shifts, this is the one that got me to take action.
Mental Shift #3: View every "failure" as data, not defeat.
That overengineered app I mentioned? It became my best teacher. When I rewrote it recently, 10x faster with half the code, I could only achieve that simplicity because I'd learned what NOT to do the hard way. Every layer of unnecessary complexity taught me to recognize what scales.
Your messy, imperfect, experimental phase isn't a bug in your learning process—it's a feature that makes everything else possible..