The Complexity of Failure

Feb. 28, 2017 — Failure is a term with which we are all too familiar, yet it is often hidden behind closed doors, especially when we speak of our achievements. No one wants to cast a negative light on decisions made or, even worse, broadcast life’s disappointments. But do we need to view failure in this way?

In ICS, we are taught early on — during introductory courses — that, as programmers, failures and errors will be a close companion of our work. We learn that when we write code, bugs will be created, and when building software, human errors will inevitably occur. Failure is present in every corner; it will appear in all of the code we write and in every project we undertake. The silver lining to this harsh reality is that these errors are usually fixable in one way or another.

This is a powerful mindset that ICS is instilling in its students. It is not about how many errors you make but what you can do to amend for these failures that truly defines you as a programmer. It is understandable, even expected, that you will make mistakes. However, to shy away from your errors is foolish. Do not view failure as a wall but rather as a step. After all, fixing bugs in a program doesn’t deter me from my work; instead, it teaches me how to avoid such bugs in the future.

This viewpoint of failure extends beyond the scope of fixing bugs in programs. Just because you did poorly on a midterm does not mean you are destined to do the same on the next one. Instead, view this failure as a hint to how you can reach your final goal. What can you take from today’s failure that will help you succeed tomorrow? This is what ICS has taught me about the importance of my failures.

Nguyen Dang is a second-year undergraduate trying to switch to Computer Science. Dang is currently on the executive board for Design at UCI.