If you can't rebuild it, you don't understand it. Harsh, but true.
I've been writing software for 30 years, and there is a clear pattern I've seen separating good engineers from great ones.
Good engineers use the tool. Great engineers know why it exists.
Good engineers finish the tutorial. Great engineers ask what problem it's solving.
Good engineers trust the abstraction. Great engineers know what's underneath it.
It's not about being smarter. It's about refusing to be helpless when things break.
Because things always break.
The framework throws a cryptic error. Performance tanks in production. The abstraction leaks at 2am. In those moments, the engineers who've gone one level deeper don't panic, they investigate. They've seen the guts before. They know where to look.
That confidence isn't something you get from watching videos. You build it by building things.
Write a web server from scratch and HTTP stops being magic.
Build your own grep and regexes stop being intimidating.
Implement a Redis clone and you finally understand what "in-memory data structure store" actually means.
You don't need a PhD. You don’t need a CS degree. You don't need a bootcamp. You just need reps.
So if you're trying to level up, stop copy-pasting from an LLM and start rebuilding the tools you use every day. It's slower. It's harder. It's the only thing that works.
I run a newsletter of real-world coding challenges designed around exactly this. Writing your own web server, grep, Redis, and more. Link in my profile if you want in.
What's the tool you use every day that you'd struggle to rebuild from scratch?