Master JavaScript

and its friends once and for all

About This Course

This course is for anyone—be it a novice or an expert—who wants to take their JavaScript knowledge to the next level.

We will start with the very basics but don’t be surprised if you find yourself writing an AWS Lambda function to stream data to a DynamoDB, and then resolve a Promise to assign an awaited variable later on the course 😉.

Yes, you’ll start with baby steps, but don’t be misled:

You’ll quickly get all our bases covered not only about JavaScript but also for related technologies too.

I want you to be happy and learn enough kung-fu to be dangerous at least.

enroll today

register for free and get an early access discount

What You’ll Learn

  • Develop robust, lean, and error-free apps.
  • Create reusable, modular, and modern codebases that stand the test of time.
  • Build, scale, diagnose, and monitor a full-stack production application.

You will become a JS Jedi

Is It Worth It?

Trust me when I say this is the most advanced beginner’s course that you will ever get your hands on!

I am passionate about this course: I’m putting a lot of time and energy into it.

If you want to get better at JavaScript and related technologies and learn from both theory and practice, you are in the right place.

What If I Don’t Like It?

I have been in the industry since 2003, and I’ve been writing JavaScript since then. From Blackberry Bold’s JavaScript quirks to Netscape Navigator 4 layout problems, to Node.js’s event loop delays and memory leaks, to rendering inconsistencies of various user agents…

I’ve seen a lot, and I’m reflecting my experience into this course. So I highly trust that you’ll like it 😉.

For any reason if you are not happy with the course, I will issue you a %100 refund—No questions asked💰.

Haven’t Decided Yet?

Check out the course outline below.

Course Outline

The curriculum is highly in flux. I try to keep the outline below in synch with what I’m doing to my best ability. Additionally, you can check the open issues 🐞 out to get an idea of the overall scope.

1: Introduction

This section is more about the “no-code-related” parts of being a developer. It is both related to learning JavaScript in particular and being a better, well-rounded developer in general.

  • About “JavaScript: from Zero to Hero”
  • Course Outline and Structure
  • How to Learn a New Language
  • How to Think Like a Developer
  • How to Ask Technical Questions
  • How to Make the Best Use of This Course
  • Use Case: MarkItDown: Your First Markdown Editor

2: Development Setup

We will set up our development environment so that we can follow the rest of the lessons quickly.

  • Installing Node.js, NPM, and Yarn
  • An Overview of Popular Editors and IDEs
  • Installing and Using Docker
  • Debugging Node.js in WebStorm
  • First Time Development Environment Setup on a Mac
  • First Time Development Environment Setup on Windows
  • First Time Development Environment Setup on Linux
  • Use Case: Verifying Your Setup

3: Organizing Your Code

This section is about creating a reusable, module codebase. I put it earlier because it is essential; however, you might want to revisit this section later, especially if you are just beginning to learn programming.

  • Tips and Tricks About Code Structure
  • Creating Utility Modules and Functions
  • More on Modules
  • Don’t Use a Rocket Launcher to Kill a Mosquito
  • Use Case: The Marvel Universe

4: Let the Fun Begin

In this section, we’ll go over the fundamental concepts real quick so that we can jump into more advanced constructs later.

  • A Brief Overview of JavaScript Datatypes
  • A Gentle Introduction to Functions
  • A Gentle Introduction to Objects
  • A Gentle Introduction to Collections
  • This is the Way We Loop the Loop
  • A Gentle Introduction to Asynchronicity
  • A Gentle Introduction to Ineritance
  • A Gentle Introduction to Classes
  • A Gentle Introduction to DOM
  • Use Case: Searching For Your Favorite Book

5: Get That Heisenbug!

Part of writing code is bug hunting:
And this section is all about it.

  • Dealing With Errors and Exceptions
  • Debugging in the Browsers
  • Debugging a Node.js App
  • Remote Debugging a Node.js App
  • Using a Log Aggregator
  • Use Case: Fixing a Broken Web App

