Fullstack Developer Series - Learn to Code in 2021 and Beyond
Tags: codenewbie, javascript, webdev
Published: 2020-12-14 01:12:10

Welcome to my free series on learning to code. Through this free series, you will go from zero experience to deploying your first full-stack 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](https://github.com/zachgoll/fullstack-roadmap-series/blob/main/README.md).

If you don't have an account on [Github, create one now](https://github.com/join). 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](https://github.com/zachgoll/fullstack-roadmap-series) and click the star so that you can find it easily later.

![github star](https://dev-to-uploads.s3.amazonaws.com/i/de0n6zea3w6e7kqn6ldy.JPG)

## 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 are just starting your journey to becoming a full-stack JavaScript developer but **need a roadmap to guide you**
- 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?

**IMPORTANT!!**

**Let's be very clear. This series will teach you how to code and will teach you the discipline of web development**.

In other words, by the end of the series, you will know how to code in JavaScript, and you will know how to create **web** (not mobile) applications such as [Facebook](https://www.facebook.com/), [YouTube](https://www.youtube.com/), [Quickbooks](https://quickbooks.intuit.com/), [You Need a Budget](https://www.youneedabudget.com/), or even my own app, [Eagle Eye Golf Performance](https://training.thediygolfer.com/).

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)
- How to code in languages other than JavaScript (although we will explore a few others to give you some exposure throughout the course)

## What topics will I learn in this series?

In this series, you will learn the following:

- How to code (we will use JavaScript, and [here's why](#why-i-chose-javascript))
- 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](#detailed-series-outline).

## How can I ask questions?

While I may not be able to respond immediately, [please follow this template on my Github repository](https://github.com/zachgoll/fullstack-roadmap-series/issues/new?assignees=zachgoll&labels=question&template=course-related-question.md&title=Please+provide+a+descriptive+title+of+your+question) 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](https://roadmap.sh/frontend) 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.**

## Additional Q&A

### 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.

- [My blog](https://www.zachgollwitzer.com/)
- [Dev](https://dev.to/zachgoll)
- [Medium](https://zach-gollwitzer.medium.com/)
- [YouTube](https://www.youtube.com/playlist?list=PLYQSCk-qyTW37zDPzcAyzCsnypFQrhUcq)

### Why I chose JavaScript

It's nearly 2021, and according to the StackOverflow developer survey, [JavaScript is the most widely used programming language](https://insights.stackoverflow.com/survey/2020#technology-programming-scripting-and-markup-languages) AND happens to be the language I'm most proficient in. Here are some additional reasons why JavaScript is a good choice for us.

- JavaScript powers the web, and will for years into the future
- JavaScript can be used on both the front-end and the back-end (more on this [here](https://www.zachgollwitzer.com/posts/frontend-backend-fullstack/)). This is important because we only have to learn one language to build full-stack web applications rather than two.
- JavaScript is the only true programming language that can be used in the browser, so you pretty much have to learn it no matter what (there is a nuance here though--with the introduction of [WASM](https://www.youtube.com/watch?v=cbB3QEwWMlA), you will be able to write non-JavaScript languages in the browser, but this is in its infancy and not something you will be learning at the beginning of your journey)

### 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.

I genuinely think that if you go through this series, you will have the required skills to get a job as a full-stack JavaScript web developer.

### 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](https://github.com/zachgoll/fullstack-roadmap-series/issues/new?assignees=zachgoll&labels=enhancement&template=content-suggestions.md&title=Enter+a+detailed+content+suggestion+title) 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

##### Projects

- 30+ JavaScript Code Challenges (mostly on CodeWars)

##### Topics

- Write your first JavaScript program
- Introduction to JavaScript (what is it, how it is used, etc.)
- 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)
- Loops
- Functions (plus intro to "callback" functions)
- Built-in JavaScript Objects
  - String methods
  - Array methods
  - Regular Expressions
  - Math Object
  - Date Object
  - Error Object (and basic error handling)

#### Part 2: The Basics of Front-End Development

##### Projects

- [Random Meme/Joke Generator](https://codepen.io/zg_dev/pen/gOLboGj)
- [Pricing Card](https://www.frontendmentor.io/challenges/single-price-grid-component-5ce41129d0ff452fec5abbbc)
- [Testimonial Grid](https://www.frontendmentor.io/challenges/testimonials-grid-section-Nnw6J7Un7)
- [Crowdfunding Product Page](https://www.frontendmentor.io/challenges/crowdfunding-product-page-7uvcZe7ZR)

##### Topics

- HTML Crash Course
- The "DOM" (Document Object Model)
- CSS Crash Course
- CSS Flexbox
- CSS Grid

#### Part 3: Basics of Back-End Development

##### Projects

- E-Commerce App API

##### Topics

- 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

## Next Steps

This concludes the introduction to the full-stack developer series.

Be sure to [get on my email list](https://lists.zachgollwitzer.com/) to receive updates when I post lessons in the future!

[Go to next lesson](https://www.zachgollwitzer.com/posts/2021/fullstack-developer-series/1-first-program/)