The JavaScript Bible - JavaScript Bootcamp

Understand and learn JavaScript and ES6 in a one challenge-based JavaScript Bootcamp course!

4.59 (1727 reviews)
Udemy
platform
English
language
Web Development
category
The JavaScript Bible - JavaScript Bootcamp
42,610
students
42.5 hours
content
Feb 2024
last update
$79.99
regular price

What you will learn

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

Why take this course?

This course covers everything you need to know about JavaScript and become either Frontend Web developer, or Full-stack Web Developer, or Backend developer.

This course includes more than 70 CHALLENGES and all exercise files are available in Git repositories.

We will start from the very beginning and you will learn fundamentals and basic concepts of JavaScript.

Than you will learn new features included in ES6, ES7 etc.

Also we will dive into the Node.js - environment for JavaScript code execution and you will understand what is the difference between Web Browser and Node.js.

In separate sections we will discuss Babel, NPM, Webpack and MongoDB.

Also you will learn most popular JavaScript framework - React.


JavaScript Bible was designed for developers with different levels of JavaScript knowledge.

If you are BEGINNER in JavaScript - start with very first section called JavaScript Basics.

In case you have SOME experience with JavaScript - jump directly in the sections where I cover ES6 topics such as rest/spread parameters, arrow functions, ES6 Classes etc.

If you are experienced MIDDLE or SENIOR developer with years of JavaScript development background - jump directly into the Challenges and test your knowledge. Each challenge has task and solution in separate Git branches.


All videos have different labels:

  • LECTURE: in those videos I explain different features and concepts of the language. Main main goal in those videos is to teach you HOW specific feature work under the hood. I don't teach HOW TO USE feature.

    Instead I teach you WHY and HOW specific feature works.

  • PRACTICE: here I will dive into the coding and show you different real-world examples of the usage of specific feature. Usually I will present to you several examples for each specific feature. I strongly recommend you to follow me in those videos and code along with me.

  • CHALLENGE: each challenge (except simple and short challenges) has START and FINISH branches with task and solution. PLEASE don't skip challenges even if you are already familiar with the topic. Try to solve each challenge yourself.

  • DEMO: in some videos I will demonstrate you examples where you don't necessarily need to follow me and code along with me

If you want to become an Expert in JavaScript, please join this course now!

See you onboard!

Content

Intro

Intro
Course Navigation

EXERCISE Files and SOFTWARE Setup

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

JAVASCRIPT BASICS - Intro

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

JAVASCRIPT BASICS - Types and Variables

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

JAVASCRIPT BASICS - Objects

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

JAVASCRIPT BASICS - Functions

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

JAVASCRIPT BASICS - Operators

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

JAVASCRIPT BASICS - Expressions vs Statements

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

JAVASCRIPT BASICS - Scopes

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

JAVASCRIPT BASICS - Arrays

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

JAVASCRIPT BASICS - Loops and Conditional Statements

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

JAVASCRIPT BASICS - Advanced 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

ES6 Variables Lifecycles

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

ES6 Arrow functions

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

ES5.1 Array Helper Methods

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

ES6 Template Literals

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

ES6 Rest/Spread Operators and Default Function Parameters

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

ES6 Enhanced Object Literals

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

ES6 Array and Object Destructuring

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

ES6 Classes, Prototypes and Function Constructors

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

Babel Introduction

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

NPM - Node Package Manager

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

Webpack

PRACTICE - Webpack with Zero Configuration
PRACTICE - Webpack Dev Server

Introduction to the MongoDB

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

Additional JavaScript Challenges

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

Screenshots

The JavaScript Bible - JavaScript Bootcamp - Screenshot_01The JavaScript Bible - JavaScript Bootcamp - Screenshot_02The JavaScript Bible - JavaScript Bootcamp - Screenshot_03The JavaScript Bible - JavaScript Bootcamp - Screenshot_04

Our review

It seems like the feedback for Bogdan's JavaScript course is overwhelmingly positive! Students appreciate the in-depth explanations, practical examples, and the thorough coverage of JavaScript topics. Many highlight the value of understanding error messages and the importance of the "why" behind each concept, which is a testament to Bogdan's teaching style that emphasizes not just how to write code but also understanding what the code does. Some suggestions for improvement include adding more content on asynchronous JavaScript and DOM methods, as well as considering ES6 and beyond as the new standard. Additionally, there's a mention that students should be able to skip optional sections without affecting their certification status, which is a practical concern given Udemy's platform limitations. Overall, it's clear that students find Bogdan's course to be an excellent resource for learning JavaScript, whether they are beginners or experienced programmers looking to deepen their understanding of the language. The course is praised for its depth, clarity, and practical approach to teaching programming concepts.

Charts

Price

The JavaScript Bible - JavaScript Bootcamp - Price chart

Rating

The JavaScript Bible - JavaScript Bootcamp - Ratings chart

Enrollment distribution

The JavaScript Bible - JavaScript Bootcamp - Distribution chart

Related Topics

1586988
udemy ID
3/8/2018
course created date
6/18/2019
course indexed date
Bot
course submited by