Course Highlights
  • Become a Senior JavaScript developer by learning and practicing all modern features of the JavaScript. Become able easily apply to Web Developer, Frontend Developer, Backend Developer or Full Stack Web Developer jobs.
  • Learn JavaScript, ES6, NPM, Webpack, Babel, Node, React by solving tens of CHALLENGES with real-world scenarios. Each CHALLENGE has task and solution. And all of them are available in the GIT repositories that you will download at the beginning of the course.
  • Learn all FUNDAMENTAL features of the JavaScript starting from basic concepts such as Variables, Objects, Functions, Scopes, Operators and finishing with ADVANCED topics as Closures, Hoisting, IIFEs (Immediately Invoked Function Expressions), Classes and many more.
  • Learn and understand ES6 features such as Arrow functions, Destructuring, Default function parameters, Template Literals, Array helper methods, Classes
  • Understand proper methods to work with Arrays - map, forEach, reduce, filter, includes
  • Deeply understand purpose of the NPM - Node Package Manager
  • Learn and practice Babel - JavaScript Compiler
  • Learn basics of the most popular NoSQL database with JavaScript Engine - MongoDB

Overview

What You Will Learn From This Course?

  • You will be able to become a Senior JavaScript developer by learning and practising all modern features of JavaScript. 
  • You will easily be able to apply to Frontend Developer, Backend Developer, Web Developer or Full Stack Web Developer jobs. 
  • You will get to understand the proper methods to work with Arrays.
  • You will be able to learn all the fundamental features of JavaScript, such as Variables, Functions, Objects, Scopes, etc.
  • By solving many challenges with real-world scenarios, you will be able to learn Javascript, Babel, Node, Webpack, NPM, React, etc.
  • You will get to learn and understand the deep purpose of the NPM - Node Package Manager.

What is the Speciality of This Course?

  • Through this course, you will be able to understand the difference between Web Browser and Node.js.
  • You will learn the JavaScript Bible, which was designed for developers with different levels of JavaScript knowledge.
  • You will be able to learn and understand ES6 features such as Destructuring, Template literals, Arrow Functions, Array helper methods, etc.
  • Learn and practice the basics of the popular database of JavaScript Engine and Babel, i.e., JavaScript Compiler.
  •  From this course, you will learn the most popular JavaScript framework - React.
Curriculum

3 Topics
Intro
Let's get connected! Join the Learning Community
Course Navigation

9 Topics
INTRO - Exercise Files and Software Setup
LECTURE - Software Setup Overview
PRACTICE - WINDOWS ONLY - Install "cmder"
PRACTICE - Visual Studio Code Setup
PRACTICE - Launch Node.js and execute test JavaScript file
PRACTICE - Git Overview - PART 1
PRACTICE - Git Overview - PART 2
PRACTICE - Clone remote GIt repository and switch Branches
PRACTICE - Use SourceTree for Git repositories management

11 Topics
INTRO - JAVASCRIPT BASICS - Intro
GIT REPOSITORY FOR THIS SECTION
PRACTICE - Exploring Web Sites in the Browser
PRACTICE - Create first HTML file and start Live Server
PRACTICE - Add favicon to the HTML file
PRACTICE - JavaScript embedded into the HTML
DEMO - Git branches management
PRACTICE - JavaScript in the separate file
CHALLENGE - External Scripts
✓ CHALLENGE - External Scripts - SOLUTION
PRACTICE - JavaScript in the Console of the Browser

11 Topics
INTRO - JAVASCRIPT BASICS - Types and Variables
LECTURE - Object in JavaScript
LECTURE - Primitive vs Reference Value Types
PRACTICE - Exploring Primitive Value Types
PRACTICE - Exploring Reference Type - Object
LECTURE - Variable declaration using "var" "let" and "const"
PRACTICE - Variable declaration and assignment
CHALLENGE - Variable Declaration and Assignment
CHALLENGE - Variables Reusage
LECTURE - Statically vs Dynamically typed Languages
PRACTICE - Dynamic typing in JavaScript

8 Topics
INTRO - JAVASCRIPT BASICS - Objects
LECTURE - Variety of Objects in JavaScript
LECTURE - Objects Modification
PRACTICE and CHALLENGES - Objects - PART 1
PRACTICE and CHALLENGES - Objects - PART 2
PRACTICE and CHALLENGES - Objects - PART 3
LECTURE - Global Objects - "window" and "global"
LECTURE - Methods of the Object

