JavaScript: The Advanced Concepts
4.8 (5,585 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
30,312 students enrolled

JavaScript: The Advanced Concepts

Learn modern advanced JavaScript practices and be in the top 10% of JavaScript developers
4.8 (5,585 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
30,312 students enrolled
Created by Andrei Neagoie
Last updated 7/2020
English
English [Auto]
Current price: $125.99 Original price: $179.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 24.5 hours on-demand video
  • 29 articles
  • 2 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Advanced JavaScript Practices
  • Object Oriented Programming
  • Functional Programming
  • Scope and Execution Context
  • Inheritance + Prototype Chain
  • Latest features: ES6, ES7, ES8, ES9, ES10
  • Closures
  • Asynchronous JavaScript + Event Loop
  • JavaScript Modules
  • `this` keyword
  • JavaScript Engine and Runtime
  • Error Handling
  • Stack Overflow
  • Memory Leaks
  • Composition vs Inheritance
  • Type Coersion
  • Pass By Reference vs Pass by Value
  • Higher Order Functions
  • IIFE
  • .call(), .apply(), .bind()
  • Interpreter/ Compiler/ JIT Compiler
  • Garbage Collection
  • Hoisting
  • JavaScript best practices
Course content
Expand all 218 lectures 24:46:03
+ Introduction
3 lectures 07:41
Join Our Online Classroom
00:57
Exercise: Meet The Community!
01:06
+ JavaScript Foundation
23 lectures 01:47:38
Babel + TypeScript
00:17
Inside the V8 Engine
08:56
Comparing Other Languages
04:15
Writing Optimized Code
08:53
WebAssembly
03:15
Call Stack and Memory Heap
14:37
Stack Overflow
03:21
Garbage Collection
04:30
Memory Leaks
06:34
Single Threaded
01:58
Exercise: Issue With Single Thread
02:40
Javascript Runtime
14:07
Node.js
06:27
Exercise: Fix This Code
00:26
Section Review
05:02
Web Developer Monthly
00:20
Advanced JavaScript Cheatsheet
00:09
+ Javascript Foundation II
26 lectures 02:31:11
Section Overview
01:06
Execution Context
08:35
Lexical Environment
05:39
Hoisting
10:47
Exercise: Hoisting
03:58
Exercise: Hoisting 3
00:03
Function Invocation
06:59
arguments Keyword
04:22
Variable Environment
06:41
Scope Chain
12:20
[[scope]]
02:03
Exercise: JS is Weird
04:57
Function Scope vs Block Scope
03:35
Exercise: Block Scope
03:45
Global Variables
04:10
IIFE
13:38
this Keyword
16:59
Exercise: Dynamic Scope vs Lexical Scope
12:08
Exercise: call(), apply()
00:05
bind() and currying
03:42
Exercise: this Keyword
03:09
Exercise: this Keyword 2
00:11
Context vs Scope
01:08
Section Review
02:47
+ Types in JavaScript
12 lectures 01:08:57
Section Overview
01:22
Javascript Types
13:40
Array.isArray()
02:17
Pass By Value vs Pass By Reference
17:06
Exercise: Compare Objects
00:15
Exercise: Pass By Reference
00:03
Type Coercion
09:02
Exercise: Type Coercion
00:07
Quick Note: Upcoming Videos
00:11
JTS: Dynamic vs Static Typing
11:50
JTS: Weakly vs Strongly Typed
03:18
JTS: Static Typing In JavaScript
09:45
+ The 2 Pillars: Closures and Prototypal Inheritance
25 lectures 02:26:07
Section Overview
01:54
Functions are Objects
09:18
First Class Citizens
04:04
Extra Bits: Functions
03:25
Higher Order Functions
17:14
Exercise: Higher Order Functions
03:45
Closures
15:10
Exercise: Closures
03:18
Closures and Memory
07:52
Closures and Encapsulation
07:41
Exercise: Closures 2
01:31
Solution: Closures 2
02:34
Exercise: Closures 3
01:28
Solution: Closures 3
03:47
Closures Review
01:34
Prototypal Inheritance
06:47
Prototypal Inheritance 2
09:07
Prototypal Inheritance 3
07:46
Prototypal Inheritance 4
10:35
Prototypal Inheritance 5
02:43
Prototypal Inheritance 6
09:16
Exercise: Prototypal Inheritance
02:55
Solution: Prototypal Inheritance
08:20
Exercise: Prototypal Inheritance with this
00:06
Section Review
03:57
+ Object Oriented Programming
18 lectures 01:47:30
Section Overview
06:24
OOP and FP
03:50
OOP Introduction
03:21
OOP1: Factory Functions
08:20
OOP2: Object.create()
07:38
OOP3: Constructor Functions
13:00
More Constructor Functions
08:38
Funny Thing About JS...
02:52
OOP4: ES6 Classes
08:44
Object.create() vs Class
01:48
this - 4 Ways
04:44
Inheritance
14:41
Inheritance 2
05:25
Public vs Private
04:21
OOP in React.js
03:05
4 Pillars of OOP
08:17
Exercise: OOP and Polymorphism
00:16
Reviewing OOP
02:06
+ Functional Programming
20 lectures 01:55:22
Section Overview
02:29
Functional Programming Introduction
03:31
Exercise: Amazon
03:37
Pure Functions
04:35
Pure Functions 2
07:47
Can Everything Be Pure?
04:33
Idempotent
04:08
Imperative vs Declarative
06:27
Immutability
05:28
Higher Order Functions and Closures
07:49
Currying
04:24
Partial Application
04:24
Quick Note: Upcoming Videos
00:12
MCI: Memoization 1
07:47
MCI: Memoization 2
03:56
Compose and Pipe
12:33
Arity
01:46
Is FP The Answer To Everything?
02:54
Solution: Amazon
21:48
Reviewing FP
05:14
+ OOP vs FP
3 lectures 26:08
Composition vs Inheritance
16:20
OOP vs FP
04:29
OOP vs FP 2
05:19
+ Asynchronous JavaScript
10 lectures 01:52:05
Section Overview
04:51
Quick Note: Upcoming Videos
00:20
How JavaScript Works
24:12
Promises
22:26
ES8 - Async Await
15:22
ES9 (ES2018)
05:21
ES9 (ES2018) - Async
11:11
Job Queue
06:55
Parallel, Sequence and Race
10:00
Threads, Concurrency and Parallelism
11:27
+ Modules In JavaScript
7 lectures 52:58
Section Overview
02:44
What Is A Module?
11:05
Module Pattern
13:05
Module Pattern Pros and Cons
04:53
CommonJS, AMD, UMD
10:05
ES6 Modules
08:52
Section Review
02:14
Requirements
  • Any computer will work: Windows, macOS or Linux
  • Basic/Minimal understanding of JavaScript
Description

Recently updated for 2020 (this month)! This course is unlike any JavaScript course you will find online. Join a live online community of over 270,000+ developers and a course taught by an industry expert that has actually worked both in Silicon Valley and Toronto as a senior developer. Graduates of this course are now working at Google, Tesla, Amazon, Apple, IBM, JP Morgan, Facebook + other top tech companies.

After many years of working with the language, Andrei has taken decades of experience, combining best practices from some of the top developers in the world, to get you to become one of the top performing Javascript developers. You will go from understanding the basics of JavaScript, to learning it to the point that you can teach it to others, impress coworkers, and wow future employers. You will be in the top 10% of JavaScript Programmers by the end of this course.

This course is the accumulation of years in the field, and combining the best resources, tools, and tutorials out there to create the ultimate JavaScript course that will teach you everything you need to know to be considered a Senior Javascript Developer.

Instead of spending years learning advanced Javascript concepts, you can fast track and get the knowledge that senior javascript developers have in just 30 days.

With this course you are going to learn beyond just the basics like most online courses. You won't just learn patterns, techniques and best practices. You are going to understand the "why" of the toughest part of the language, to the point that when you get asked any question about Javascript in an interview or in a meeting, you will be able to explain concepts that would truly make people see that you are a senior javascript programmer.

Most importantly, you will become a top 10% javascript developer by going beyond the superficial basics that a lot of courses cover. We are going to dive deep and come out the other end a confident advanced javascript developer. I guarantee it. Whether you are a web developer, a React, Angular, Vue.js developer (frontend developer), or a Node.js backend developer, you will benefit from this course because Javascript is at the core of these professions.

Some of the topics covered in this course are:

  • Javascript Engine

  • Javascript Runtime

  • Interpreter, Compiler, JIT Compiler

  • Writing Optimized Code

  • Call Stack + Memory Heap

  • Stack Overflow + Memory Leaks

  • Garbage Collection

  • Node.js

  • ES6, ES7, ES8, ES9 features

  • Single Threaded Model

  • Execution Context

  • Lexical Environment

  • Scope Chain

  • Hoisting

  • Function Invocation

  • Function Scope vs Block Scope

  • Dynamic vs Lexical Scope

  • this - call(), apply(), bind()

  • IIFEs

  • Context vs Scope

  • Static vs Dynamically Typed

  • Primitive Types

  • Pass by Reference vs Pass by Value

  • Type Coercion

  • Arrays, Functions, Objects

  • Closures

  • Prototypal Inheritance

  • Class Inheritance

  • Memoization

  • Higher Order Functions

  • Functions vs Objects

  • Scheme + Java in JavaScript

  • OOP (Object Oriented Programming)

  • Private vs Public properties

  • Functional Programming

  • Immutability

  • Imperative vs Declarative code

  • Composition vs Inheritance

  • Currying

  • Partial Application

  • Pure Functions

  • Referential Transparency

  • Compose

  • Pipe

  • Error Handling

  • Asynchronous JavaScript

  • Callbacks, Promises, Async/Await

  • Event Loop + Callback Queue

  • Task Queue + Microtask Queue

  • Concurrency + Parallelism

  • Modules in Javascript


The topics you will learn in this course are timeless and will allow you to stay current with any new library or framework that comes out in the javascript ecosystem since you will have the core concepts understood.

I guarantee you that you will not find a course as detailed and as well explained as this one at the end of the course I guarantee you that you will be in the top 10% of JavaScript developers or your money back! And remember,

By joining this course you will also get access to one of the largest online communities and classroom for full stack developers.

See you inside the course!

---------------------------

Taught by:

Andrei is the instructor of the highest rated Web Development courses on Udemy as well as one of the fastest growing. His graduates have moved on to work for some of the biggest tech companies around the world like Apple, Google, JP Morgan, IBM, etc... He has been working as a senior software developer in Silicon Valley and Toronto for many years, and is now taking all that he has learned, to teach programming skills and to help you discover the amazing career opportunities that being a developer allows in life. 

Having been a self taught programmer, he understands that there is an overwhelming number of online courses, tutorials and books that are overly verbose and inadequate at teaching proper skills. Most people feel paralyzed and don't know where to start when learning a complex subject matter, or even worse, most people don't have $20,000 to spend on a coding bootcamp. Programming skills should be affordable and open to all. An education material should teach real life skills that are current and they should not waste a student's valuable time.   Having learned important lessons from working for Fortune 500 companies, tech startups, to even founding his own business, he is now dedicating 100% of his time to teaching others valuable software development skills in order to take control of their life and work in an exciting industry with infinite possibilities. 

Andrei promises you that there are no other courses out there as comprehensive and as well explained. He believes that in order to learn anything of value, you need to start with the foundation and develop the roots of the tree. Only from there will you be able to learn concepts and specific skills(leaves) that connect to the foundation. Learning becomes exponential when structured in this way. 

Taking his experience in educational psychology and coding, Andrei's courses will take you on an understanding of complex subjects that you never thought would be possible.  


Who this course is for:
  • Developers who want to be considered in the top 10% of JavaScript programmers
  • Bootcamp or online tutorial graduates that want to go beyond the basics
  • Junior JavaScript Developers
  • Junior Web Developers
  • Programmers who don't want to waste time on basics and want to dive deep