I have been developing software professionally for almost three years now. In that short time, I have been exposed to a cornucopia of technologies, languages, and paradigms—from the network level all the way up to making nice little animations on page load.
I have learned that the most valuable tool I have in my toolbox is the phrase “I don’t know” (although debugging an ajax request is a close second). It has been an arduous process to come to this conclusion and one that has taught me more about myself and my skills than I could have foreseen.
Why is “I don’t know” a valuable tool? Below I’ll outline a few fundamental concepts that I hope will illustrate this way of thinking.
1. The software industry is continually evolving, developing and turning over on itself
When I first entered the industry, I wanted to know everything I could about the latest and greatest. I am confident that if a framework had a todo list tutorial, that I had done it. Hacker News opened in every new Chrome tab; I had too many bookmarks to count on topics that I told myself “I’d get around to one day,” and I was hungry for knowledge. All of this while not understanding much of what I was doing. In an ever-changing industry, it is easy to become overwhelmed with the current software darling. However, one thing I know to be true is that the basics will always be the foundation. If you are stumped on
2. Learn to detach yourself from your work
This was a hard one for me to understand. Early on in my career, I found myself holding on tightly to the work I had done. Afterall, it was a labor of love. I would try and re-try more times than I could count. I read up on architectural patterns and language constructs so that I could craft a well-thought-out solution to the problem at hand. Things were going well — until someone decided to offer their opinion. See, I would take it personally; as if a critique of my work was a critique of myself. My solution? — I believed that my co-workers had good intentions. Once I understood that criticism was applied merely because my co-workers wanted to see me perform at a high level, it was then that I could freely expose my work and become better. What a relief to know that others are on your side!
3. There will (more times than not) be someone else smarter than you in the room
This has always been a fun one! After I learned #2, this became an essential component of why I love my job. More experience and knowledge in the room means that I have the opportunity to “fast-track” (please don’t read this as “cheat the system” — you still have to put in your due diligence). Use other people’s experience to help you build skill in your career. More often than not, senior-level engineers are willing to talk you through a problem and offer advice so long as they see that you are putting in the effort to learn and grow from their wisdom.
4. Keep failing
Failing, for me, accompanied a cyclical thought process:
- Crisis of confidence: “Why can’t I do this? I mean, I did something way harder last week.”
- Crisis of career: “Am I even good at this whole programming thing? Maybe I should try a different field.”
If you find yourself feeling this way I ensure you that 1,) other people go through the same things and 2,) keep failing. With perseverance and the right support, you will be able to tackle the task at hand. And each task accomplished is just another finished problem that you can always look back on and say “I did that!”
5. I have what it takes
I kept reminding myself of this over and over again. When a task seemed overwhelming (as many often do), I would tell myself that “I have what it takes.” Remember that each task finished beforehand is just another notch in your confidence belt. Utilize all the strategies and snippets that helped you complete everything before — you have what it takes.