11 Topics
INTRO - JAVASCRIPT BASICS - Functions
LECTURE - Introduction to the Functions
LECTURE - Syntax of the Function
PRACTICE - Functions - PART 1
PRACTICE - Functions - PART 2
CHALLENGES - Functions - PART 1
CHALLENGES - Functions - PART 2
LECTURE - Function Expressions vs Function Declarations
PRACTICE - Function Expressions setTimout() setInterval()
CHALLENGE - Function Expressions
✓ CHALLENGE - Function Expressions - SOLUTION

12 Topics
INTRO - JAVASCRIPT BASICS - Operators
LECTURE - Operators
LECTURE - Operands Unary vs Binary Operators and Notations
PRACTICE - Arithmetic Operators - PART 1
PRACTICE - Arithmetic Operators - PART 2
PRACTICE - Comparison Operators - PART 1
PRACTICE - Comparison Operators - PART 2
PRACTICE - Logical Operators - PART 1
PRACTICE - Logical Operators - PART 2
PRACTICE - Operators Precedence and Associativity
CHALLENGES - Operators - PART 1
CHALLENGES - Operators - PART 2

6 Topics
INTRO - JAVASCRIPT BASICS - Expressions vs Statements
LECTURE - Expressions vs Statements - PART 1
LECTURE - Expressions vs Statements - PART 2
PRACTICE - Expressions vs Statements - PART 1
PRACTICE - Expressions vs Statements - PART 2
CHALLENGES - Expressions vs Statements

7 Topics
INTRO - JAVASCRIPT BASICS - Scopes
LECTURE - Scopes - PART 1
LECTURE - Scopes - PART 2
LECTURE - Undeclared Variables and "use strict"
PRACTICE - Scopes - PART 1
PRACTICE - Scopes - PART 2
CHALLENGES - Scopes

6 Topics
INTRO - JAVASCRIPT BASICS - Arrays
LECTURE - Arrays
LECTURE - Array Methods
PRACTICE - Arrays - PART 1
PRACTICE - Arrays - PART 2
CHALLENGES - Arrays

16 Topics
LECTURE - Introduction to the Loops
LECTURE - "for" Loop
LECTURE - "while" Loop
LECTURE - "do while" Loop
LECTURE - "for in" and "for of" Loops
PRACTICE Loops - PART 1
PRACTICE Loops - PART 2
PRACTICE Loops - Looking for loops in a pubic JavaScript library
LECTURE - Conditional Statements - if if else and switch
LECTURE - Ternary Operator
PRACTICE - Conditional statements and ternary operator - PART 1
PRACTICE - Conditional statements and ternary operator - PART 2
CHALLENGES - Loops and Conditions - PART 1
CHALLENGES - Loops and Conditions - PART 2
CHALLENGES - Loops and Conditions - PART 3
CHALLENGES - "for in" and Ternary Operator

15 Topics
PRACTICE - Mutable vs Immutable Values
PRACTICE - "typeof" and "instanceof" Operators
PRACTICE - "new Array" "new String"
PRACTICE - "new Object" "new Function"
PRACTICE - Execution contexts and Execution contexts stack
PRACTICE - "this"
PRACTICE - "call" "apply" methods of the Function
PRACTICE - "bind" method of the Function
PRACTICE - "pass by value" vs "pass by reference"
PRACTICE - IIFE - Immediately Invoked Function Expression
PRACTICE - Synchronous Code Execution
PRACTICE - Events and Events queue
PRACTICE - Callbacks - PART 1
PRACTICE - Callbacks - PART 2
PRACTICE - Closures