6: Diving Deeper Into Task Queues

Knowing how task queues work in depth can change your understanding of how a browser works. So that you won’t have to do setTimeout(fn, 100) all the time.

  • process.nextTick and setImmediate
  • MicroTasks and MacroTasks
  • Use Case: Debouncing a Scroll Event

7: Diving Deeper Into Functions

Learning how to think functionally can take a while. But when you are in the functional realm, there’s no going back.

  • Functions: A Deeper Dive
  • Higher-Order Functions
  • apply and bind
  • Currying and Partial Application
  • Rest Parameters and Default Parameters
  • Getting Functional With Ramda
  • Use Case: Dissecting a Y Combinator

8: Diving Deeper Into AJAX

This section is all about APIs, remote request, sockets and connections.

  • XMLHttpRequest
  • CORS
  • fetch
  • Generators and Iterators
  • async/await
  • Using Websockets
  • Use Case: Mini Chat Using socket.io
  • Why Not Use socket.io for Production
  • Use Case: Mini Chat Using PubNub

9: The Web

We’ll dive into how web-related technologies work, and how fun with modern front-end APIs. We will start our journey without using any frameworks, and we might even pick a few frameworks and use them on the go—Who knows 😃.

  • Browser Events and Event Listeners
  • Cookies
  • Local Storage and Session Storage
  • Indexed DB
  • WIP: several use cases

10: Getting Your Hands Even Dirtier

If you have made up this far, then you should have learned a lot. So now it is time to bolster that knowledge by getting your hands even dirtier!

  • Use Case: Creating a Autocomplete Search Box
  • Use Case: Creating a Mini Google
  • Use Case: Creating a Tip Calculator
  • Use Case: Time Traveling With moment.js
  • Use Case: TBD: Some Cool Stuff With d3.js
  • Use Case: Simple JavaScript Syntax Highlighter
  • Use Case: Search the Spotify Music Catalog
  • Use Case: The Great Library of Chuck Norris Jokes
  • Use Case: Convert a Website to PDF
  • Use Case: Building a Simple Event Calendar

11: Dogfooding

This section is as “real life” as it can get: We will start from a blank slate and implement the dojo.zerotoherojs.com 🦄 learning portal from scratch. Since it is a production application, we will cover all production-related issues, such as CI/CD pipelines, staging, monitoring, log aggregation, diagnostics and alarms, scalability… and more—It will be a lot of fun 🙂.

  • Tabula Rasa
  • Configuring Prettier for Visual Studio Code
  • Configuring FlowType for Visual Studio Code
  • Stripping FlowType Annotations
  • Configuring the Deployment Pipeline
  • Creating a Buddy Pipeline
  • Creating an AWS Lambda Function
  • Configuring AWS Lambda
  • Publishers and Subscribers
  • Creating the Deployment Script
  • The End-to-End Deployment Pipeline
  • The Deployment Architecture Overview
  • Setting Up AWS EC2 to Serve Node.js
  • More In Progress: TBD

12: Where to Go From Here

Since Front-End Development is a broad discipline, there still will be things that we haven’t touched by the end of this course: There will be a dedicated section at the end of the class to guide you through how you can build upon the knowledge you have accrued already.

  • Thank You
  • Coming Up Next on “Zero to Hero”
  • What’s Next: Where to Go From Here

About Volkan Özçelik

Hi, it’s me, Volkan: Your instructor for
JavaScript: From Zero to Hero.

I am a JavaScript enthusiast, speaker, writer, performance engineer, and I work on all over the stack, from infrastructure automation to progressive web app development.

In particular, I love working with anything and everything that involves JavaScript: Be it server-side, client-side, or somewhere in between 😉.

I have been professionally coding JavaScript since 2003, and I’m actively programming since 1991—and still haven’t lost the passion for learning and sharing my experiences. You can learn more about me, watch the talks I’ve given and the open source projects I’m working on by visiting volkan.io.

Early Access Registration

Register for free and get an early access discount!

enroll today