UDEMY
UDEMY Logo

The Modern JavaScript Bootcamp 

  • Offered byUDEMY

The Modern JavaScript Bootcamp
 at 
UDEMY 
Overview

Duration

52 hours

Total fee

599

Mode of learning

Online

Difficulty level

Intermediate

Official Website

Go to Website External Link Icon

Credential

Certificate

The Modern JavaScript Bootcamp
 at 
UDEMY 
Highlights

  • Compatible on Mobile and TV
  • Earn a Cerificate on successful completion
  • Get Full Lifetime Access
  • Learn from Colt Steele
Read more
Details Icon

The Modern JavaScript Bootcamp
 at 
UDEMY 
Course details

Who should do this course?
  • Anyone looking to understand and master Javascript
What are the course deliverables?
  • Learn everything there is to know about Javascript - from scratch!
  • Build beautiful web apps to add to your portfolio
  • Get job ready with a deep understanding of the internals of JS
  • Work with Node JS and Express
  • Create a full E-Commerce app complete with authentication
  • Automate testing your code by creating your own custom testing framework!
  • Build your own physics-based JavaScript game
  • Understand how Javascript developers work on a day-to-day basis
  • Master the latest JS features like async and arrow functions
More about this course
  • Always bet on Javascript! For years, top recruiters in industry have hired fresh engineers based solely on their knowledge of Javascript. If you want to get a programming job, this is the language to learn! But learning Javascript is complicated! There's fancy syntax, weird design patterns, and a billion resources online that might be giving you wrong - or even be out of date - information. We built this course to solve your problems. This is the best and most up-to-date resource online for becoming a Javascript professional as quickly as possible. Every minute of this course has been created with one goal in mind: teaching you how to become a great engineer. The Modern Javascript Bootcamp (2020) focuses on cutting through unnecessary information and giving you just the facts, plain and simple. You won't work with outdated frameworks, learn old styles of programming, or build boring apps. Instead, you'll only spend time writing practical code that can be used today and in the future on your own projects. You'll learn - from very early on in the course - how to write beautiful and reusable code that you'll be proud to show to a future employer. Two of Udemy's greatest instructors - Colt Steele and Stephen Grider - collaborated to create this course . Between the two of us, we have taught over one million engineers how to program. Rest assured, you will be learning from the best. We know how challenging it can be to understand a new programming from scratch, so we designed this course to offer you a step-by-step, guaranteed approach to becoming a Javascript master. ------ Course Structure ------ This course is divided into two parts. The first half of the course focuses on teaching you the basic syntax of Javascript. Colt will walk you through core topics effortlessly , imparting jewels of JS wisdom along the way. Included in the first half of the course are many programming exercises and small projects, so you can test your new-found knowledge out. Each of these videos can be easily referenced in the future, so you can always come back and brush up on some topic whenever needed. The second half of the course is focused on building some amazing projects. Stephen will show you how to build some production-ready Javascript applications, including a fully-featured E-Commerce web app! These projects are all styled to be absolutely beautiful , visually stunning apps that you will be proud to feature on your own personal portfolio. The main goal of these projects is to highlight design patterns , and show you the 'right' and 'wrong' ways of writing code. By the end, you'll be confident enough to work on your own personal projects with speed and finesse. ------ What You'll Learn ------ This is a long course, with just about every fact about Javascript you could ever hope to know. Here's a brief subset of the topics you'll cover: Master the basics of the language , easily understanding variables, objects, arrays, and functions Understand how to design the structure of the code you write, leading to beautiful and easy-to-read programs Leverage Javascript's built-in methods to increase your productivity regardless of what libraries or frameworks you use Develop practical skills around higher-order functions that you will utilize for years to come Observe how the Javascript and browser work together, and how to increase the performance of JS code Build awesome projects to fill your personal portfolio Build command line tools from scratch using Node JS Fetch and manage information from third-party API's Build a fully-featured E-Commerce application from scratch - including production-grade authentication! This is the ultimate Javascript course. There are many resources online for learning Javascript, but this is the only one that covers everything you need to know, from 'A' to 'Z', and a couple letters after that. Master the basics with Colt, then build awesome projects with Stephen. We've taught a million other engineers how to code, and now it is your turn!
Read more

The Modern JavaScript Bootcamp
 at 
UDEMY 
Curriculum

Introduction

How This Course Works

JS, ECMA, TC39: What Do They Mean??

The Tools You Need

Customizing VSCode & Extensions

A Quick Note About MDN

JS Values & Variables

Goals & Primitives