26 Topics
GIT REPOSITORY FOR THIS SECTION
LECTURE - Recap of the "var"
LECTURE - Scopes - Global Function and Block
LECTURE - let
LECTURE - const
LECTURE - Variables Usage Guidelines
LECTURE - Var Let or Const?
CHALLENGE 1-1 - let var and const
✓ CHALLENGE 1-1 - let var and const - SOLUTION
CHALLENGE 1-2 - let var and closures
✓ CHALLENGE 1-2 - let var and closures - SOLUTION
LECTURE - JavaScript Engine Phases
LECTURE - Variable Lifecycle Phases
LECTURE - Var lifecycle
LECTURE - Undeclared variable lifecycle
LECTURE - Let lifecycle
LECTURE - Const lifecycle
LECTURE - Function lifecycle - Part 1
LECTURE - Function lifecycle - Part 2
LECTURE - What is finally hoisting?
DEMO - Putting different variables lifecycles together
✓ DEMO - Putting different variables lifecycles together - SOLUTION Part 1
✓ DEMO - Putting different variables lifecycles together - SOLUTION Part 2
CHALLENGE 1-3 - Variable Lifecycles
✓ CHALLENGE 1-3 - Variable Lifecycles - SOLUTION
LECTURE - Variables Phases Section Summary

12 Topics
GIT REPOSITORY FOR THIS SECTION
LECTURE - Introduction to the Arrow Functions Section
LECTURE - Traditional JavaScript Functions Overview.
LECTURE - Introduction to the Arrow Functions
LECTURE - Arrow Functions syntax
PRACTICE - Arrow Functions
LECTURE - Arrow Functions and "this".
LECTURE - Regular functions instead of Arrow Functions
CHALLENGE 2-1 - Regular vs Arrow Functions
✓ CHALLENGE 2-1 - Regular vs Arrow Functions - SOLUTION
LECTURE - Arguments in the Functions
LECTURE - Arrow Functions Summary

48 Topics
GIT REPOSITORY FOR THIS SECTION
LECTURE - forEach() Overview
PRACTICE - forEach()
CHALLENGE 3-1 - forEach() with Index
✓ CHALLENGE 3-1 - forEach() with Index - SOLUTION
LECTURE - map() Overview
PRACTICE - map()
CHALLENGE 3-2 - map() JSON to Object
✓ CHALLENGE 3-2 - map() JSON to Object - SOLUTION
LECTURE - filter() Overview
PRACTICE - filter()
LECTURE - find() Overview
PRACTICE - find()
CHALLENGE 3-3 - find() Single Post
✓ CHALLENGE 3-3 - find() Single Post - SOLUTION
LECTURE - every() and some() Overview
PRACTICE - every() and some()
CHALLENGE 3-4 Is Array of Numbers Sorted?
✓ CHALLENGE 3-4 Is Array of Numbers Sorted? - SOLUTION
CHALLENGE 3-5 Are Arrays Equal or not?
✓ CHALLENGE 3-5 Are Arrays Equal or not? - SOLUTION
CHALLENGE 3-6 Check if Element is in Array
✓ CHALLENGE 3-6 Check if Element is in Array - SOLUTION
LECTURE - includes() Overview
PRACTICE - includes()
CHALLENGE 3-7 Includes() with Array or Object
✓ CHALLENGE 3-7 Includes() with Array or Object - SOLUTION
CHALLENGE 3-8 Push Element to Array if Not Exists
✓ CHALLENGE 3-8 Push Element to Array if Not Exists - SOLUTION
LECTURE - reduce() Overview
PRACTICE - reduce()
CHALLENGE 3-9 Reduce Array of Objects
✓ CHALLENGE 3-9 Reduce Array of Objects - SOLUTION
CHALLENGE 3-10 Reduce Array of Objects to Object
✓ CHALLENGE 3-10 Reduce Array of Objects to Object - SOLUTION
LECTURE - Do you know how sort() works?
LECTURE - Sorting Algorithms Overview
LECTURE - Stable vs Unstable Sort
LECTURE - sort() Overview
LECTURE - sort() without Arguments
LECTURE - sort() Analyze sorting algorithms
LECTURE - sort() Algorithms in different browsers
CHALLENGE 3-11 sort() Array of objects
✓ CHALLENGE 3-11 sort() Array of objects - SOLUTION
CHALLENGE 3-12 sort() Long Array of objects
✓ CHALLENGE 3-12 sort() Long Array of objects - SOLUTION
LECTURE - sort() Summary
LECTURE - Array helper methods Summary

7 Topics
GIT REPOSITORY FOR THIS SECTION
LECTURE - Template Literals Overview
LECTURE - Tagged Templates Overview
CHALLENGE 4-1 Template Literals
✓ CHALLENGE 4-1 Template Literals - SOLUTION
CHALLENGE 4-2 Default tagged template
✓ CHALLENGE 4-2 Default tagged template - SOLUTION

