Originally written in 2014, republishing for the dev.to community
I used to love the idea of a green field project. I was envious at those who got to start from scratch. This time, everything will be right.
When I was stuck on problems in university, when I couldn’t get the program to do what I needed, I would routinely delete my entire project and start over. Sometimes it was effective, but most of the time I would just code myself right back to where I was.
The times it worked reinforced the belief that programs were tight rope walks. That early missteps in thought, would cause the project to crumble. That to successfully complete a project, every decision needed to be right and just and holy.
I’ve changed my mind about all this now. I’m a bit older now (that’s how it usually goes). I’ve clocked a good number of hours in the cockpit, so to speak. Now, projects seem to me like big ships. They have a weighty inertia that you’ll have to control. Powering on in one direction might get you way of course, but you can almost always slowly turn the ship back on course.
Undeniably, sometimes, the practice of restarting is very effective. Why? Well there’s the rush of getting to start over. But the more important factor was because I had re-think about the problem. I stepped through the problem again, this time thinking a little deeper.
I try to keep that part of it. Starting to think about the problem again, knowing nothing. But this time I keep my code around. Beginner’s mind, not beginner’s project.