I can’t quite find the screenshot I made of a HN (Hacker News) post where someone wrote on their practice of this but I’ll try to reproduce the core idea here.
The practice is:
Try as much as possible to implement a small feature (or part of your work) without using a debugger or a preview while you work on it. After you’ve ‘completed’ it, go ahead to test / preview it. There’s a chance that because you’ve not been previewing all ‘debugging’ all the while, you missed something. Whatever things you missed largely reveal a gap in your understanding, mental model or knowledge of the facts.
Practicing this greatly improves your understanding, mental model and gives you an opportunity to strengthen your memory of certain things which drive intuitional knowledge of your craft to the point where you almost become like a ‘wizard’, able to mentally process a lot of complexity because they’ve essentially been ‘chunked’.
AI Rewrite
There's a practice I once read about—though I can't find the exact Hacker News post anymore—that stuck with me and I’ll try to capture the essence here:
When working on a small feature or a piece of functionality, try implementing it without relying on a debugger or live preview as you go. Resist the urge to constantly check your work in progress. Once you believe you're done, then go ahead and test or preview it.
Chances are, you’ll discover mistakes—things you missed because you weren’t getting constant feedback. Those mistakes are valuable: they highlight gaps in your understanding, flaws in your mental model, or missing pieces of factual knowledge.
Regularly practicing this strengthens your intuition. It sharpens your mental model and reinforces memory, pushing your grasp of the craft to a deeper, almost instinctive level. Over time, you start to develop that “wizard-like” ability to mentally simulate and manage complexity—because the patterns and building blocks are now deeply chunked in your mind.
ChatGPT suggested a really nice title I like — The Mind’s Compiler.
Another thing I like about this is that it reveals when parts of your code are already producing a lot of cognitive load and reveal opportunities for simplification and better maintainability. E.g. if you aren’t using a statically typed language like TypeScript, you’ll immediately notice how much more cognitive load you have to deal with. When working within custom code, if you’re having troubles trying to recall something you’ve just seen and are currently working with, it might indicate that the said thing either isn’t intuitive enough, or requires a lot of cognitive load to work with and could be a candidate for simplification.