16 Topics
GIT REPOSITORY FOR THIS SECTION
LECTURE - Rest Parameters Overview
PRACTICE - Rest Parameters
LECTURE - Spread Operator Overview
PRACTICE - Spread Operator
CHALLENGE 5-1 Rest and Spread Operators
✓ CHALLENGE 5-1 Rest and Spread Operators - SOLUTION
LECTURE - Default Function Parameters Overview
PRACTICE - Default Function Parameters
CHALLENGE 5-2 Default value without default parameters
✓ CHALLENGE 5-2 Default value without default parameters - SOLUTION
CHALLENGE 5-3 Generate Missing Unique IDs
✓ CHALLENGE 5-3 Generate Missing Unique IDs - SOLUTION PART 1
✓ CHALLENGE 5-3 Generate Missing Unique IDs - SOLUTION PART 2
✓ CHALLENGE 5-3 Generate Missing Unique IDs - SOLUTION PART 3
✓ CHALLENGE 5-3 Generate Missing Unique IDs - SOLUTION PART 4

5 Topics
GIT REPOSITORY FOR THIS SECTION
LECTURE - Enhanced Object Literals Overview
PRACTICE - Enhanced Object Literals
CHALLENGE 6-1 Enhanced Object Literals
✓ CHALLENGE 6-1 Enhanced Object Literals - SOLUTION

16 Topics
GIT REPOSITORY FOR THIS SECTION
LECTURE - Destructuring Overview
PRACTICE - Array Destructuring
CHALLENGE 6-2 Array Destructuring
✓ CHALLENGE 6-2 Array Destructuring - SOLUTION
CHALLENGE 6-3 Destructure Result of the Function
✓ CHALLENGE 6-3 Destructure Result of the Function - SOLUTION
PRACTICE - Object Destructuring - PART 1
LECTURE - New Variable Names and Default Values in Object Destructuring
PRACTICE - Object Destructuring - PART 2
CHALLENGE 6-4 Object Destructuring
✓ CHALLENGE 6-4 Object Destructuring - SOLUTION
CHALLENGE 6-5 Object Destructuring and Array Helper Methods
✓ CHALLENGE 6-5 Object Destructuring and Array Helper Methods - SOLUTION
CHALLENGE 6-6 Delete Object Properties
✓ CHALLENGE 6-6 Delete Object Properties - SOLUTION

37 Topics
GIT REPOSITORY FOR THIS SECTION
LECTURE - Class-based vs Prototype-based
LECTURE - What is inheritance?
LECTURE - Prototype Chain
LECTURE - __proto__ and [[Prototype]]
LECTURE - What is Prototype?
LECTURE - Don't reassign __proto__
LECTURE - Native Prototypes - PART 1
LECTURE - Native Prototypes - PART 2
LECTURE - Prototypal Inheritance in JavaScript
PRACTICE - Function Constructors - PART 1
LECTURE - Function Constructors Overview
PRACTICE - Function Constructors - PART 2
PRACTICE - Function Constructors - PART 3
LECTURE - Object.create() Overview
PRACTICE - Object.create()
PRACTICE - Function Constructors - PART 4
LECTURE - Function Constructors - New Prototype in the Chain
CHALLENGE 7-1 Insert Prototype Into the Existing Prototype Chain
✓ CHALLENGE 7-1 Insert Prototype Into the Existing Prototype Chain - SOLUTION
LECTURE - "instanceof" and "typeof" in the Prototype Chain
CHALLENGE 7-2 Fix Mistakes in the Function Constructors
✓ CHALLENGE 7-2 Fix Mistakes in the Function Constructors - SOLUTION
LECTURE - Classes - Overview
LECTURE - Classes vs Function Constructors
PRACTICE - Classes - PART 1
PRACTICE - Classes - PART 2
PRACTICE - Classes - PART 3
CHALLENGE 7-3 Convert Function Constructors to Classes
✓ CHALLENGE 7-3 Convert Function Constructors to Classes - SOLUTION
CHALLENGE 7-4 Extend Array
✓ CHALLENGE 7-4 Extend Array - SOLUTION
CHALLENGE 7-5 Custom Push Method for Arrays
✓ CHALLENGE 7-5 Custom Push Method for Arrays - SOLUTION
LECTURE - React and ES6 Classes
CHALLENGE 7-6 Classes in React - Additional Button
✓ CHALLENGE 7-6 Classes in React - Additional Button - SOLUTION

