Archive for February, 2011
My “toughest” days are those I spend solving some completely intractible technical problem or other — days when I feel like I’m beating my head against a wall and the problem just will not yield to either intelligent analysis or brute force. The problem just persists, and I keep trying different approaches, and each one leads me a little way down the path but doesn’t solve the problem.
With luck, of course, each step yields some piece of information that ultimately contributes to finding a solution. But sometimes there are dead-ends.
The key to not becoming frustrated is to learn something from each step along the way. It might involve learning something new about the programming language, or maybe DNS infrastructure, or about administering Ubuntu, or about SMTP interactions, or about cryptography. Depends on the overall project, of course. What is ultimately “learned” might not even turn out to be relevant to solving the problem.
But the key is to step back at the end of the day and say “I learned something really valuable today, even if it took me ten times as long to solve this problem as I thought it would.”