Debugging: Why It's Okay to Fail
The code block of “try/catch” speaks volumes about the programmer mindset. We expect failure. Even if it breaks all logical expectations, even if we expect to succeed, we still simultaneously expect failure. Isn’t that fascinating though? Software engineers, whom the world so genuinely trusts with their data and much more, don’t even believe in the stability of the systems that we build. How is this ever acceptable?
Firstly, I should explain why and how this works. A “try/catch” block is easily understood as being two parts. First, we “try” to run some lines of code. Then, if we fail and “catch” an error while running those lines of code, then we run some other code block. If we don’t ever fail, we don’t run the catch block. It’s also important that we can choose how wide of a net we cast with our “catch”. We can catch any type of error in the world, or we can catch only a certain type of error.
This type of code block is very helpful for debugging. This is programmer speak for the process of removing bad code and bad behavior from our system. What is interesting though, is that while this is a good example of programmers attempting to pre-empt something we don’t see coming, it’s more interesting about what it says about us.
You see, many programmers while building their systems, will just run things under the context of “I wonder if this works”. It’s almost comical because I’ve seen programmers try crazy things with no expectations of it succeeding and then see it work perfectly line. Sure, there are many times where it doesn’t work at all but that doesn’t stop the crazed programmer. They’ll get up and just try something different. Failure is taken as a learning experience and there is no concern about trying weird or new things. As a mindset, this is wonderful.
Imagine the life you can lead when you apply this “let’s try something crazy” mentality. I’m not saying that you could and should try everything. But, being too afraid of failure is one of the most crippling problems I see around the world today. So many people in the world today let their lives be ruled by anxiety or the fear of failure, that they’re unwilling to try. The thing that really boggles my mind is that these people let their lives be domineered by those feelings are often quite talented in their own regards. I’ve met people who are ten times the writer that I am, but they are afraid to put themselves out there.
Not the programmer, though. The programmer just tries something crazy without a concern in the world and then just learns from the experience. If it goes well, they mentally jot it down for later use, knowing that things can work that way. If it doesn’t, they have confirmed their suspicions and just roll right on to the next thing to try. This all comes back to that “try/catch” idea. Whether we expect it to work or not, we “try” things and make plans for what to do if “catch” something back.
It may sound cliche, but remember that you will regret the things you didn’t do rather than the ones you did. It is imperative that you go out there and try.
After all, no one here is clairvoyant and can tell you what the outcome will be otherwise. You never know what you might learn along the way. Perhaps you’re the next Stephen King, Rembrandt, or Giorgio Moroder and you just don’t know it yet. On the other side, maybe you’re not. Either way, what you learn in trying might have some other grand positive impact on your life instead. At the end of the day, do as the kids say and “shoot your shot”. Venture in that great unknown, whether it be a food you’ve never tried before, a game you’ve never played, an art you’ve tried, or anything else. As long as you’ve got a “catch” to fall back on, don’t be afraid to “try”.
For more motivation on this topic, I encourage you to listen to Les Brown’s entire “Fear” Speech.