As a kid, I always dreamed of getting into MIT (Massachusetts Institute of Technology), which I’m sure many of you hoped to get into as well at a time when you were still applying for colleges.
Now you must think I’m insane. MIT is the school that not only has the best computer science program in the world but is also ranked as the best university in the world. And guess what? As the cherry on top, I got a scholarship to go there that nearly covered the entire tuition. If I had gone, I’m sure my career in tech would have soared and I would’ve networked with a plethora of brilliant individuals.
Instead, I went to a state school where the engineering program was considered decent but nothing to brag about. Yet, I now stand as one of the most valuable programming assets in my current company, which tells me this: You don’t need an expensive, the best, or even a decent formal education to become a valuable programmer.
I guess you think this insight is obvious when you hear people like Elon Musk tweet out that you don’t need a degree or even a high school education to work for him. You just need to know your stuff.
Still, I don’t see enough people who are actually going out of their way to learn on their own. Elon’s comment doesn’t excuse the lack of education altogether. Rather, it means he wants a self-motivated and self-reliant person who has enough of an interest in say, AI, to explore that topic deeply and comprehensively on their own.
That’s the way you should pursue your personal growth as a developer. After all, Elon was a self-starter himself. When asked how he learned to build rockets, he simply said, “I read books.” Be a self-starter.
What you shouldn’t do, on the other hand, is this.
Do Not Depend on Your Circumstances to Define Your Personal Growth as an Engineer
Far too often, we put too much dependence on where we are currently at or where we could be to bolster the growth of our careers.
You say things like:
- “My job doesn’t provide me with enough resources to learn and grow.”
- “My manager doesn’t give me tasks difficult enough to stretch my abilities.”
- “Only if I went to the right college would I be able to really shine as an engineer. Instead, I feel like my education has hindered my potential to be great.”
- “My manager isn’t noticing me and I’ve been working so hard. Maybe they’ll eventually notice and promote me if I keep on working.”
The grass is always greener. Where you’re at isn’t enough. The path you took in the past got you nowhere. Your mind is full of regret and what-ifs. It’s all really just an excuse.
You can’t depend on external circumstances to define you as a developer or as a person in general.
Think about it. Maybe work is the only place where you really stretch and hone your intellectual skills. Maybe you hold another company on a pedestal and always point fingers at your company and everything it’s doing wrong. Maybe you’re completely blind to anything you’re ignorant about in the world of development and don’t even have a sliver of a clue that you’re inefficient in the first place.
I could’ve gone to MIT and said that going to an elite college like that would define my career as a developer. I could’ve said that the failed startups I worked at were a waste of time and I should have instead found an internship at companies like Microsoft and Google. I could’ve been pissed about the fact that I spent multiple years learning game development and building out those side projects just to in the end become a Salesforce developer instead. I could have floated through life, not learned a thing on my own, and ultimately ended up thinking about the potential I had.
Rather, I look at all these choices and realize that they were my own. They were experiences that I had and the only thing I can do is find the lesson in each and every single one of them.
Not complain. Not wish I was somewhere better.
What you need to realize is this.
You Are the Only One Responsible for the Ultimate Outcome of Your Career
If you want to be valuable, you have to generate that value yourself. It’s no one else’s responsibility but your very own.
I’m going to explain this concept through three brief personal stories.
Maybe I didn’t go to the school with the best engineering program, but I went to a school that was ranked third in the entire country in the sport of water polo. That’s not programming-related, but please bear with me. It’s still relevant.
I essentially received a full-ride scholarship to play there, and guess what? I went to one of the worst high schools in the whole state for this sport. Of the seven divisions, my school was in the bottom tier and didn’t even make it to state championships. This made it literally impossible to get noticed or taken seriously.
Still, I wouldn’t allow my circumstances to stop me.
I worked overtime. I went to multiple practices every single day. I signed up for the best water polo camps. All of this just to get myself seen.
Ultimately, all this extra work got me to the point where I set county records for the most goals two years in a row. I wouldn’t wait for recruiters to just find me either. I was the one who reached out to them, sent them gameplay video, and got them to come to me. Me getting recruited to one of the best water polo programs in the country was simply a result of my own goal-oriented actions.
This was a great lesson for me moving forward. It told me that one has to do what others aren’t willing to do to be able to get where you want to be. It told me that my reality is cultivated through the decisions that I make.
That lesson set the grounds for the future of my programming career and my life.
When I came into my Computer Science program, I knew I wanted to be a game developer, but my entire curriculum was based around the Java programming language.
Knowing that I would never have the opportunity to even learn how a video game is built throughout my degree, I took the act of learning how to do it into my own hands. I looked for gaps in my schedule to read about game development, to take online courses, and to build out my own side projects. Ultimately, it landed me the opportunity to work at two augmented reality startups where I eventually fell out of love with that niche craft. Nevertheless, I would have never gotten those experiences if I didn’t rely on educating myself.
I created that value myself. Now, thanks to all those years of exploring an extra realm of development, I’ve grown much more as a developer.
At my current company, there was an initial nine-week training program. I was expected to only receive two Salesforce certifications and then they would maybe contract me out to some client I would be able to work with for a couple of months. Instead of limiting myself to those two certifications, I told them that I wanted four certifications. They told me that had never done before and that I wouldn’t be able to do it either.
Needless to say, I set a company record by getting four certifications in those first nine weeks, which led me to receive a company-wide reward and get immediately consulted out to a fast-growing startup consulting agency. I’m currently at this agency, and I’ve proven myself to my CEO so much that we are talking about making me a technical lead and potentially seating me as future CTO of one of his child companies. It’s been less than eight months.
I’ve done this by sharing my personal goals and philosophies with them. I’ve done this by openly sharing what I believe needs to be improved. I’ve done this by constantly updating them about all the progress I’ve made. I’ve done this by delivering on difficult tasks that were beyond my skill levels at my time.
I displayed my ambition. I demonstrated my drive. I showed my commitment. I proved that I was highly competent and worthy of my position. I didn’t just wait around for them to notice my output and my qualities by just showing up — I made them realize those qualities.
What’s the Point of All This?
You are responsible for the future that you create.
If you want to be promoted and don’t feel like you’re being noticed, send weekly progress reports about all you’ve gotten done to your manager or even your CEO/CTO. This way, they can’t ignore your productivity and initiative. This is an initiative that John Sonmez speaks about in his book A Complete Software Developer Career Guide.
Don’t feel like you are growing fast enough at your current job? Spend time outside of work reading programming-related books, writing programming articles to share what you learned, building out tiny side projects that stretch out a portion of your skills, watching online lectures from the most reputable people in the tech industry, or even spending some time reading and trying to figure out the functionality of the code behind some popular open-source programs. That’s another initiative that was mentioned in Sonmez’s book.
There is always a way to grow. There is always a way to make yourself more valuable. There is always a way to get yourself recognized.
You just have to realize that you must make the decisions and run the initiatives to bring these things to reality. You cannot just stand idly by and wait for everything to just magically fall into place.
Programming is a beautifully complicated and convoluted craft that needs to constantly be honed and sharpened.
If you really want to generate value, you need to be willing to do the things that other people aren’t willing to do.
You need to learn to manage your time and ask yourself what is really important to you and your personal growth.
Maybe you’re already there and maybe you’re already doing everything right. That’s good. I’m genuinely happy for you. You’re on the right path.
What’s important, though, is that you’re constantly trying your best to provide the most value you possibly can to whatever project you’re on, the team you’re on, the company that you’re working for, and most importantly to yourself.
Providing value is the best gift you can give any company, any person, and yourself. It all comes down to creating that value entirely through the actions and decisions that you make.