The nature of writing code is inherently difficult. Programmers are asked to build complex systems, make them easy to use, and hopefully do it with minimal bugs and security holes. And generally it’s the act of problem-solving that goes into writing code that is the hardest part.
I’ve been writing code in some form or fashion since I was 19 years old. I’ve been around the block more than a few times and have had to solve countless programming and design problems of varying degree. I’ve got boatloads of experience.
So why is it that when I get stuck on a problem I don’t step away and come back later?
We writers-of-code pride ourselves on constantly learning. We learn new programming languages, new techniques, new frameworks, new whatever. Yet over and over, when we encounter a problem that we can’t solve in a reasonable amount of time, what do we do? We Google (even going so far as Page 3), scour Stack Overflow posts, invoke our trial-and-error rituals, and step through our debugger hoping we get a different result.
But in most cases, you know what actually solves the problem? Stepping away.
We know this, but we haven’t *learned* it.
And in a contradictory way, I think the more experience you have, the more your experience works against you in knowing when to set the problem aside and come back later. Why? Because of what I call The Superman Effect.
When you have a lot of experience building software, you tend to think you can do anything. Not much fazes you anymore, and certainly not some “little” problem, you know you’ll figure it out eventually. Except 4 hours later you’re no closer.
I can’t tell you how many times I’ve done this and almost every single time, I will finally step away from the problem, come back later, and literally solve it within minutes.
Sometimes letting your mind focus on something else is exactly what you need. We would do well to learn that.
Featured Image: All rights reserved by B(three)N