Become a Full Stack Developer Making $350k a Year

Alon Lavie
6 min readMay 11, 2021

If you read my last article, you know that I am a student at the University of Toronto looking to become a full stack developer (I feel I’m using this term a lot, so I’ll coin the abbreviation FSD) with as little spending as possible, and that some research has helped me devise a plan on how I will go about this. This blog is unique because it will take you through my journey to becoming an FSD in real time: this makes all my articles accessible to readers, helps me track my progress, and allows you to follow along, potentially landing a job as an FSD yourself.

In today’s post I am going to be sharing this step-by-step plan with you, and the resources I consulted to formulate it. I’ll also be honest and say that I am starting out this blog as a intermediately experienced Python programmer with a decent understanding of algorithms and basic data structures. However, worry not: this is not a prerequisite for following along with my posts, and I will be careful to limit my use of unintroduced programming terminology. This is not to say that you will not have to learn a programming language at all; a big part of becoming an FSD is becoming completely fluent in asynchronous JavaScript (I will explain what that means later), and this will be the chassis for the building of all your programming skills.

Each step of my plan can be divided into three categories: technical, non-technical, and hybrid. A technical step is a step which develops a technical programming skill, like learning a programming language, learning how to use a software, or working on a project. A non-technical step is a step which doesn’t have much to do with programming, like constructing a portfolio or doing freelance work. A hybrid step is a step which involves both technical and non-technical tasks. The category each step falls into will be listed beside it. Additionally, if a given step requires previous steps to be completed first, this will be mentioned beside that step. It is important to note that I might tackle any steps that don’t have prerequisite steps in scattered order based on what I think will maximize my learning. For example, I might learn some basic JavaScript, then learn about databases and concurrency, then learn more advanced database JavaScript which I would not understand if I didn’t understand databases and concurrency.

Enough blabbering. Let’s get straight into things. I have outlined the general plan directly below (where each step is a high-level goal representing many sub-steps). I will give a more detailed rendition of each step as I tackle it; this will come in later articles.

  1. Learn basic JavaScript (technical). JavaScript is vital to mastering back and front end development. Practically all serious FSDs are fluent in it. It is a requirement for most jobs and internships. I can’t stress how important this step is. Since I am already familiar with this step, I will be skipping it. However, I will still post an article outlining practically everything I know about basic JavaScript as well as good resources for self-teaching. If you want to get started immediately, your best bet is CodeCademy’s Introduction to JavaScript.
  2. Complete Roadmap’s step-by-step guide to modern front end development (technical; requires step 1). roadmap.sh is an amazing resource for getting started as a developer, and their front end development roadmap outlines the steps to becoming a front end developer pretty clearly. Basic JavaScript knowledge is not absolutely critical, but will make the ride a lot smoother. I will be tackling this step at the same time as I tackle step 3.
  3. Complete Roadmap’s step-by-step guide to modern back end development (technical; requires step 1). Their back end development roadmap also very clearly outlines the steps to becoming a back end developer. Again, I will be tackling this step at the same time I tackle step 2.
  4. Learn about algorithms, efficiency, data structures, and data analysis (technical). This will not take too long, and any old course textbook will do for this step. I have already completed this step as well (via university coursework), but nonetheless I will be posting ample info about it. If you want to get started right away, I recommend MIT’s OpenCourseWare — a massive free course archive — and CodeCademy.
  5. Develop, develop, develop (technical; requires step 1, 2, 3, & 4). Right away from step 1 you want to start developing, getting tons of practical experience in. The more you learn, the more you want to scale up your projects, making them more complicated and more useful. However, unless you’ve created a really remarkable program, most of the projects making it to your professional portfolio (see step 6) will be ones you’ve created after completing steps 1, 2, 3, and 4. I will be constantly posting about projects I am working on, ideas for projects you can work on, and about other developers’ projects for inspiration and to keep you updated. I also highly recommend creating a GitHub account and archiving all your projects there. While we will be moving on to later steps, you should always be passively working on this step, continuously expanding and improving your portfolio.
  6. Forge a stunning portfolio site (technical & non-technical; requires step 5). After working tirelessly on various large projects, it’s time to show them off. Use your front end design skills to create a stunning portfolio website showcasing all your projects, and a link to your résumé. I will be posting some site designs for inspiration as well as my site (once I create it). A nicely designed site and a well-endowed portfolio will set you apart from other job and internship candidates. It makes you seem much more serious and professional. This might cost some money, but nothing crazy (most domains cost $10 to $20 a year), and a worthy investment at this point.
  7. Cultivate your professional profile (non-technical; requires step 5). Like any other professional; update your LinkedIn and your résumé. Attend some programming conferences through a university or well-established organization. Do some freelance work through a site like Fiverr.
  8. Land an internship (or two) (non-technical; requires step 6 & 7). Keep on the lookout for internships at companies whose mission you value (even startups!). It doesn’t matter if they’re unpaid; this is about developing your professional experience. Use your new and old connections to hunt them down. Use job hunting sites as well. If you’re attending university or college, look through them. Update your résumé and portfolio accordingly, and don’t forget to keep developing (step 5)!
  9. Land a job! (non-technical; requires step 8). We’re finally here. Your portfolio is full of impressive projects, you have professional experience and an abundance of connections. And if you’ve made it this far it means you have an exhilarating passion for development, which employers value more than any skill or experience. At this point, you should be getting high-paying job offers left and right, and if not, you’ll be able to land one easily. Remember not to undervalue yourself, because you’ve worked your butt off, and you deserve a high salary. And most importantly, make sure you’re going to enjoy what you do.

There she is: a 9-step plan to becoming a FSD making $350k a year, with practically no spending at all. If you think you’re ready to embark on this journey with me, do make sure to follow me and subscribe to my articles so you can stay updated. If you’d like to embark on this journey independently, then feel free to make use of this article (and my other articles) as you please. And finally, if you’re just here to enjoy the ride, then enjoy away. If you are serious about this undertaking, then please keep in mind that it is going to be a breathtakingly long and hard journey, but one that will certainly pay off. My next post will be a complete outline of step 1 as well as helpful resources for its completion. Stay tuned!

Just me sipping a cup of terrible coffee.

--

--

Alon Lavie

A University of Toronto student writing about his journey to becoming a data scientist.