“Excuses are used as tools of the incompetent and are used to build monuments of absolutely nothing.”- An adaptation of Vernon Brundage Jr.’s original quote
This lesson has been ingrained into my head since I was eleven years old, and I have carried it with me for years. But somehow, I lost sight of what it truly signified. Learning TypeScript has revived a level of discomfort for me that I assumed I’d surpassed, the uneasiness of facing my own inhibitions. And ironically, I am no longer trying to meet the standards imposed by my rigid father, but instead those of a programming language equally intolerant of mediocrity.
Python is a language that has often felt instinctual to me. Its pliability is reflective of the way I typically think about problem-solving, in a fluid and digestible way. For example, defining a function that sums each number in an array:
def sum(numbers):
total = 0
for i in range(len(numbers)):
total += numbers[i]
return total
result = sum([1,2,3,4,5])
print(result)
Python doesn’t require specifications, it instead trusts that I know what I’ve written. Contrastingly though, TypeScript has some differences:
function sumArray(numbers: number[]): number {
let total = 0; for (let i = 0; i < numbers.length; i++) {
total += numbers[i];
}
return total;
}
const result = sumArray([1, 2, 3, 4, 5]);
TypeScript does not yield the same level of ease. Every variable must be declared with a type and specifications as to what it will take in and what it will output. Its exacting type system has revealed my comfortability with making excuses. And when looking this revelation in the eyes, I let the fear of incompetence creep back in. So, I asked myself: Am I truly incapable of learning TypeScript, or have I fallen prey to excuses that keep me from being disciplined enough to continue trying?
I began waving the white flag before the semester had a chance to start. After the very first class where the professor outlined the workload, something in me wanted to try, but I soon decided that the effort wasn’t worth it. I told myself, “Just do enough to pass.”, but passing does not guarantee that I’ve learned anything. Understanding theories and concepts means nothing if I can’t apply them to something tangible. It is not enough for me to “get by”, if I cannot grasp how all of the pieces fit together . To accept the bare minimum is ensuring personal limitations. The successful future I’ve conjured in my head requires more than I’ve had the will to give.
I was sure that starting from an unknown space would set me back, and it has so far. Learning new things is intimidating for me because being a beginner makes you feel ignorant when you’ve gotten used to the feeling of being experienced, informed and well-equipped. I have always prided myself on my ability to pivot when circumstances change, but upon facing the learning curve of Typescript, that trait faded. Instead of playing into my strength of adapting, I let myself off the hook. I justified my stubbornness to learn with the fact that I had already taken the time to learn a programming language.
This excuse was the heaviest of all because it felt completely sensible to me. I tend to see things absolutely: either it’s black or it’s white, you’re worthy or undeserving, you have what it takes or you don’t. If I possess the nine out of ten required skills needed to succeed in a role, I often fixate on the tenth skill that I don’t have and disqualify myself. Most people might say that 90% is good, great even. To me, it’s a reminder of the ten percent I’m missing, the ten percent of worth I still have to gain. Imperfection is not an evaluation of how I can grow, but an analysis of my insufficiency.
These thoughts weren’t scarce, they lingered. They have become a system of belief that I am determined to follow. The psychological manifestation of these beliefs have turned into daily procrastination, lack of motivation, and difficulty absorbing new information. But these symptoms exist in spite of the excuses I’ve made and not because I’m truly incapable. I’m realizing that this feeling is familiar, not just with TypeScript, but with someone who is just as intolerant of my excuses. At eleven years old, negotiating expectations wasn’t something I was allowed to do. I thought his unacceptance of my “reasons” was harsh and unfair, but I now understand that he was instilling structure within me. Theoretically, I’ve always had an idea of what “…monuments of absolutely nothing.” implied, but it makes perfect sense now. If I think of every excuse or reason not to do something as a building block, each one adds to a framework that commemorates every excuse I let myself believe. Now, there is nobody standing over my shoulder demanding discipline. I have to demand it from myself.
As I continue to learn TypeScript, I still make countless mistakes. I know my journey is far from over, and I might not ever be perfect. But when I “DNF” an assignment or incorrectly implement code to create a class, it doesn’t have to derail the journey. It can be a lesson for what I need to continue working on in order to improve. Each mistake I make can either add to the framework of nothing or proceed to teach me how I can build true skill. I now know that the fear of incompetence I fought so hard against wasn’t about a lack of capacity, it was about the choice to let adversity become a challenge and rise to the occasion. So, I am finally swallowing the tough pill: I decide what to build with the discomfort of being a beginner and learning something new.