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!
What are we building?
Update (3/23/21): When I first created this series, I said that we were going to create a personal blog and content management system, but then I realized how boring that is. Instead, we will be building an E-Commerce application with Stripe integration.
By the end of this course, you will have a fully functioning app that you can sell real products on.
No, it won't be as good as Shopify or WooCommerce. There is a reason these solutions dominate the market–they have a team of developers and have been improved upon for years.
While our solution won't be world-changing, building an E-Commerce website is one of the best ways to learn all the concepts of full-stack web development AND it will be good enough for you to sell your own products or courses if that's something you're interested in!
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.
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
- Browser Developer Tools
- How to read Documentation (MDN - Mozilla Developer Network)
- Variables and Data Types
- Operators (arithmetic, comparison, logical, etc.)
- Conditional Statements (if, else-if, switch/case)
- Functions (plus intro to "callback" functions)
- String methods
- Array methods
- Regular Expressions
- Math Object
- Date Object
- Error Object (and basic error handling)
Part 2: The Basics of Front-End Development
- HTML Crash Course
- The "DOM" (Document Object Model)
- CSS Crash Course
- CSS Flexbox
- CSS Grid
Part 3: Basics of Back-End Development
- E-Commerce App API
- Terminal Basics
- Git Basics (Version Control)
- NodeJS Crash Course
- Introduction to Package Management with NPM
- Express Crash Course
- Introduction to PostgreSQL Database
Part 4: E-Commerce App from Scratch (React, PostgreSQL, Express)
This part of the course will be a series of videos that will allow us to apply our skills learned throughout the course to build an E-Commerce application from scratch!
Part 5: Deployment, Testing, and CI/CD Workflows
- Introduction to Digital Ocean and VPS (Virtual Private Servers)
- Introduction to Nginx
- Testing your app with Jest
- CI / CD Introduction