Breaking Into Tech: No College Degree Required
From college dropout to full-time software engineer—in one year
About a year ago, I started learning how to program on my own. And about a week ago, I accepted my first full-time software engineering position. The kicker? I did it without a college degree.
How is that possible?— My Parents
All I can say is I never stopped believing in myself, and I never stopped grinding every single day in pursuit of my goals. I still wake up every morning with the same level of ambition I had on day one.
Impossible is not a fact. It’s an opinion. Impossible is not a declaration. It’s a dare. Impossible is potential. Impossible is temporary. Impossible is nothing.— Muhammad Ali
I’ve met so many amazing people, grown so much as a person, and learned so much in the past year. Having told parts of this story to many friends and receiving positive reviews, I knew I wanted to share it with the world. Specifically, I’m writing for those of you contemplating or in the midst of a similar leap of faith. I hope my experiences will not only provide an idea of what it takes, but the belief that you can too.
My parents were first-generation immigrants who came to America in search of a better life. They also wanted their child to grow up in a land of opportunity. They came with no money and no guarantees; only their dreams. Nearly 30 years later, I’m proud to be living proof of those dreams being realized.
I grew up a conflicted child who spent more hours on the tennis court than on school work. I was never good at academics in the traditional sense. I attended university for nursing before switching to international business. Neither were for me. In my third year, I decided to drop out.
What did I do after dropping out? I moved to Seattle. Let me explain. I thought at some point I would try software development, so the obvious choices were San Francisco or Seattle. Well, San Francisco was totally unaffordable, so the decision was easy. I texted my parents, packed my bags, and left for Seattle.
I ended up working odd jobs for the next three years while soul-searching and contemplating a leap of faith into tech. With the loyal support of my parents and encouragement from my friends, I finally decided to go for it in the summer of 2018. This is the story of what happened over the next year.
The Decision: June 2018
I knew that before I could start at all, I had to make the conscious decision that it was what I wanted to do. That it was the right thing to do. As with any decision I make, I first go through a decision making process. Below are the questions I asked myself:
- Is this something that excites me to my very core?
- What’s the short-term value? If negligible, is the long-term value worth the short-term sacrifice? If monetary, am I able to sustain myself through the short-term costs?
- What’s the long-term value?
- Do I have something valuable to offer?
The first question was an absolute necessity because I wanted to make sure I wasn’t doing this for the wrong reasons. I knew that money, while necessary, doesn’t mean much to me, so having that as my driving force wouldn’t get me very far.
Once I was sure of my passion, I had to verify it was worth it to pursue software development. I wanted to make sure my decision was a rational one, not an emotional one. Value is a very subjective thing, so your mileage may vary. For me, value equates to personal fulfillment, contribution to mankind, and the ability to support myself and my family.
Software development is one of the most fulfilling and empowering things you can do. It opens an infinite number of doors and conveniently, the pay is all right too.
In terms of money, I knew I wouldn’t be able to support myself and dedicate the time necessary to succeed. Fortunately, my parents agreed to support me for one more year. This allowed me to focus solely on the process. Without their help, I wouldn’t be writing this article today.
Finally, I critiqued myself to determine if I could be of any real value to the industry. I didn’t want to end up as some lousy developer who broke more things than he fixed. I’ve always gauged my potential this way, so I can set realistic expectations beforehand. I had a rough idea of what I wanted to achieve and my abilities.
If I thought there was any reasonable chance that I could reach my goals—and I did—the dream was still alive.
First Steps: July–August 2018
Having decided to commit (no pun intended for you git-savvy folks out there), I now had to figure out what the heck I was going to do.
The world of software development is vast and can be pretty daunting at first. You’ll never learn everything without the help of some neural chip that can download information into your brain (sup Neuralink). Lucky for me, my roommate works in tech and introduced me to some great resources. In all honesty, he’s been the single most instrumental person in getting where I am today. Hey Ryan, if you’re reading this, thanks for everything!
I started taking online courses in HTML, CSS, and basic Python development. I was learning how the World Wide Web worked an how to create simple web pages, along with some cool games. These were very exciting and humble times!
I continued in this manner for about two months. By then, I’d reached a point where I felt I had a high-level understanding of the concepts, but no idea how to connect everything in a meaningful way. I also felt that my rate of improvement was far too slow. I needed a catalyst; something to take me to the next level.
I’d heard about coding boot camps, which are what they sound like. A short, high-intensity curriculum designed to teach you the ins and outs of coding in three months, more or less. After doing a fair amount of research, I decided to give it a shot. A $13,000 shot—by the way.
Boot Camp: September–December 2018
By the time I came along, the boot camp industry had already become over-saturated. Even worse, many people were questioning their return on investment. There is a strong need for developers today, but this was even more true five years ago. In those days, you could graduate from a boot camp and be pretty confident about your odds of landing a job. Nowadays, those odds are much lower, contrary to what the advertisements say.
From my experience, there are two reasons:
- Competition is much more fierce now.
- There is a lack of respect for boot camp graduates. Sadly, “boot camp graduate” might as well read “throw me in the trash bin” to recruiters and hiring managers.
Boot camps have developed a somewhat negative reputation over time. I’ve heard honest confessions of this from industry professionals. Based on my experiences job hunting, I’d say it’s true. There are very justifiable reasons for it, which I may cover in a future article. Fortunately, this perspective is changing; Microsoft is one of the companies spearheading this change with their LEAP program.
Do I regret attending a coding boot camp? Not one bit.
I learned a lot about the full-stack development of web apps; I implemented many different frameworks and technologies; I developed in three different languages; and so on and so forth. That stuff is all very important. You want to be technically skilled. But, the most important takeaway for me was that I learned how to learn.
I became confident that no matter what questions I had or what new skills I wanted to learn, I would be able to go seek those answers myself. I was self-sufficient and as a result, my rate of growth increased exponentially from this point forward.
So how did I learn how to learn? I could write an entire blog post getting into the details, which I may get around to in the future.
In short, it requires a solid mastery of the fundamentals. You have to be prepared to live and breathe code. In my case, I was putting in no less than 60-hour weeks, which were more often than not 80+-hour weeks. I still managed to find time to travel around the country on weekends to compete in hackathons.
Yup, I was crazy.
In the end, I graduated feeling good about everything the boot camp had to offer. At the same time, I knew that it wouldn’t be enough to reach my goals.
Facing Reality: Every Day
If I put in the hard work, I was confident I would be in the top percentile of boot camp graduates. Well—there are thousands of boot camps around the country, all of which likely have a few students working as hard as I was. On top of that are the hundreds of thousands of college graduates with a relevant engineering degree (e.g. computer science). Factor in the immense number of international applicants from China, India, and the rest of the world and you get an idea of how much competition is out there.
The way I saw things, I had two options. Quit and go cry in a corner, or accept the challenge and work as if my life depended on it (it kind of did).
What helped me a lot was adjusting my expectations from the start. I didn’t enter boot camp thinking I was guaranteed a job post-graduation. The odds were stacked against me, and I knew I would most likely not find a job immediately, or ever, with only a boot-camp education. It was going to be a long process. And to that end, always trust the process.
I knew I could significantly increase my odds if I kept doing all the right things.
Seeking Opportunities: January–April 2019
For the next four months, I did all the right things. I knew the day would come when the boot camp would stop holding my hand, and I was ready for it. I would say this was the period when I hustled the hardest. Yes, even more than when I was in boot camp. The boot camp had set me up well, and now was the time to buckle down and go after that elusive job offer.
I will handle this section a bit differently and detail what I did in more of a “how-to” style.
What I did:
1. Algorithms and data structures
It goes without saying, but solid skills in this domain are essential for performing well in interviews. There are many resources for this, so I won’t elaborate. Just know that you’ll need to be pretty strong in this department.
2. Keep coding
Don’t let those skills get rusty. You should be improving your skills in the language and framework of your choice. Just be careful you don’t spread yourself too thin. It’s better to be a master of one than a master of none. Work on some new projects and keep that GitHub history green. Contribute to open-source and help people out on StackOverflow. These will get you noticed. After all, you’re applying to be a software engineer. Your coding skills matter.
Meet as many industry professionals as you can. Attend Meetups, message random people on LinkedIn, visit a tech campus and approach every employee you see. Exchange contact details and invite them out for coffee. Seriously, set a goal to meet X number of new people per week. Open a separate bank account for the money you’re going to use to buy them coffee (kidding, sort of). Bring a notepad, ask them questions, and write down their responses. These people are already where you want to be. Learn from them. Most people in tech are very willing to help.
4. Be professional
First impressions matter, and nowadays your first impression is often made online. If you want to be a professional you should make sure your digital footprint is that of a professional. Start a personal website, open-source it, list your achievements, update your resume, link your GitHub and other venues. Don’t be afraid to include something personal like your hobbies. It’s nice to know that you’re still human and not a robot. These will all paint the picture of an active developer who is hungry for a chance. Here is my website if you’re curious.
5. Attend hackathons
What better way to get noticed than to attend hackathons? For those of you who don’t know what they are, here you go. Anyone can apply, although some have higher entry requirements than others. Attending is already a big step forward, and you’re going to learn a lot, but your goal should be to win. Not only do you get a cool medal, but you get one-on-one time with the judges you’ve already impressed. Why is this so important? These judges generally work in tech and are there to scout for talent. FYI, I got my first internship opportunity after winning a hackathon.
At the end of April, I had landed my first internship at a startup. From there, things really took off.
The Internship: May–June 2019
And so I began my first tech internship. All the while, I was still interviewing and hustling on the side for a full-time position. I wanted to have options just in case. That doesn’t mean I didn’t work my tushie off to impress though.
A lot of disgruntled workers don’t give their 100%. Even many happy workers don’t give 100%. Maybe it’s just hard to find people who give a damn. If I can pick one reason for my success, above all else, it’s that I never settled for good enough. I didn’t settle for 80%, 95%, or 100%. I went as far above 100% as I could without burning myself out. Why? Because I knew that every ounce of effort I put in equated to skill and experience. I needed that. I needed to grow and I couldn’t afford to worry about anything else.
So without disclosing too much, I made a big impact (so I’m told) on the company in a short amount of time. I spearheaded the release of a UI overhaul and impressed the higher-ups with my work. They offered me a transfer to the parent company (also a startup) as a full-time software engineer.
Actually, it wasn’t quite that simple. There were more hurdles to overcome and many skilled engineers to impress. The details are difficult to discuss right now since everything is still so fresh. I may get back to it after I’ve had some time to reflect.
Software Engineer: August 2019–Present
Notice the time skip from June to August. In there was a whole lot of working my tushie off again, trying to impress everyone at my new company. I knew they weren’t going to hand over their respect on a silver platter. Every day was a test. It’s a startup after all! You’ve got to not only be the best person, you’ve got to be the right person as well. Somehow or another, I survived to this day and feel accepted by everyone. You’ll have to ask them whether that’s actually true.
So came the day that I had been working so hard for. The day I wrote my name and dated a piece of paper that officially knighted me as a software engineer. It felt good. Just good. I guess I imagined myself jumping up and down crying tears of joy. The reality was: just a sense of peace as I sat alone in a meeting room.
I knew it was only a matter of time. I knew how hard I was working. I knew I was on the right path. More than that, my motivation stemmed from something far greater than my own selfish desires. It was the sense of empowerment that software development provided. The power to change the world. To accelerate humanity in a positive direction.
I didn’t want to die without having left something meaningful behind that would outlive me.
That scared me more than anything.
What’s Next: Present–Future
Reaching my first big goal was reassuring. It validated the decisions I made a year ago. More importantly, it opened a Pandora’s box of possibilities.
I’ve crossed a significant checkpoint, and now it’s time to work towards the next. There are so many things I want to do. So many ways I can contribute to society. So little time to learn. It’s exhilarating.
I believe there is no end to this journey. It’s a matter of how far I can go before Father Time gets the better of me. And I wouldn’t have it any other way. I can wake up every day with a sense of purpose, knowing that tomorrow I’ll be better than I was yesterday. My life has never had so much meaning, and I can’t wait to see what the future holds.
Thank you so much for reading. It means a lot to me. I hope my story in some small way will help you reach your own goals. Believe in yourself, keep hustling, and trust the process.
In writing this story I touched on so many topics that deserve a dedicated post of their own. For example:
- Avoiding Burnout
- Why I Left College
- Startup vs. Enterprise
- The Meaning of Value
- Learning How to Learn
- Finding a Greater Purpose
- Goal Setting and Achieving
- Staying Focused: The Art of Self Discipline
If you think any of these would be helpful or if you have any requests, please leave a comment below.
To all the friends who supported me in my darkest hours (you know who you are), I am forever grateful. To those I met along the way and who taught me so much, I will never forget your kindness and aim to do the same for others. To my parents who never gave up on me, I’ll continue to make you two proud. Thank you and see you all soon.