After college, I moved to NYC and got my first job doing allocation work in corporate retail. My starting salary was $50k a year. My job entailed entering all the things we wanted to order and tracking the orders. Exciting, right? About 8 months into that job, I actually switched to a different retailer and started software engineering making the same salary. After 2 and a half years with only a measly $2000 raise to my career, I made some huge changes that allowed me to start making a 6 figure salary.
The software engineering I was doing might not be one you’ve heard of–I did something very specific called VBA Development. VBA is a language you use in Excel or within other Microsoft applications. It’s responsible for a lot of magical automation you might have seen. The kind like pushing a button and 500 cells populate with data. Either way, it wasn’t a super lucrative form of engineering.
I was worried about the future potential of my career since it already seemed undervalued. Not to mention I had always wanted to do more visual work. I was trying to boost my skills by learning web development on my own. At the beginning of 2015, I had my company pay for a class at NYU, and I got great intros to programming through Coursera and Code Academy.
Though that was a great start and I did learn a ton, it wasn’t enough.
Why Complete Self Teaching Is Hard
When it comes to being a professional Software Engineer, it’s a lot more than knowing just basic programming. There are tons of different programming languages. When you’re a beginner, you’re just learning how to think in programming logic, so any programming language will do. Each programming language has the same basic features and logic. But learning the language is just a building block. How do you do the rest? This is where I was stuck. I had been trying to teach myself for years and continuously ran into the “I know the basics, but now what?” road block.
You Need More Than Just Basics
If you’ve never tried programming before, consider this example:
You’re a kindergartner learning the alphabet for the first time. You learn how to string letters together into words. You start understanding the concept of written language. You string together letters to make words and writing words together. You understand for these strung together words to communicate intentions and stories, they need to be in a certain order.
Great! Now you can write an essay right? Now you can write a short story! Now you can write a novel! Yes, you could start doing any of these things given your building blocks, but you might be a little lost in how to properly do these.
Essays are structured differently than short stories and short stories are structured differently than novels. You, as a kindergartner might not really understand that distinction. Essays have some set conventional formulas like requiring informational context setting and a logical argument towards a conclusion. Short stories require some context setting, but not always. Generally novels require more context development. Not all short stories or novels have conclusions, but some do.
This is sort of what it’s like when you’re trying to self teach. There are tons of different languages. There are tons of different associated purposes of each language. There are conventions that are considered normal for certain types of software engineering. There are conventions that are generally considered wrong for others. Yes, you can do x, y, z one of many ways, but the industry generally has an agreed upon “right way”.
You Need More Than Just Conventions
Let’s take the example further:
You write your first novel! Awesome. Now what? It’s just sitting in your Google Drive collecting dust. How do you turn this file into a real life physical book, and where do you sell it to get people to read it? How do you get it published? How do you find a publisher? Oh, you wrote your novel in Spanish, but actually, publishers only like publishing novels in English because they have more English speaking editors.
Similarly, there’s a ton of logistical and environmental infrastructure surrounding professional software development that’s very difficult to learn. It’s not impossible to learn, but you may not even know you need to be learning it.
An Opportunity For Change And Structured Learning
I had 3 very close friends who went through a 12 week immersive coding bootcamp called Hack Reactor. None of them were software engineers previously. None of them had very technical roles before. And they all made it out of the program with significant pay increases. I had heard from each of them off and on that it would be perfect for me and perfect for the career transition I wanted to make. I was already programming, and I had graduated with a minor in Computer Science.
Breakdown Of Friends Careers Pre-Hack Reactor
Friend 1 – Alzheimer’s Researcher at NIH
Friend 2 – Consulting Analyst at a Market Research Company
Friend 3 – Analyst at LG
The caveat was that it was an $18,000 course, and it was full time in San Francisco, so I would have to quit my job and move (to another high cost of living city), and who knew how long it would take to get a job afterwards?
Hack Reactor’s tag line is “Don’t just Learn to Code: Think Like a Software Engineer”. Hack Reactor boasted a 99% hiring rate within 3 months of finishing the program, but I still worried I would be the 1%. Hack Reactor also boasted a $105k average starting salary at the time, but I still worried, what if I was below average? What if I didn’t have it in me to get the ROI? I really had a lot of self doubt whether I could be one of the people who turned out ok.
If you’re interested in reading more on their 2017 hiring rates and statistics, visit their Outcomes page.
I Committed to Really Trying (Part 1)
I felt completely stagnant in my current role. I was trying to switch teams, but the process was crawling, and the work I was doing to transition seemed so negligible and unnoticed. I had to apply for Hack Reactor and pass a live coding Skype interview anyway to even have the option of going.
I took notes on paper as I went through the book as well as did all the coding exercises for an entire month, after work, and for several hours on the weekends. I had never committed so hard to making something happen. I hadn’t even prepared for interviews for my current job with 25% of the commitment I put towards passing this interview for Hack Reactor. I failed so many times in the past by fooling myself saying I tried, when I didn’t go all in when I was “trying”. This time, I committed to going all in.
I Took a Calculated Risk and Invested in Myself
Spoiler alert! I passed my Hack Reactor interview! But then came the next decision. What now? Should I take the opportunity?
What if coding bootcamps were just the shiny new investment people were talking about? What if Hack Reactor was? What if the people who had successfully completed it and come out with a new shiny job were just the exception, not the norm? What if the statistics were made up? Was this just another “get rich quick” scheme to get people to buy in? Was it really going to be worth the $18,000 price tag? Was I even ready yet? Maybe I needed to prepare more…
When we find an opportunity, these are the questions we always ask ourselves. It’s not just applicable to software engineering or this program, but it’s applicable to any opportunity that sounds too good to be true. I’ve heard of people selling things on Amazon making 50k a month. You just think…how is it possible? They must have already known x or had quality y that allowed them to be successful.
With every opportunity, there’s always the chance of failure. There’s always the choice to say that other person succeeded because of x, y, z factors that don’t apply to me. But in the end, what good is that going to do you? It did nothing for me. Stop making excuses for why you can’t, seriously. I didn’t learn this for so long and I didn’t feel empowered until I started doing instead of finding reasons not to do.
It’s up to you to assess the opportunity and then above all else, believe in your own ability to execute on it to the point of success. It’s up to you to cultivate the skills you need with every failure to ultimately succeed.
It was definitely a little easier to take the leap for me since I personally knew 3 people who had gone through successfully. So, I signed on the dotted line. I took the leap. Yes, I was investing in the program, but ultimately, I was investing in myself and my ability to take from the program what I needed and run with it.
Two years ago today, 8/14/2015, I flew from New York to San Francisco.
I Had Luck On My Side
Because what success story involving hard work doesn’t also involve a little bit of luck?
When I agreed to go to Hack Reactor, I had no idea how I was going to pay for it. I had only about $10k saved, and based on my San Francisco cost of living calculations, that was barely going to cover living expenses for 3-4 months and beyond if I couldn’t find a job immediately.
I applied to a scholarship sponsored by the SF startup, Optimizely, that would have paid the entire tuition, but unfortunately I was rejected. Both my parents and Hack Reactor ultimately came to the rescue. Hack Reactor allowed a one year deferral of $8000 of tuition to make the program more affordable for minorities. And because 2 of my friends had successfully gone through the program, my parents felt comfortable fronting the rest.
If they hadn’t, I would have had to use my $9k of savings for the tuition, cash out the $2000 in my 401k, and couchsurf at various friends’ apartments in SF, which is a huge stroke of luck in itself that I have such an incredible support system out here!
I Committed to Really Trying (Part 2)
Once Hack Reactor started, it was really rigorous. You start with about 80 other people split into 2 cohorts. You code all day from 9 am – 10 pm everyday Monday – Friday and 9 am – 6 pm on Saturdays for 3 months. You can read more about what it’s like on their blog.
The first 6 weeks, there are programming assignments due every 2 days. You complete each assignment with a new partner from your cohort. It’s called pair programming. In each assignment, you’re picking up conventional industry tools and best practices. The last 6 weeks, you complete 3 projects with 2 groups of 4 people, and you get to make whatever you want, however you want.
If you want to take a look at what I worked on during Hack Reactor, you can visit my Github (it’s where most programmers keep their programming portfolios). If you click through any of the Repositories published in late 2015, you can see they’ll say “This is a project I completed as a student at hackreactor.”
When I put it this way, it almost seems easy. They give you a path to follow. That’s what you’re really paying for–structured curriculum. You do an assignment every two days. You have 2 lectures per day. You have an assessment every Monday.
But every day of the program, you’re confronted with material you don’t know and a very strict deadline for the 2 day assignment despite getting stuck constantly and feeling completely lost. Very rarely, students who were really behind on coursework were asked to leave the program, and the idea that you could be the next one asked to leave looms over your head every time you’re stuck or aren’t picking up something that everyone else seems to get. Multiple classmates of mine were stressed and worried they would be asked to leave. You kinda felt like this:
The biggest thing I had to confront on a daily basis still was my self doubt. How can you fully give yourself to learning when half your energy is spent worrying and wondering “Can I do this?” That’s what I mean by committing to try. It means completely leaving the self doubt at the door.
Once I was able to do that, I felt I learned more than I ever had been capable of before. I was able to truly enjoy my time in the program. I was happy learning. I had this creativity to tackle technical problems I never had before. If you want to see the final project I built with 3 other friends/classmates, you can check it out at dateworthy.io (it’s a date idea generator!)
I Committed to Really Trying (Part 3)
Once the program was finished, it was a full time job search. Luckily, things move pretty quickly in the Bay Area for software engineering jobs. Hack Reactor does provide resume and job search coaching, so that really helped to build a framework around what I should focus on in my job search and how I should market myself.
My job search out of college was a difficult one filled with (again) self doubt, questioning if I was doing it right, etc. I refused to let that be a part of this job search. I was committed to not letting the fear of rejection stop me from trying.
Mostly, it was just an onslaught of applications. I applied to 5-10 companies almost every day. Over a 1 month period, I applied to ~120 jobs. 25 companies rejected me. 57 didn’t respond at all. 5 companies rejected me after the phone screen. 2 companies rejected me after a take home challenge. 3 companies rejected me after the technical phone screen. 3 companies rejected me after a half day on site. I’m so lucky to have experienced so much rejection and “failure”!
My schedule at the time looked a little like this:
As opposed to 2012 (below) when I was looking for my first job. If this doesn’t convey the difference in mindset, initiative, and effort, I don’t know what will!
I Found A Job In A Location Where My Skills Are In High Demand
My job search ended when I finally got 2 offers after a single month of hard core job searching. One for a full time position, and another for a contract to hire position, both offers were 6 figures. The average salary of a Software Engineer in the Bay Area is $124,000, so it was a great place to find a job.
I ended up taking the contract to hire position which paid $70 per hour, and I was working 50-60 hours a week. It worked out really well for me because I was still under my parents insurance at the time, and within 3 months, I was able to pay Hack Reactor the deferred $8000 of tuition while still building a lofty emergency fund.
Are Coding Bootcamps Worth The Money?
Short answer, for me, 100% yes. It was worth more than I paid for it. Why?
- The curriculum taught me the practical skills to actually build an end product. As promised, it taught me the conventions and infrastructure I had been missing the entire time I was self teaching.
- The program provided a great network of supportive peers and alumni network (our graduates Facebook group is now 2090 members as I write this).
- Unlike most programs at the time, Hack Reactor had great job search support and resume coaching.
- The program taught me how to learn.
- The program made me a hustler and made me realize I can improve in any area I want, as long as I’m willing to work for it.
With that said, there’s no “get rich quick” way to make more money. Whether it’s getting a raise/promotion, changing careers, starting a successful business, we need to appreciate the fact that a lot of hard work and some amount of risk goes with it. It’s easy to be blown away by someone’s end result as they tell their story in retrospect. The point of these stories isn’t to discourage people into thinking “that can’t be me”, it’s the exact opposite.
What was the moment you realized you just needed to go for something, and did it work out for you? Are there any other questions you’d like answered about coding bootcamps? Would anyone be interested in reading an interview of someone who was completely non-technical before?