One is able to make progress faster if he just trusts his training and process and keeps going without looking back too much.

This is especially true with coding.

There are so many tools you can use for debugging later but in order to make real progress you must download the way this complicated application you’re building works and keep that in your head while you continue to add new features or refactor old ones.

Don’t form the bad habit of checking your work after each little tweak. Checking your work is important when you’re in school and submitting an essay or exam but when you’re just pushing to get as much done as fast as possible you need to stay in a state of productive flow and this is injured by stoping to check success.

Good programmers can trust their training and understanding of best practices, pushing on in a productive rhythm to get their entire idea written out and then go back and edit later.

In this way, it’s just like writing in English. Spending too much time on one sentence can be crippling. You spend hours trying to polish a small thing but you’re writing an entire book and can’t afford to do that. Get your ideas out there! Then restructure and edit later.

Polish is for poets. Most coders working on sufficiently large apps need to be prolific producers. Sure, have a proper understanding of form and don’t write spaghetti code but don’t overthink it!

I’m not saying optimization isn’t important. It’s a balance and depends on the type of project. If you’re Facebook and Google and already at massive scale then I think you can wait to polish and be neat and poetic about your approach but if you’re on a limited timeline and a limited budget, as most projects are, speed to a working app is more valuable than a long delay to a more optimized app.

So don’t be thoughtless but also don’t let overthinking and constant checking mess with your valuable, post-coffee, high energy flow!