Running Code in the JS Console

Introducing Numbers

NaN & Infinity

Numbers Quiz

Variables & Let

Unary Operators

Introducing Const

The Legacy of Var

Variables Quiz

How to Model Data Efficiently

Booleans Intro

Strings

String Indices

String Methods

More String Methods

Strings Quiz

String Escape Characters

String Template Literals

Null & Undefined

The Math Object & Random Numbers

typeof operator

parseInt & parseFloat

Controlling Program Logic and Flow

Making Decisions in JS

Comparison Operators

Double Equals (==)

Triple Equals (===)

Running Code From a Script

If Statements

Else If

Else

Nesting Conditionals

Truthy & Falsy Values

Logical AND (&&)

Logical OR (

)

NOT Operator (!)

Operator Precedence

The Switch Statement

Ternary Operator

Capture Collections of Data with Arrays

Creating Arrays

Array Indices

Modifying Arrays

Push and Pop

Shift and Unshift

Concat

Includes and IndexOf

Reverse and Join

Slice

Splice

Sorting (Part 1)

Intro to Reference Types

Using Const with Arrays

Working with Nested Arrays

Objects - The Core of Javascript

Intro to Objects

Creating Object Literals

Accessing Object Properties

Adding and Updating Properties

Nested Arrays & Objects

Objects and Reference Types

Array/Object Equality

The World of Loops

Intro to Loops

For Loops

Infinite Loops!

For Loops & Arrays

Nested For Loops

Intro to While Loops

More While Loops

Break Keyword

For...Of Intro

Comparing For and For...Of

For...Of with Objects

For...In Loops

Writing Reusable Code with Functions

Our First Function!

Dice Roll Function

Introducing Arguments

Functions With Multiple Args

The Return Statement

More on Return Values

Function Challenge 1: passwordValidator

Function Challenge 2: Average

Function Challenge 3: Pangrams

Function Challenge 4: Get Playing Card

An Advanced Look at Functions

Function Scope

Block Scope

Lexical Scope

Function Expressions

Higher Order Functions

Functions as Arguments

Functions as Return Values

Callbacks

Hoisting

Apply Functions to Collections of Data

Intro to Array Callback Methods

forEach

Map

Arrow Functions Intro

Arrow Functions: Implicit Returns

Array.find

Filter

Some & Every

Revisiting Sort!

Reduce Intro

Reduce Pt. 2

Even More Reduce!

A Few Miscellaneous JS Features

New JS Features Intro

Default Parameters

Spread for Function Calls

Spread in Array Literals

Spread in Object Literals

The Arguments Object (not new)

Rest Parameters (new!)

Destructuring Arrays

Destructuring Objects

Nested Destructuring

Destructuring Parameters

Object Methods and the 'This' Keyword

Shorthand Object Properties

Computed Properties

Adding Methods to Objects

Method Shorthand Syntax

Intro to Keyword THIS

Using THIS in Methods

THIS: Invocation Context

Annoyomatic Demo

Putting It All Together: Deck Of Cards

Creating A Deck Factory

JS In the Browser - DOM Manipulation

Introduction to the DOM

IMPORTANT NOTE: HTML & CSS

Taste of the DOM

Another Fun DOM Example

The Document Object

getElementById

getElementsByTagName

getElementsByClassName

querySelector & querySelectorAll

Twisting the DOM to Our Will!

Working with innerText & textContent

innerHTML

value, src, href, and more

Getting & Setting Attributes

Finding Parent/Children/Siblings

Changing Multiple Elements

Altering Styles

getComputedStyle

Manipulating Classes

Creating Elements

Append, Prepend, & insertBefore

removeChild & remove

NBA Scores Chart Pt1.

NBA Scores Chart Refactor

Communicating with Events

Intro to DOM Events

2 Ways NOT to Add Events

addEventListener

The Impossible Button Demo

Events on Multiple Elements

The Event Object

Key Events: keypress, keyup, & keydown

Coin Game Demo

Form Events & PreventDefault

Input & Change Events

Asynchronous Code, Callbacks & Promises

The Call Stack

Call Stack Debugging w/ Dev Tools

JS is Single Threaded

How Asynchronous Callbacks Actually Work

Welcome to Callback Hell

Introducing Promises!

Returning Promises from Functions

Resolving/Rejecting w/ Values

The Delights of Promise Chaining

Refactoring w/ Promises

Making HTTP Requests

Intro to AJAX

JSON & XML

XMLHttpRequests: The Basics

XMLHttpRequests: Chaining Requests

A Better Way: Fetch!

