I spent $40 to learn to code. This is overly simplistic, but in general I spent only about $40 on paid resources. I didn't go to a coding bootcamp, and I didn’t go to college for a Computer Science degree. I've been working as a software engineer for the last 4+ years, mostly at a fast growing YC startup and more recently at a big scary FAANG company 😱. Why did I choose this path? What resources did I pick and how did I go about choosing them? And would I do anything differently if I were to do it today?
Why a $40 bootcamp?!
First off what is a coding bootcamp? If you haven’t heard of them, they are basically occupational schools that teach computer programming. Usually in the flavor of full-stack, front-end, backend, data engineering, or even something like design/UI/UX. They are short, intensive training programs with the goal of getting their graduates employed in high paying jobs quickly. Many of them have promised very high job placement ratings, and some have also been embroiled in scandals from their claims. They are pretty pricy, ranging from free with a percentage of your income going back to them after getting hired all the way up to between $10,000-$30,000. I know a number of people who attended bootcamps and got great jobs after and it really changed their lives. So I’m not going to bash bootcamps in any way but wanted to highlight what they are and especially the high price tag. (There are free versions of bootcamps that are fully self-paced with online support communities as well if you’re interested checkout FreeCodeCamp, or the Odin Project). I’ve gone through some of FreeCodeCamp curriculum and it is pretty awesome.
Given this, why did I choose to do a self-taught $40 bootcamp? The quick answer is money or lack thereof. Income sharing wouldn’t work for me because I knew that when I got my first job I was going to need all the income as well to support my family. I also didn't have the ability to cash-roll a bootcamp 10’s of thousands of dollars (though this would have probably reduced my overall stress). I already had a lot of student loans and I didn't want to take on anymore debt. One of my goals was (and still is) paying off student loans, so I was really committed to figuring out my career change in a way that honored that goal (I transitioned from working at a non-profit/church).
Time was also a big factor in my decision making. At the time I had 4 kids (now 5), and was living in SF. With the crazy cost of housing in 2018 I needed to figure out a way to get a job as quick as possible. In my mind I couldn't afford to wait for bootcamp applications or the next cohort rotations even though in retrospect it might have been faster. With my cheap (and stressful) plan I was able to start learning right away with the resources I had on hand.
The Resources
I kind of stumbled onto this path but here’s how it started…
A friend of mine had told me about Udemy which I had never heard of before and he recommended a course that was apparently really popular and a great starting point. That course was Colt Steele's - The Web Developer Bootcamp. And boy was that a great suggestion. I looked it up and saw 100s of thousands of students and reviews and had a $10 coupon for it. There was very little risk involved. Even though the content was dated (more so in 2018 when I went through it), the course was updated enough to complete without any major headaches. He made the content interesting, covered a bunch of technologies, and he even had a paid TA that answered questions in the forum which was really helpful. Overall it was a great beginner course for full-stack web development and I believe he keeps updating and modernizing it, so I'd definitely check it out if you're curious. Colt, if you ever read this… thank you.
I have no affiliation with Udemy or any of the content I recommend, just sharing my personal experience
As I finished this course insanely quickly I had another formative conversation with a different friend who attended a Hack Reactor bootcamp and he shared some technologies and key words with me that I wasn't familiar with. Things like React.js, backend, frontend, and full-stack. I started researching those concepts on Google and a picture of the path forward slowly formed in my mind. After my googling I realized that front-end/full-stack was a good path for me and I realized I needed at least two things on top of Colt's course: a course on JavaScript and a course on React. At the time, Brad Traversy's Modern JavaScript from the Beginning looked like a great next step, and I also found Andrew Mead's The Complete React Developer Course (with Redux). Both of these courses were excellent albeit a bit over my head at times. Especially the React course, but I pushed through it.
In one of my random Google searches I was looking for what courses I should take after Colt Steele's course that would help me better prepare for a job and I found some random Redit thread where the person recommended a Udemy course on Git and web development creatively titled Git a Web Developer Job: Mastering the Modern Workflow by Brad Schiff. Outside of Colt's course this course is what actually got me my first job. The company was looking for pixel perfect frontend help and this course helped me learn the process of systematically taking a mock (image or pdf) and creating it in code. Thank you Brad...
What would I change?
Going through these courses worked really well for me. I did a lot of other things afterward like building projects and learning random things but this was the bulk of my curriculum.
With that being said, there was a lot of stress and a lot of unknowns with the whole process. It was hard not having a super clear timeline for how and when I would actually get a job. I think I applied to about 500 jobs on linked in and mostly didn't get responses or had auto-rejections. I don't think I even had one interview from those applications. In retrospect, I’ve identified at least a few things that I think could have helped me in the process.
Things that would reduce stress
First, if I did it again I would definitely find a mentor earlier in the process who had accomplished what I was attempting. I did pay for a mentor during my last month or two before I got a job, but having one earlier would have potentially helped. I’ve thought about mentoring others in this process, let me know if that’s something you’d be interested in. Somewhat related… I’ve recently started an Essential JavaScript series on YouTube, check it out if your learning.
Second, I would build more personal projects between classes and even between class modules. I was so focused on completed classes for the "knowledge" that I didn’t spend enough time with the practical aspect of building smaller projects to really internalize it.
Third, I would have benefited greatly from a better roadmap and maybe some general introductory material to the industry. Maybe some blogs about what it’s like learning to code on your own and what it takes overall. It turns out things were much more complicated than I realized and I had to learn a lot of different technologies and skills to become proficient.
Lastly, learning the basics of algorithms and data structures earlier in the process would have also helped a lot. A Leetcode roadmap organized systematically by importance would have made future interviews much less stressful. If I could have started with easy and worked my way up to medium with a clear plan — that would have been invaluable.
Course Specific Changes
Would I change anything related to the courses I chose?
In retrospect I would probably take a React course that doesn't use Redux, or just skip the Redux part. That made learning React a lot more difficult than it needed to be. I should have been focusing on practicing React proper, but instead I got a bit overwhelmed and confused with all the terminology and additional concepts. Plus, all of the projects I have worked on since have not used Redux to date. Most have used React's Context API. I have heard people rave about Redux, but I just haven’t needed it myself.
Also, at the time Colt Steele's course focused on some dated technologies. I would have saved some time with the modern version of his course (which didn’t exist at the time), something that jumps you straight into JavaScript and React more quickly. I learned a lot of older technologies with Colt's course that were generally helpful but it’s probably less efficient to start there today.
As I mentioned earlier I would also probably add a course on Leetcode, since a lot of companies still use Leetcode style interview questions. Knowing how data structures work is really helpful for writing more efficient code. I’m not sure if there are any good Leetcode specific Udemy courses but something like Neetcode.io is a steal for what it offers.
Let me know if you have any similar experiences, course recommendations, and any questions in the comments.
-Jesse
This is so cool! I’m also a non-techie trying to learn programming so it’s inspiring to see folks like you who are self-taught programmers