8 Months to 6 Figures! : learnprogramming

Introduction, Background, & Disclaimers

Hello everyone, in this post I will be writing a detailed guide on how I managed to get a full-stack engineer job after 8 months of self teaching. This will include a more efficient version of what I did so you don’t waste time. I will be going over what you need to learn, resources, and what you need to do after. It is critically important that you take EACH section to heart.

Full disclaimer, some of you may need more or less time than what I needed. Everyone is different, do NOT set your expectations to be the same as mine. You know yourself better than I do, so take what I say with a grain of salt.

A little background about me, I have been a construction engineer for a year when I decided construction was not for me and I wanted to go somewhere else. I took quizzes on what I should become, I landed on fullstack development and I haven’t looked back since. Since then, I have learned a lot, built great projects, made connections, worked a contract, and landed a full time job.

Do NOT be overwhelmed with the sheer amount of content here. It is a lot, but it will all become secondhand knowledge with time. Take it one section at a time and do what you can. Now without further ado, let’s get started.

Roadmap

Here is a general roadmap of how your process should look like, I will provide you with resources and guidance at each step.

  1. CSS & HTML

  2. JavaScript

  3. Build a project with vanilla CSS, HTML, and JS

  4. Node.js & NPM

  5. React.js

  6. TypeScript

  7. Build a project with React.js in TypeScript

  8. Express.js

  9. MongoDB & PostgreSQL

  10. Build a full-stack project with either MERN or PERN (or BOTH)

  11. Bonus material, and projects with bonus material

  12. Git & GitHub

  13. Build your portfolio & resume

  14. LC & Sending out Applications

Always remember that you need to tailor some things to what works for you. This is by no means a size fits all approach, but it will work if you follow it as closely as possible.

A VERY IMPORTANT NOTE ABOUT PROJECTS: You need to build something UNIQUE and OF YOUR OWN DESIGN/STRUCTURE. Do NOT look up easy examples of projects because they will NOT get you far. You must hold yourself up to a standard. This will give you a better understanding of full stack development and systems design which is critical for a lot of jobs.

Now, let’s break down each section.

CSS & HTML

CSS & HTML are the bread and butter of every website. They determine the overall structure, content, and looks of every website. Here are the only things you need to cover them so make sure to follow along the course:

Great, now you know how to build a basic website. Let’s move on to JS.

JavaScript

If you are a full stack engineer, this can be the only language you ever need to know, thus, it IS critical that you come to learn it DEEPLY and understand how it functions. It is always up to you how you want to learn but I will recommend this e-Book which is FREE and EXHAUSTIVE and will contain all the info you will ever need on JavaScript as a vanilla language. You need to go through both Parts 1 & 2 to understand JS as a language and how it interacts with the browser.

Not all of the book will make sense to you now, but I promise you will use its information once you move on to React, Node, and LeetCode. Furthermore, watch the event loop video which is important to understand JS in the browser and will allow you to do some cool stuff.

Congrats, you now understand HTML, CSS, and vanilla JS

Built a Project

For each and every single project step in this process, you NEED to THINK of what YOU WANT to build and build it! Since this is your first project, be realistic with what you can accomplish but CHALLENGE yourself. What you have learned so far will NOT be everything you need to make this project happen. Google is your friend as you will need to visit MANY websites to learn how to make a certain thing work. Challenge yourself, prepare to be humbled, learn, and build an AWESOME first project. Start strong!

Node.js & NPM

So far, we’ve made JS run in the browser, but how can we run it on our computer? That’s where Node.js comes in. Node is a JavaScript runtime which allows your computer to understand and run JavaScript. All you really need to understand is that.

Node Package Manager (NPM) will allow you to install and manage packages via node, which allows you to customize your project with pre-built packages and services. This one is fairly straightforward and you will naturally pick it up as you’re building projects.

React.js

Congrats, you’ve reached the big boy stuff. React is the single BIGGEST JS framework and the most widely sought out skill if you are looking for either a front end or full stack job. It is CRITICAL that you become REALLY good with React. Thankfully, this scrimba course IS A PERFECT FREE LEARNING ENVIRONMENT for React. Go through it step by step as the instructor says. This is how I learned React and became VERY good at it.

