How I Stayed Motivated as a Self-taught Programmer
November 7 — I went from Salesman to Software Engineer.
Since 2014, I lived the mantra of ABC (Always Be Closing). That’s right, I was in sales. In fact, I was pretty good. At my most recent sales job, I was nominated by my Regional Manager, the boss of my boss, to be apart of the company’s first leadership program. I was 1 of 4 selected to be apart of the program out of 300+ employees across the U.S. & Canada. While I enjoyed it, something was missing. Even though this was good, I wanted great. I wanted to code.
About 19 months ago, I started learning Swift for iOS. I spent my nights honing my skills in the privacy of my home, after putting my two young sons to bed. While Swift was not my first programming language, it was the language I confidently said to myself, “This is the language I will be great at.” The confidence part was important because it was connected to the feelings of imposter syndrome I’ve had since 2009. But, that story will be for another time! :)
So back to November 7th. This was the day I accepted a position as a Software Engineer at Yelp. Crazy, right? I couldn’t believe it! Was I dreaming? This really didn’t happen… did it? Finally? It was so surreal to me; I didn’t let the world know till 5 days later!
Amongst many of the congratulatory replies, some wondered how, for 19 months, did I stay motivated to continue. It wasn’t easy but nothing great ever is. Motivation comes from your why and I have a strong one. Let me tell you how I stayed motivated following these six principles:
1) Mindset: Believe in yourself
While it sounds obvious, not many people actually do. I had to believe in every fiber of me that this was something I could do. I mean, literally, is this something I can do? Is there something prohibiting me from doing this either physically, mentally or etc.? No? Alright, keep going.
2) Why: Ask yourself why you are even doing this
I learned in one of my prior sales jobs the idea that in order to get to the root reason you want to do something, you have to continuously ask yourself why. For me, it went something like this:
Why do I want to be a programmer?
You can make more money and it makes me happy.
Why does it make me happy?
It allows me to bring out the creative side of me and makes me feel I can build anything.
Why do I want to make more money?
I can better provide for my family, have better vacations, eat out… and buy the PS5 and all its games. ALL OF THEM!!
The goal is to be honest with yourself. I found programming truly made me happy and it could help provide for my family. I wasn’t just doing it for myself. With my family, whatever I do is now bigger than me. I have a responsibility to my family and a responsibility to my long term happiness.
Knowing your why is also important when you’re feeling demotivated. Whenever you’re feeling down, remind yourself why you’re doing it! There were many times I thought, “I literally cannot do this!” especially while learning data structures and algorithms or while working through coding challenges. Remembering my why pushed me through the doubt. It reminded me that I had to get to my goal and this is just another step to leveling up.
3) Take a Break: Schedule them if you can
Burnout is real people! It would suck to burnout before you even get to your goal. I had to take breaks. I needed to take breaks. Some days I didn’t code at all. Instead, I played video games, watched some tv, or read a book completely unrelated to code. There were even times India would stop me right as I picked up my computer and say “Hey, why don’t you take a break” because I would have been coding for who knows how many nights straight — including weekends. Her support helped keep me going as well!
4) Have/ Create a Support Network: Family, friends, social networks
I am fortunate and grateful I had all of the above. I understand that some do not have this already, which is why you have to will yourself into creating a network. For me, the majority of my family and friends are not programmers, or even in the tech field in general, so from them I got the normal, “you got this,” which is great. It was exactly what I needed to hear many times.
But, I did have to create my social network. Ever heard the saying “you are who you surround yourself with”? Because I was busy most days and couldn’t always get out of the house to go to meetups and etc., I had to electronically surround myself with other programmers. I created my programming social network handles and started joining in on the conversations. Soon, when I would share something I’ve done or was going to do, I’d get support from the tech side of it all.
5) Trust the Process: Be comfortable in knowing it takes time
This was the hardest pill to swallow. We live in a society where we want things now! Everything is on-demand — so it’s no wonder we want our careers to happen quickly. But, it’s going to take time before you are proficient in your programming. Did I think it would take me 19 months to land a job?
I wanted to land a job within a year like all these other people I’ve seen online. Which brings me to my final point.
6) Don’t Compare Yourself to Others
Comparing other people’s successes to your successes, or lack thereof, is one way to demotivate yourself because “your results aren’t happening as quickly as theirs.” It is ok, though.
I’ve fallen victim to this before, many times. Someone on my timeline would land a job as an iOS Developer, and I’d wonder “how come I’m not there yet.” I realized everyone is on a different path, in different locations, or in different job markets. There are so many variables that “could” and “would” alter a time frame for me. So, anytime I saw someone’s success, I would say congrats to them — and in my mind say, “I’ll get there.” Sometimes, I’d even ask questions on their process.
Staying motivated is hard. I mean really hard! But unless you know you’re going to die tomorrow, what’s your reason to stop moving forward?