Welcome to my free series on learning to code. Through this free series, you will go from zero experience to deploying your first fullstack web application. Along the way, I'll teach you the essential web development concepts needed for 2021 and beyond.
Please share this series with the hashtag #fullstackroadmap and help me spread the word!
Where I will be updating this course
All updates to this series will be made on my Github repository.
If you don't have an account on Github, create one now. You need to do this to follow along with this series, but this will also be the account that employers will look at when you are interviewing for jobs (so make sure your username is professional).
Once you have created your account, go to my series repository and click the star so that you can find it easily later.
Who is this for?
This series is perfect for you if...
- You have never written a line of code in your life, but want to learn what coding is all about
- You have some experience with front or back-end web development, but need to brush up on your skills
You might ask, how could this series be for all of these varying skillsets?
Well, my intention with the series is to go in sequential order from the most beginner topics to even some advanced web development topics, which means you can jump into the series according to where you are at in your personal journey!
What skills will I have at the end?
Let's be very clear. This series will teach you how to code, and will teach you the discipline of web development.
Since this series will teach you how to code (which is very transferable to other disciplines), here are the disciplines that we will NOT cover in this series:
- How to code IOS or Android apps
- Data science, AI, and Machine Learning
- Advanced DevOps (we will cover the basics though)
What topics will I learn in this series?
In this series, you will learn the following:
- General web development concepts (not specific to any language or framework)
- Exposure to various web frameworks without diving too deep into any
A detailed outline can be found at the bottom of this post.
What are we building?
I want you to walk away from this series with something useful, which is why we will be building out your personal website and deploying it. By the end of the series, you'll have a personal website that you can write blog posts on, display your portfolio and resume on, and that you can extend even after this series is over.
It will be small and inefficient in the beginning, but we will refactor it several times throughout the course (for the sake of learning) until it is a completely functional and useful app.
The best part? I have no idea how it is going to look right now. We are going to build it as we go, which should lead to some interesting lessons and give you a realistic perspective of what it is like to be a fullstack web developer.
How can I ask questions?
While I may not be able to respond immediately, please follow this template on my Github repository to raise your questions. You will need a Github account to do this.
Why are you excluding certain technologies here?
When I first learned to code, I read through roadmaps like this one which are great, but extremely intimidating. Not only that, but in hindsight, I know that these roadmaps are unrealistic for someone starting out. I've been coding almost every day for over 4 years, and I haven't even covered all the topics you might find in these roadmaps. They are great for seeing the landscape ahead, but not so great for getting yourself started.
Because of this, I have chosen specific technologies for you to learn throughout this series that I think will make you the most versatile (and hireable) developer possible. We won't cover everything out there, but we will learn modern technologies that real companies use.
For example, when we get to the part of the course where we learn about web hosting for our app, there are TONS of options. We could use AWS, Azure, Linode, Digital Ocean, Heroku, and many more. But in this series, we will be using Digital Ocean because it is cheap, has a simple interface, and will teach you the first principles of hosting a web app that can be applied to any other hosting company. Aka, you'll be learning versatile skills here without having to make a choice yourself.
After going through this series, you will explore MANY MANY more technologies, so don't worry about covering them all now. Right now, the goal is to learn web development, and analysis paralysis of "what tool should I use?" shouldn't get in the way of that.
Where can I take this course?
I will be posting on my blog, Dev, Medium, and YouTube. Below are the relevant links to find the series.
Why is this free?
I'll be honest, this is free because I don't have the time (I work a full-time job and do this on the side) to sit down and craft together a complete training course from start to finish, record it, edit it, market it, and market it some more. That said, my intention is to provide as good, if not a better quality series for free than most paid training courses. I do plan to sell courses in the future, but I am very passionate about teaching this subject and think everyone should have the opportunity to learn to code for free.
Detailed Series Outline
Please note that this is an evolving outline. If there are essential web development topics that I have missed, please raise an issue on Github and I will consider adding it.
Also, please note that the actual series may not follow this outline's sequence, but will cover all of the topics at some point.
Part 1: Coding Basics
- Introduction to Browser DevTools
- Variables and data types
- What is the "console"?
- Operators and conditionals
- What is a runtime?
- Setting up your local development environment
- Terminal basics
- Imports and exports
- Intro to NodeJS
- Introduction to Git and Github
Part 2: The Basics of Front-End Development
- Introduction to HTML and Creating your first webpage
- Styling your webpage with CSS
- The Document Object Model (DOM)
- The Box Model
- Introduction to Flexbox
Part 3: Deploying your Webpages
- Introduction to Digital Ocean
- Basics of Vim Editor
- How to connect to your VPS (Virtual Private Server)
- Introduction to NGINX (our static web server)
- DNS and Firewall basics
- Let's put your site on the internet!
- Managing your server and updating your site
- A cheaper, easier way: Github Pages (optional)
Part 4: Basics of Back-End Development
- Package management
- Introduction to ExpressJS
- Basic Server
- Express Middleware
- RESTful APIs
- Connecting to the front-end
- Introduction to databases and MySQL
- Designing the database in MySQL Workbench
- Connecting the database to the server
- Testing your blog's API routes
Part 5: Why we need front-end frameworks
- Introduction to EJS
- Angular vs. React vs. Vue
Part 6: Authentication
- HTTP Headers and Cookies
- Express Sessions
- Passport Local strategy
- Public key cryptography
- JSON Web Tokens
- Passport JWT
- JWT Authentication from Scratch
Part 7: Building a Content Management System with React
- Introduction to React
- Basic React app
- Connecting React to backend
- Designing blog post admin UI
Part 8: Deploying and testing a fullstack app
- Nginx configuration
- Deployment and updates workflow
- Testing your app with Jest
- CI / CD Introduction
This concludes the introduction to the fullstack developer series.
Be sure to get on my email list to receive updates when I post lessons in the future!