TypeScript

TypeScript is a superset of JavaScript that adds static typing to data. What does that mean? It means that your IDE will know exactly what data type each constant/variable will be and will make your life A LOT easier. TypeScript’s power comes when you’re building a project as it builds a structure where you will KNOW if your code will run. Anyone who built a JS project knows how many times you will run into runtime errors.

It’s important to understand that TypeScript does NOT actually run in your browser. It gets compiled down to vanilla JS when it’s being run. It is fairly straightforward and you will mostly pick it up just by using it.

Let’s move on.

Build a project with React.js in TypeScript

Now that you know TypeScript and React, build a React TS project using the same general guides for your first project (unique, ambitious, and awesome). Again, I will let you decide what you want to build for yourself. Make it a front end only, don’t worry about servers and databases for now. Some resources to help:

Once you’ve built a project you’re happy with, let’s move on.

Express.js

Express is a Node.js framework which makes running a server/API REALLY EASY for any project. Understand that when building your projects, your front end and back end will run on DIFFERENT ports. For instance, I like to run my react apps on 3000 and express apps on 4000. Now, let’s learn some Express:

MongoDB & PostgreSQL

MongoDB is a NoSQL database, which means each data type is unrelated to other data types and it uses it’s own query language. That’s not to say these schema do not interact with each other. PostgreSQL, on the other hand, is a SQL database which means it uses Structured Query Language (SQL) to work and the different tables can interact with each other. You should definitely learn both, but it doesn’t hurt much if you just learn one. Some jobs will look for SQL others will look for Mongo, up to you but I recommend both.

Furthermore, you should learn PG node if you want to use PSQL.

Build a full-stack project with either MERN or PERN

Congratulations, you now know everything you need to build your first full stack project. As with the other two, build something UNIQUE TO YOU. You will be putting these projects on your portfolio, be proud of them. You have two options here:

Bonus Material

This is incredibly important if you want to stand out, here is some extra stuff you can learn to take your full-stack projects to the next level.

Whatever you decide to learn (I recommend all) you MUST either build a project with all these technologies or implement them in your old projects.

Git and GitHub

Git is a version control system that allows you to manage your projects and code via versions. Furthermore, it will allow you to post things to GitHub and host them online. GitHub, which I’m sure you’ve interacted with at this point, is an online platform where you can share and post your code on the internet. It is crucial for hosting websites and servers.

Now that you’ve learned these two. Let’s move on.

Build your Portfolio & Resume

To build your portfolio, you will need to host your projects online. To do so, you must get familiar with Heroku; where you will host your servers, and Netlify; where you will host your websites.

Now that you’re familiar with these two, push all your projects to GitHub and use Heroku & Netlify to host them as needed. Pin your projects on your GitHub, make a clean readme for each one, and a readme for your profile to stand out.

For your resume, you will highlight your projects and all the skills you learned. Here is mine as an example: https://www.reddit.com/r/resumes/comments/tk4r5h/hey_all_im_a_self_taught_full_stack_developer/

LC & Sending out Applications

You may or may not need to LeetCode to land a job, however I strongly recommend it because it will teach you a lot on how to improve as a developer. Sure, it gets a lot of hate from the dev community but it’s part of the game you need to play to get a job. Better to learn and work than to complain about it. Here are the only resources you need:

Build your LeetCode experience and solve problems as much as you can.

Now that you have a resume, GitHub, projects, and LC under your belt you can start applying. I won’t get too much into this because it is beyond the scope of what I’m trying to convey so you will need your own research. Build a strong LinkedIn and AngelList profile. Apply to companies on both, email them, call them, sell yourself. You NEED to hustle on the jobs you REALLY want if you want to get them. After enough applications, you will land something. Each failure is a learning experience for you, so your soft skills better be sharp as a knife. Good luck.

Closing Remarks

This by no means is a one size fits all, and you will likely deviate from it a little bit and that’s completely okay. I intentionally left a lot of details out because you will need to be comfortable running on your own, be ready to do LOTS AND LOTS of research to get what you want.

Wishing you all luck on your journeys. Stay strong, ambitious patient, and hungry my friends. Please let me know in the comments if you have any questions or input and I will be glad to answer.

Leave a Comment