28 Topics
Babel Module Introduction
LECTURE - What is Compiler?
LECTURE - Compiled vs Interpreted languages
LECTURE - Transpiler
LECTURE - Transpling vs Compiling
LECTURE - ES5 ES6 and JavaScript
LECTURE - What Babel does?
LECTURE - Why do we need Babel?
LECTURE - ES6 support by Browsers
LECTURE - How many browsers need compiled ES5 code?
PRACTICE - Babel in action - ES6 Rest operator
PRACTICE - Compare performance - ES6 Rest Operator(Node.js)
PRACTICE - Compare Performance - ES6 Rest Operator (Google Chrome)
CHALLENGE - Compare Performance - ES6 Destructuring
✓ CHALLENGE - Compare Performance - ES6 Destructurng - SOLUTION
LECTURE - What is User Agent?
LECTURE - Serve different JS files to different browers
LECTURE - Different JS files on the server
PRACTICE - Browser detection on the client
CHALLENGE - Detect feature support in the Browser
✓ CHALLENGE - Detect feature support in the Browser - SOLUTION
CHALLENGE - Insert different script tags into the DOM
✓ CHALLENGE - Insert different script tags into the DOM - SOLUTION
LECTURE - How Babel Works?
PRACTICE - Online Babel Compiler
LECTURE - Install Babel Globally
PRACTICE - Compile JS file using Babel
LECTURE - Plugins and Presets

37 Topics
LECTURE - Introduction to the NPM
PRACTICE - Exploring NPM packages
LECTURE - Package.json and init
LECTURE - Semantic Versioning
LECTURE - Packages Installation
PRACTICE - Install package in the project
CHALLENGE - Install Semver package
✓ CHALLENGE - Install Semver Package - SOLUTION
PRACTICE - Install Browserslist - package with own dependencies
LECTURE - Dependencies and Development Dependencies
PRACTICE - Examine Development Dependencies
PRACTICE - Browser App vs Server Package
CHALLENGE - Clock Browser Application
✓ CHALLENGE - Clock Browser Application - SOLUTION
LECTURE - Clock Challenge Summary
LECTURE - Browser App vs Public Package
PRACTICE - Exploring Package Information and Versions
PRACTICE - Installing Specific Package Version
LECTURE - Why package-lock.json file is needed?
CHALLENGE - Reinstall old package version without lock file
✓ CHALLENGE - Reinstall old package version without lock file - SOLUTION
LECTURE - How lock file is handled
LECTURE - Lock file summary
LECTURE - Update NPM packages overview
CHALLENGE - Update project dependencies
✓ CHALLENGE - Update project dependencies - SOLUTION
LECTURE - Introduction to the NPM scripts
PRACTICE - Start npm script
CHALLENGE - Create prestart script
✓ CHALLENGE - Create prestart script - SOLUTION
PRACTICE - Custom NPM scripts
CHALLENGE - Run NPM scripts simultaneously
✓ CHALLENGE - Run NPM scripts simultaneously - SOLUTION
LECTURE - NPM .bin Folder with Executable Scripts
PRACTICE - Explore .bin Folder on the Mac
PRACTICE - Explore .bin Folder on Windows
LECTURE - NPM Scripts Wrap-Up

2 Topics
PRACTICE - Webpack with Zero Configuration
PRACTICE - Webpack Dev Server