Chaining Fetch Requests

Refactoring Fetch Chains

An Even Better Way: Axios

Sequential Axios Requests

Async & Await: JS Magic

A Quick Overview of Async Functions

The Async Keyword

The Await Keyword

Error Handling in Async Functions

Multiple Awaits

Parallel Vs. Sequential Requests

Refactoring with Promise.all

Prototypes, Classes, & The New Operator

What on Earth are Prototypes?

An Intro to OOP

Factory Functions

Constructor Functions

JS Classes - Syntactical Sugar

A Bit More Practice with Classes

Extends, Super, and Subclasses

Drawing Animations

Welcome to Part 2!

App Overview

Project Setup

Event-Based Architecture

Class-Based Implementation

Binding Events in a Class

Reminder on 'This'

Determining the Value of 'This'

Solving the 'This' Issue

Starting and Pausing the Timer

Where to Store Data?

DOM-Centric Approach

Getters and Setters

Stopping the Timer

Notifying the Outside World

OnTick and OnComplete

Extracting Timer Code

Introducing SVG's

Rules of SVG's

Advanced Circle Properties

The Secret to the Animation

First Pass on the Animation

Smoothing the Animation

Adjusting by an Even Interval

Using Icons

Styling and Wrapup

Application Design Patterns

Application Overview

Starter Kit Setup

Big Challenges

Fetching Movie Data

Fetching a Single Movie

AutoComplete Widget Design

Searching the API on Input Change

Delaying Search Input

Understanding Debounce

Implementing a Reusable Debounce

Extracting Utility Functions

Awaiting Async Functions

Rendering Movies

Handling Errored Responses

Opening a Menu

Style of Widget Creation

Moving HTML Generation

Quick Note

Repairing References

Handling Broken Images

Automatically Closing the Dropdown

Handling Empty Responses

Handling Movie Selection

Making a Followup Request

Rendering an Expanded Summary

Expanded Statistics

Issues with the Codebase

Making the Autocomplete Reusable

Displaying Multiple Autocompletes

Extracting Rendering Logic

Extracting Selection Logic

Removing Movie References

Consuming a Different Source of Data

Refreshed HTML Structure

Avoiding Duplication of Config

Hiding the Tutorial

Showing Two Summaries

When to Compare?

How to Compare?

Extracting Statistic Values

Parsing Number of Awards

Applying Parsed Properties

Updating Styles

Small Bug Fix

App Wrapup

Javascript with the Canvas API

Application Overview

Project Setup

Matter Terminology

Getting Content to Appear

Boilerplate Overview

Drawing Borders

Clicking and Dragging

Generating Random Shapes

Maze Generation Algorithm

More on Maze Generation

Configuration Variables

Grid Generation

Verticals and Horizontals

Abstracting Maze Dimensions

Guiding Comments

Neighbor Coordinates

Shuffling Neighbor Pairs

Determining Movement Direction

Updating Vertical Wall Values

Updating Horizontal Wall Values

Validating Wall Structure

Iterating Over Walls

Drawing Horizontal Segments

Drawing Vertical Segments

Drawing the Goal

Drawing the Playing Ball

Handling Keypresses

Adding Keyboard Controls

Disabling Gravity

Detecting a Win

Adding a Win Animation

Stretching the Canvas

Understanding the New Unit Variables

Refactoring for Rectangular Mazes

Adding Fill Colors

Displaying a Success Message

Make a Secret-Message Sharing App

Application Overview

Project Setup

Handling Form Submission

Base64 Encoding

Encoding the Entered String

Parts of a URL

Generating the URL

Toggling Element Visibility

Decoding the Message

Displaying the Message

App Deployment

Create Node JS Command Line Tools

JavaScript with Node vs the Browser

Executing JavaScript

Working with Modules

Invisible Node Functions

The Require Cache

Files Get Required Once!

Debugging with Node

App Overview

Accessing Standard Library Modules

The Callback Pattern in Node

The Process.cwd Function

Running a Node Program as an Executable

Linking a Project

Is it a File or a Folder?

A Buggy Initial Implementation

Optional Solution #1

A Callback-Based Solution

Callback-Based Functions Using Promises

Issues with Sequential Reads

Promise.all-Based Solution

Console Logs with Colors

Accepting Command Line Arguments

Joining Paths

App Wrapup

Create Your Own Project Runner

App Overview

Project Setup

Big Application Challenges

Watching Files with Chokidar

Issues with Add Event

Debouncing Add Events

Naming Require Statements

Handling CLI Tools with Caporal

