2019 Edit: I am very gratified that this writeup continues to help people over a year after publishing! I have updated my thoughts in a new essay called Learn in Public . In the last year (and a bit), I went from Hello World in Javascript, to deploying fullstack webapps, to getting freelance jobs, to interviewing at top tech firms including Google, and receiving multiple six-figure offers as a professional software engineer. Here’s how I did it. What I did in a nutshell : Frontend Development Certificate (HTML, CSS, basic JS). Decide that I am going to do this with No Zero Days. Nov 2016 FreeCodeCamp : started FreeCodeCamp Data Viz Development Certificate (SASS/D3/React) Dec 2016 : completed FreeCodeCamp Data Viz Development Certificate (mostly React/Redux) Jan 2017 : started FreeCodeCamp Backend Development Certificate (Node, Express, MeteorJS) Feb 2017 : completed FreeCodeCamp Backend Development Certificate (basically all MeteorJS) Mar 2017 I more or less burned out here and didn’t do much in Apr and May. : applied FreeCodeCamp knowledge to make small apps for work, including with Vue and Firebase Jun 2017 : applied to General Assembly, Hack Reactor, and Full Stack Academy (FSA). Interviewed . First major contribution to an . July 2017 Sacha Greif for Software Engineering Daily open source project : started Junior phase at FSA (Node, Express, SQL, raw Javascript). Started the Impostor Syndrome audio documentary to relate my classmates’ progress. (2019 edit: now dead) August 2017 : finished Junior phase at FSA (React, Redux). Led my own React workshop. Started Senior Phase (React Native, PassportJS authentication, git workflow, CI/CD). September 2017 : at FSA hackathon. Finished Senior Phase (technical interview prep, made ). Became a React contributor . October 2017 Won Developer award my own GraphQL gametorial during Hacktoberfest : Got first freelance clients. 5 hours a day of technical interview prep with (started by a FSA alum) and , conducting search from FSA Hiring Day and own contacts. Received first (>$120k!) offer. Turned it down. November 2017 AlgoExpert CTCI : Gave my to over 100 people. Messy series of job search events with companies from Spotify to MongoDB to Google. Receive multiple offers and finally accept a six-figure offer with a great company. December 2017 first live React talk That’s it! My year in five minutes. In preparation for this post I wrote out the month by month process in a ton of detail on and so if you need more info head there. My only goal here is to show you the big picture of what I did and give you some inspiration if you would like to do something similar. It can be done. my devblog on FreeCodeCamp Disclaimer: In the first draft of this post I did not mention the fact that I am not new to programming (I have coded in VBA, Python, and Haskell before but never as a professional software engineer). I am only new to web development and Javascript . I also shortened the timeline to 12 months given my 2 burnout months. This was a mistake and I have restored the timeline. Guiding Principles All these bullet points above might make the transition process seem easy but they paper over a lot of long nights and some weeks where I felt like I was repeatedly banging my head against a brick wall. Javascript is evolving at a tremendously fast pace (see !) and I wanted to share with you some overall principles that helped me navigate through it all. this viral article pointing out the tremendous confusion going on : I picked up this idea from and it made sense. In short, you simply decide to do -something- towards your goal every single day without fail. This sounds tough, but the upside is, that -something- can be the smallest, tiniest, most inconsequential thing. Want to work out more? Decide to put on your shoes and walk into the gym and do just one push up and you’re done. You can walk out. That day will not have been a zero. No. Zero Days. The beauty of this is of course you’re probably not going to only do one push up. You showed up. You’re going to do more. That’s the NonZeroDay idea. No Zero Days /r/nonZeroDay : Bootcamps are not magic machines. My outcome was above the 90th percentile of bootcamp graduates because of luck plus all the prep I had done going in, which basically meant that I was doing everything the second time around instead of the first. Things that were just opaque copy-and-paste-from-StackOverflow magic incantations to me became much clearer the second time around. Blogging about my journey and interviewing my fellow classmates for my documentary meant I was reliving the same bootcamp repeatedly and drawing insights from reflecting on the experience. Do Everything Twice : I gave my own workshops on and PassportJS to my fellow peers and this not only forced me to explain things but also answer questions that I hadn’t considered in my own narrow thinking. I about my experience becoming a React contributor even though I was just a recent newbie. No matter where you are in your journey you are qualified to help someone newer than you. In many ways, you are the person to do this. Teaching also has a nice side effect of training you to talk while you do live coding in order to show a technical point, which is a marvelous mental juggling act. As it happens, it’s to ace technical coding interviews! My favorite interview memory is teaching a very senior Googler about during my interview. It puts them in a different mental state and it shows you aren’t just a dead weight to the team. What he didn’t know was that I was just channeling from a recent Frontend Masters workshop! Teach To Learn React gave a talk best exactly what you need Javascript generators Kyle Simpson : Humans have a curious aversion towards paying for things that might help them. There is a rational basis for this: most things are disappointments and we don’t want to waste money especially when free options are available. Instead of going for paid programs like , , and , I biased towards free options like , , and FreeCodeCamp. Although I turned out fine in the end, I believe I could have reached the same result in less time if I had sprung for the paid options earlier. Conversely, if I had not gone to a $17,000 bootcamp, I believe I would have taken at least another year to get to where I am, if I didn’t give up by then. (Just as an aside — there are financing programs, scholarships, and tuition forward programs that make bootcamps much more affordable, but I paid out of my own savings.) The increased salary in my new job represents a 1yr return of at least a 2x multiple on that investment, even including opportunity cost and excluding the value of future years of income. Don’t skimp on $10, $40, even $200 course material if it can help you get to that top tier of engineers that are in demand. Time is More Important Than Money Team Treehouse Frontend Masters Egghead.io Pluralsight The Odin Project Codecademy Stanford CS50 : Humans are also inherently social creatures. Because I didn’t have friends or family that understood what I was going through, I turned to online support networks. I downloaded dozens of so that the people talking in my ears all day were programmers too. I found ’s amazingly supportive community. I joined and posted about what I was learning every single day. And of course, a strong community comes with a good bootcamp. These people have their own lives to live and may not ever help you in any way but they will celebrate your little wins. I cannot understate the psychological effects of having your own team of cheerleaders spamming emojis on your slack message, or having perfect strangers reply to say they are going through exactly what you’re going through. Find a Community podcasts Saron Yitbarek #CodeNewbies the CodingBlocks Slack group : I owe this to , founder of my bootcamp ( ). Don’t fixate on the outcome. Maybe you’ll take 24 months, or 6. Wanting to be a software engineer doesn’t tell you -how- to get there. Don’t take my story to mean “I must do FreeCodeCamp and take a bootcamp”. Plenty of people are still unemployed months after taking a bootcamp. Focus on how I, and others who have totally different paths from me, spent our day to day, and dealt with roadblocks. Have a system, and if that’s not working, figure out what else you can do and fix it. Obsessing on a specific goal and despairing if you don’t reach it doesn’t help. Systems, not Goals David Yang interview here Fight Impostor Syndrome I want to leave you with one concept and it has many names. Ira Glass (the uber podcaster at NPR) calls it The Gap: Social Scientists call it : the Dunning-Kruger Effect And for the rest of us, the term is Impostor Syndrome: It’s what I named my audio documentary (2019 edit: now dead), with the idea that if I could name the elephant in the room, I could fight it. What’s more “impostory” than going from paying thousands of dollars and months of time to learn something, to actually being paid many thousands of dollars to do it? Worse still, having the audacity to over it? negotiate It is always going to be a truth that the more you know, the more you also learn about that stuff that you didn’t know that you didn’t know. So if you are doing it at all you are going to feel like you are at what you are doing. This is . Just don’t stop there, keep working on your system. right terrible good Be at peace with the fact that there are multiple paths to what you want and the only way to figure out which one works for you is to try them. Often twice. Pay if you have to, because this is valuable stuff. Find supportive people. Do this every day, then teach what you learned. These are the principles you should take with you on your new journey. And remember: No Zero Days. If this essay helped you at all and you’d like to update me on your own 2018 journey, find me on Twitter @ Swyx ( https://twitter.com/swyx ). I’d love to be part of your cheerleading team! Thanks to Jeff K, the CodingBlocks gang (Firro, Joe, dance2die, and sowen) and the FreeCodeCamp community for reviewing the full length draft of this essay !