36 Topics
LECTURE - Where MongoDB is used?
LECTURE - Relational vs Document Databases
LECTURE - MongoDB Structure
LECTURE - MongoDB Shell and MongoDB Server
PRACTICE - Installation of the MongoDB on the local computer
PRACTICE - Launch MongoDB Server and connect to it from the MongoDB Shell
PRACTICE - MongoDB database in the Cloud
PRACTICE - Exploring MongoDB Shell
PRACTICE - Installing and Exploring Robo 3T (previously Robomongo)
LECTURE - JSON Overview
LECTURE - Difference between JSON and JavaScript Object
LECTURE - How Documents are stored in the Database? - BSON Format
LECTURE - What is Extended JSON?
LECTURE - Data Types representation in Extended JSON
LECTURE - How types are stored in BSON?
PRACTICE - Creation of the new Collection
LECTURE - Insert Methods insertOne() and insertMany()
LECTURE - Sample Data Overview
PRACTICE - Insert Sample Documents into the Collection
LECTURE - Find Methods find() and findOne()
PRACTICE - Finding Documents
LECTURE - Query Operators Overview
PRACTICE - Finding Documents with Query Operators
LECTURE - Sort Limit and Skip helper methods
PRACTICE - Sort Limit and Skip
LECTURE - Update Methods updateOne() and updateMany()
LECTURE - Update Operators
PRACTICE - Updating Documents using Update Operators
LECTURE - Delete Methods deleteOne() and deleteMany()
PRACTICE - Deleting Documents
LECTURE - MongoDB Aggregation Framework
PRACTICE - Aggregating Documents
LECTURE - MongoDB Indexes
LECTURE - MongoDB Utilities
LECTURE - What is MongoDB Replica Set?
LECTURE - MongoDB Drivers

43 Topics
Intro to Additional JavaScript Challenges
EXERCISE FILES
Software Setup
CHALLENGE 1 - Sum numbers
✓ CHALLENGE 1 - Sum numbers - SOLUTION
CHALLENGE 2 - Const
✓ CHALLENGE 2 - Const - SOLUTION
CHALLENGE 3 - Let
✓ CHALLENGE 3 - Let - SOLUTION
CHALLENGE 4 - Hoisting
✓ CHALLENGE 4 - Hoisting - SOLUTION
CHALLENGE 5 - Ternary Operator
✓ CHALLENGE 5 - Ternary Operator - SOLUTION
CHALLENGE 6 - Arrow Functions
✓ CHALLENGE 6 - Arrow Functions - SOLUTION
CHALLENGE 7 - Default parameters
✓ CHALLENGE 7 - Default parameters - SOLUTION
CHALLENGE 8 - Check presence of the function parameters
✓ CHALLENGE 8 - Check presence of the function parameters - SOLUTION
CHALLENGE 9 - Object Destructuring
✓ CHALLENGE 9 - Object Destructuring - SOLUTION
CHALLENGE 10 - Destructuring and Rest Operator
✓ CHALLENGE 10 - Destructuring and Rest Operator - SOLUTION
CHALLENGE 11 - Spread Operator
✓ CHALLENGE 11 - Spread Operator - SOLUTION
CHALLENGE 12 - Copy Array
✓ CHALLENGE 12 - Copy Array - SOLUTION
CHALLENGE 13 - Template Literals
✓ CHALLENGE 13 - Template Literals - SOLUTION
CHALLENGE 14 - Object Destructuring
✓ CHALLENGE 14 - Object Destructuring - SOLUTION
CHALLENGE 15 - Iterate over String
✓ CHALLENGE 15 - Iterate over String - SOLUTION
CHALLENGE 16 - Swap values of the two variables
✓ CHALLENGE 16 - Swap values of the two variables - SOLUTION
CHALLENGE 17 - IIFE (Immediately Invoked Function Expression)
✓ CHALLENGE 17 - IIFE (Immediately Invoked Function Expression) - SOLUTION
CHALLENGE 18 - Classes
✓ CHALLENGE 18 - Classes - SOLUTION
CHALLENGE 19 - Iterate over Object
✓ CHALLENGE 19 - Iterate over Object - SOLUTION
CHALLENGE 20 - Sum positive and negative numbers
✓ CHALLENGE 20 - Sum positive and negative numbers - SOLUTION

1 Topic
Bonus Lecture

  Write a Review

The JavaScript Bible - JavaScript Bootcamp

Go to Paid Course
Frequently Asked Questions
Yes, this course will provide you with a certificate after completing the same, as it will help you understand the level of proficiency.
This course includes code samples that demonstrate how to apply the concepts you will learn in real-world scenarios.
This course includes many features of JavaScript, starting with basic concepts such as objects, functions, and scopes and finishing with advanced topics such as closure, hoisting, classes, etc.
You will be able to gain and understand modern JavaScript features such as variables, functions and scopes. This will also help you with practical applications such as working with arrays, etc.
Yes, this course access materials and lessons on mobile devices as it will be helpful and convenient for you.