Ensuring Files Exist

It Works!

More on StdIO

[Optional] More on Child_Process

App Wrapup

Project Start - E-Commerce App

App Overview

App Architecture

Package.json Scripts

Creating a Web Server

Behind the Scenes of Requests

Displaying Simple HTML

Understanding Form Submissions

Parsing Form Data

Middlewares in Express

Globally Applying Middleware

Design a Custom Database

Data Storage

Different Data Modeling Approaches

Implementing the Users Repository

Opening the Repo Data File

Small Refactor

Saving Records

Better JSON Formatting

Random ID Generation

Finding By Id

Deleting Records

Updating Records

Adding Filtering Logic

Exporting an Instance

Signup Validation Logic

Production-Grade Authentication

Cookie Based Authentication

Creating User Records

Fetching a Session

Signing Out a User

Signing In

Hashing Passwords

Salting Passwords

Salting + Hashing Passwords

Comparing Hashed Passwords

Testing the Full Flow

Structuring Javascript Projects

Project Structure

Structure Refactor

HTML Templating Functions

HTML Reuse with Layouts

Building a Layout File

Adding Better Form Validation

Validation vs Sanitization

Receiving Validation Output

Adding Custom Validators

Extracting Validation Chains

Displaying Error Messages

Validation Around Sign In

Password Validation

Template Helper Functions

Adding Some Styling

Exposing Public Directories

Next Steps

Product Routes

The Products Repository

Code Reuse with Classes

Creating the Products Repository

Building the Product Creation Form

Some Quick Validation

Image and File Upload

Exploring Image Upload

Understanding Mutli-Part Forms

Accessing the Uploaded File

[Optional] Different Methods of Image Storage

Saving the Image

A Subtle Middleware Bug

Better Styling

Reusable Error Handling Middleware

Products Listing

Redirect on Success Actions

Requiring Authentication

Template Update

Ids in URLs

Receiving URL Params

Displaying an Edit Form

Building a Shopping Cart

Editing a Product

Fixing the HandleErrors Middleware

Edit Form Template

Deleting Products

Starting with Seed Data

User-Facing Products

Products Index

Merging More Styling

Understanding a Shopping Cart

Solving Problem #1

Solving Problem #2

Shopping Cart Boilerplate

Submission Options

Creating a Cart, One Way or Another

Adding Items to a Cart

Displaying Cart Items

Rendering the List

Totaling Cart Items

Removing Cart Items

Redirect on Remove

The Basics of Testing

Testing Overview

A Simple Function to Test

A No-Frills Testing Implementation

Test Driven Development

Fixing Three Issues

The Assert Module

Using Mocha

App Setup

Reminder on This App

Why is Test Setup Difficult?

Mocha in the Browser

Displaying the Autocomplete

Verifying the Dropdown State

Writing Assertions

Fake DOM Events

Holding Up Assertions

Implementing WaitFor

Asserting Records Fetched

Building a Testing Framework From Scratch

Test Framework Requirements

Project Setup

Implementation Steps

Walking a Directory Structure

Implementing Breadth First Search

Collecting Test Files

Running Test Files

A Quick Test Harness

Implementing 'beforeEach' and 'it'

Adding Basic Reporting

Adding Colors

Better Formatting

Ignoring Directories

Running Browser-Based JS

A Sample Web App

Why JSDOM?

Building a Render Function

HTML Element Assertions

An Incorrectly Passing Test

Another Small Issue

Script Execution Delay

Implementing a Delay

Fixing a Test

Bonus!

Bonus!

Other courses offered by UDEMY

549
50 hours
– / –
3 K
10 hours
– / –
549
4 hours
– / –
599
10 hours
– / –
View Other 2344 CoursesRight Arrow Icon

The Modern JavaScript Bootcamp
 at 
UDEMY 
Students Ratings & Reviews

4/5
Verified Icon2 Ratings
J
Jagadish
The Modern JavaScript Bootcamp
Offered by UDEMY
3
Other: Content is good for beginners it is perfect and for experts don't take it .
Reviewed on 17 Dec 2020Read More
Thumbs Up IconThumbs Down Icon
S
Souvik Dey
The Modern JavaScript Bootcamp
Offered by UDEMY
5
Other: Very relevant and to the point.
Reviewed on 7 Nov 2020Read More
Thumbs Up IconThumbs Down Icon
View All 2 ReviewsRight Arrow Icon
qna

The Modern JavaScript Bootcamp
 at 
UDEMY 

Student Forum

chatAnything you would want to ask experts?
Write here...