The Modern Javascript Bootcamp Course 2022
What you’ll learn
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
Requirements
A Windows, MacOS, or Linux-based computer is required
Description
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 functionsUnderstand how to design the structure of the code you write, leading to beautiful and easy-to-read programsLeverage Javascript’s built-in methods to increase your productivity regardless of what libraries or frameworks you useDevelop practical skills around higher-order functions that you will utilize for years to comeObserve how the Javascript and browser work together, and how to increase the performance of JS codeBuild awesome projects to fill your personal portfolioBuild command line tools from scratch using Node JSFetch and manage information from third-party API’sBuild 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!
Overview
Section 1: Introduction
Lecture 1 How This Course Works
Lecture 2 JS, ECMA, TC39: What Do They Mean??
Lecture 3 The Tools You Need
Lecture 4 Customizing VSCode & Extensions
Lecture 5 A Quick Note About MDN
Section 2: JS Values & Variables
Lecture 6 Goals & Primitives
Lecture 7 Running Code in the JS Console
Lecture 8 Introducing Numbers
Lecture 9 NaN & Infinity
Lecture 10 Numbers Quiz
Lecture 11 Variables & Let
Lecture 12 Unary Operators
Lecture 13 Introducing Const
Lecture 14 The Legacy of Var
Lecture 15 Variables Quiz
Section 3: How to Model Data Efficiently
Lecture 16 Booleans Intro
Lecture 17 Strings
Lecture 18 String Indices
Lecture 19 String Methods
Lecture 20 More String Methods
Lecture 21 Strings Quiz
Lecture 22 String Escape Characters
Lecture 23 String Template Literals
Lecture 24 Null & Undefined
Lecture 25 The Math Object & Random Numbers
Lecture 26 typeof operator
Lecture 27 parseInt & parseFloat
Section 4: Controlling Program Logic and Flow
Lecture 28 Making Decisions in JS
Lecture 29 Comparison Operators
Lecture 30 Double Equals (==)
Lecture 31 Triple Equals (===)
Lecture 32 Running Code From a Script
Lecture 33 If Statements
Lecture 34 Else If
Lecture 35 Else
Lecture 36 Nesting Conditionals
Lecture 37 Truthy & Falsy Values
Lecture 38 Logical AND (&&)
Lecture 39 Logical OR (||)
Lecture 40 NOT Operator (!)
Lecture 41 Operator Precedence
Lecture 42 The Switch Statement
Lecture 43 Ternary Operator
Section 5: Capture Collections of Data with Arrays
Lecture 44 Creating Arrays
Lecture 45 Array Indices
Lecture 46 Modifying Arrays
Lecture 47 Push and Pop
Lecture 48 Shift and Unshift
Lecture 49 Concat
Lecture 50 Includes and IndexOf
Lecture 51 Reverse and Join
Lecture 52 Slice
Lecture 53 Splice
Lecture 54 Sorting (Part 1)
Lecture 55 Intro to Reference Types
Lecture 56 Using Const with Arrays
Lecture 57 Working with Nested Arrays
Section 6: Objects – The Core of Javascript
Lecture 58 Intro to Objects
Lecture 59 Creating Object Literals
Lecture 60 Accessing Object Properties
Lecture 61 Adding and Updating Properties
Lecture 62 Nested Arrays & Objects
Lecture 63 Objects and Reference Types
Lecture 64 Array/Object Equality
Section 7: The World of Loops
Lecture 65 Intro to Loops
Lecture 66 For Loops
Lecture 67 Infinite Loops!
Lecture 68 For Loops & Arrays
Lecture 69 Nested For Loops
Lecture 70 Intro to While Loops
Lecture 71 More While Loops
Lecture 72 Break Keyword
Lecture 73 For…Of Intro
Lecture 74 Comparing For and For…Of
Lecture 75 For…Of with Objects
Lecture 76 For…In Loops
Section 8: Writing Reusable Code with Functions
Lecture 77 Our First Function!
Lecture 78 Dice Roll Function
Lecture 79 Introducing Arguments
Lecture 80 Functions With Multiple Args
Lecture 81 The Return Statement
Lecture 82 More on Return Values
Lecture 83 Function Challenge 1: passwordValidator
Lecture 84 Function Challenge 2: Average
Lecture 85 Function Challenge 3: Pangrams
Lecture 86 Function Challenge 4: Get Playing Card
Section 9: An Advanced Look at Functions
Lecture 87 Function Scope
Lecture 88 Block Scope
Lecture 89 Lexical Scope
Lecture 90 Function Expressions
Lecture 91 Higher Order Functions
Lecture 92 Functions as Arguments
Lecture 93 Functions as Return Values
Lecture 94 Callbacks
Lecture 95 Hoisting
Section 10: Apply Functions to Collections of Data
Lecture 96 Intro to Array Callback Methods
Lecture 97 forEach
Lecture 98 Map
Lecture 99 Arrow Functions Intro
Lecture 100 Arrow Functions: Implicit Returns
Lecture 101 Array.find
Lecture 102 Filter
Lecture 103 Some & Every
Lecture 104 Revisiting Sort!
Lecture 105 Reduce Intro
Lecture 106 Reduce Pt. 2
Lecture 107 Even More Reduce!
Section 11: A Few Miscellaneous JS Features
Lecture 108 New JS Features Intro
Lecture 109 Default Parameters
Lecture 110 Spread for Function Calls
Lecture 111 Spread in Array Literals
Lecture 112 Spread in Object Literals
Lecture 113 The Arguments Object (not new)
Lecture 114 Rest Parameters (new!)
Lecture 115 Destructuring Arrays
Lecture 116 Destructuring Objects
Lecture 117 Nested Destructuring
Lecture 118 Destructuring Parameters
Section 12: Object Methods and the ‘This’ Keyword
Lecture 119 Shorthand Object Properties
Lecture 120 Computed Properties
Lecture 121 Adding Methods to Objects
Lecture 122 Method Shorthand Syntax
Lecture 123 Intro to Keyword THIS
Lecture 124 Using THIS in Methods
Lecture 125 THIS: Invocation Context
Lecture 126 Annoyomatic Demo
Lecture 127 Putting It All Together: Deck Of Cards
Lecture 128 Creating A Deck Factory
Section 13: JS In the Browser – DOM Manipulation
Lecture 129 Introduction to the DOM
Lecture 130 IMPORTANT NOTE: HTML & CSS
Lecture 131 Taste of the DOM
Lecture 132 Another Fun DOM Example
Lecture 133 The Document Object
Lecture 134 getElementById
Lecture 135 getElementsByTagName
Lecture 136 getElementsByClassName
Lecture 137 querySelector & querySelectorAll
Section 14: Twisting the DOM to Our Will!
Lecture 138 Working with innerText & textContent
Lecture 139 innerHTML
Lecture 140 value, src, href, and more
Lecture 141 Getting & Setting Attributes
Lecture 142 Finding Parent/Children/Siblings
Lecture 143 Changing Multiple Elements
Lecture 144 Altering Styles
Lecture 145 getComputedStyle
Lecture 146 Manipulating Classes
Lecture 147 Creating Elements
Lecture 148 Append, Prepend, & insertBefore
Lecture 149 removeChild & remove
Lecture 150 NBA Scores Chart Pt1.
Lecture 151 NBA Scores Chart Refactor
Section 15: Communicating with Events
Lecture 152 Intro to DOM Events
Lecture 153 2 Ways NOT to Add Events
Lecture 154 addEventListener
Lecture 155 The Impossible Button Demo
Lecture 156 Events on Multiple Elements
Lecture 157 The Event Object
Lecture 158 Key Events: keypress, keyup, & keydown
Lecture 159 Coin Game Demo
Lecture 160 Form Events & PreventDefault
Lecture 161 Input & Change Events
Section 16: Asynchronous Code, Callbacks & Promises
Lecture 162 The Call Stack
Lecture 163 Call Stack Debugging w/ Dev Tools
Lecture 164 JS is Single Threaded
Lecture 165 How Asynchronous Callbacks Actually Work
Lecture 166 Welcome to Callback Hell
Lecture 167 Introducing Promises!
Lecture 168 Returning Promises from Functions
Lecture 169 Resolving/Rejecting w/ Values
Lecture 170 The Delights of Promise Chaining
Lecture 171 Refactoring w/ Promises
Section 17: Making HTTP Requests
Lecture 172 Intro to AJAX
Lecture 173 JSON & XML
Lecture 174 XMLHttpRequests: The Basics
Lecture 175 XMLHttpRequests: Chaining Requests
Lecture 176 A Better Way: Fetch!
Lecture 177 Chaining Fetch Requests
Lecture 178 Refactoring Fetch Chains
Lecture 179 An Even Better Way: Axios
Lecture 180 Sequential Axios Requests
Section 18: Async & Await: JS Magic
Lecture 181 A Quick Overview of Async Functions
Lecture 182 The Async Keyword
Lecture 183 The Await Keyword
Lecture 184 Error Handling in Async Functions
Lecture 185 Multiple Awaits
Lecture 186 Parallel Vs. Sequential Requests
Lecture 187 Refactoring with Promise.all
Section 19: Prototypes, Classes, & The New Operator
Lecture 188 What on Earth are Prototypes?
Lecture 189 An Intro to OOP
Lecture 190 Factory Functions
Lecture 191 Constructor Functions
Lecture 192 JS Classes – Syntactical Sugar
Lecture 193 A Bit More Practice with Classes
Lecture 194 Extends, Super, and Subclasses
Section 20: Drawing Animations
Lecture 195 Welcome to Part 2!
Lecture 196 App Overview
Lecture 197 Project Setup
Lecture 198 Event-Based Architecture
Lecture 199 Class-Based Implementation
Lecture 200 Binding Events in a Class
Lecture 201 Reminder on ‘This’
Lecture 202 Determining the Value of ‘This’
Lecture 203 Solving the ‘This’ Issue
Lecture 204 Starting and Pausing the Timer
Lecture 205 Where to Store Data?
Lecture 206 DOM-Centric Approach
Lecture 207 Getters and Setters
Lecture 208 Stopping the Timer
Lecture 209 Notifying the Outside World
Lecture 210 OnTick and OnComplete
Lecture 211 Extracting Timer Code
Lecture 212 Introducing SVG’s
Lecture 213 Rules of SVG’s
Lecture 214 Advanced Circle Properties
Lecture 215 The Secret to the Animation
Lecture 216 First Pass on the Animation
Lecture 217 Smoothing the Animation
Lecture 218 Adjusting by an Even Interval
Lecture 219 Using Icons
Lecture 220 Styling and Wrapup
Section 21: Application Design Patterns
Lecture 221 Application Overview
Lecture 222 Starter Kit Setup
Lecture 223 Big Challenges
Lecture 224 Fetching Movie Data
Lecture 225 Fetching a Single Movie
Lecture 226 AutoComplete Widget Design
Lecture 227 Searching the API on Input Change
Lecture 228 Delaying Search Input
Lecture 229 Understanding Debounce
Lecture 230 Implementing a Reusable Debounce
Lecture 231 Extracting Utility Functions
Lecture 232 Awaiting Async Functions
Lecture 233 Rendering Movies
Lecture 234 Handling Errored Responses
Lecture 235 Opening a Menu
Lecture 236 Style of Widget Creation
Lecture 237 Moving HTML Generation
Lecture 238 Quick Note
Lecture 239 Repairing References
Lecture 240 Handling Broken Images
Lecture 241 Automatically Closing the Dropdown
Lecture 242 Handling Empty Responses
Lecture 243 Handling Movie Selection
Lecture 244 Making a Followup Request
Lecture 245 Rendering an Expanded Summary
Lecture 246 Expanded Statistics
Lecture 247 Issues with the Codebase
Lecture 248 Making the Autocomplete Reusable
Lecture 249 Displaying Multiple Autocompletes
Lecture 250 Extracting Rendering Logic
Lecture 251 Extracting Selection Logic
Lecture 252 Removing Movie References
Lecture 253 Consuming a Different Source of Data
Lecture 254 Refreshed HTML Structure
Lecture 255 Avoiding Duplication of Config
Lecture 256 Hiding the Tutorial
Lecture 257 Showing Two Summaries
Lecture 258 When to Compare?
Lecture 259 How to Compare?
Lecture 260 Extracting Statistic Values
Lecture 261 Parsing Number of Awards
Lecture 262 Applying Parsed Properties
Lecture 263 Updating Styles
Lecture 264 Small Bug Fix
Lecture 265 App Wrapup
Section 22: Javascript with the Canvas API
Lecture 266 Application Overview
Lecture 267 Project Setup
Lecture 268 Matter Terminology
Lecture 269 Getting Content to Appear
Lecture 270 Boilerplate Overview
Lecture 271 Drawing Borders
Lecture 272 Clicking and Dragging
Lecture 273 Generating Random Shapes
Lecture 274 Maze Generation Algorithm
Lecture 275 More on Maze Generation
Lecture 276 Configuration Variables
Lecture 277 Grid Generation
Lecture 278 Verticals and Horizontals
Lecture 279 Abstracting Maze Dimensions
Lecture 280 Guiding Comments
Lecture 281 Neighbor Coordinates
Lecture 282 Shuffling Neighbor Pairs
Lecture 283 Determining Movement Direction
Lecture 284 Updating Vertical Wall Values
Lecture 285 Updating Horizontal Wall Values
Lecture 286 Validating Wall Structure
Lecture 287 Iterating Over Walls
Lecture 288 Drawing Horizontal Segments
Lecture 289 Drawing Vertical Segments
Lecture 290 Drawing the Goal
Lecture 291 Drawing the Playing Ball
Lecture 292 Handling Keypresses
Lecture 293 Adding Keyboard Controls
Lecture 294 Disabling Gravity
Lecture 295 Detecting a Win
Lecture 296 Adding a Win Animation
Lecture 297 Stretching the Canvas
Lecture 298 Understanding the New Unit Variables
Lecture 299 Refactoring for Rectangular Mazes
Lecture 300 Adding Fill Colors
Lecture 301 Displaying a Success Message
Section 23: Make a Secret-Message Sharing App
Lecture 302 Application Overview
Lecture 303 Project Setup
Lecture 304 Handling Form Submission
Lecture 305 Base64 Encoding
Lecture 306 Encoding the Entered String
Lecture 307 Parts of a URL
Lecture 308 Generating the URL
Lecture 309 Toggling Element Visibility
Lecture 310 Decoding the Message
Lecture 311 Displaying the Message
Lecture 312 App Deployment
Section 24: Create Node JS Command Line Tools
Lecture 313 JavaScript with Node vs the Browser
Lecture 314 Executing JavaScript
Lecture 315 Working with Modules
Lecture 316 Invisible Node Functions
Lecture 317 The Require Cache
Lecture 318 Files Get Required Once!
Lecture 319 Debugging with Node
Lecture 320 App Overview
Lecture 321 Accessing Standard Library Modules
Lecture 322 The Callback Pattern in Node
Lecture 323 The Process.cwd Function
Lecture 324 Running a Node Program as an Executable
Lecture 325 Linking a Project
Lecture 326 Is it a File or a Folder?
Lecture 327 A Buggy Initial Implementation
Lecture 328 Optional Solution #1
Lecture 329 A Callback-Based Solution
Lecture 330 Callback-Based Functions Using Promises
Lecture 331 Issues with Sequential Reads
Lecture 332 Promise.all-Based Solution
Lecture 333 Console Logs with Colors
Lecture 334 Accepting Command Line Arguments
Lecture 335 Joining Paths
Lecture 336 App Wrapup
Section 25: Create Your Own Project Runner
Lecture 337 App Overview
Lecture 338 Project Setup
Lecture 339 Big Application Challenges
Lecture 340 Watching Files with Chokidar
Lecture 341 Issues with Add Event
Lecture 342 Debouncing Add Events
Lecture 343 Naming Require Statements
Lecture 344 Handling CLI Tools with Caporal
Lecture 345 Ensuring Files Exist
Lecture 346 It Works!
Lecture 347 More on StdIO
Lecture 348 [Optional] More on Child_Process
Lecture 349 App Wrapup
Section 26: Project Start – E-Commerce App
Lecture 350 App Overview
Lecture 351 App Architecture
Lecture 352 Package.json Scripts
Lecture 353 Creating a Web Server
Lecture 354 Behind the Scenes of Requests
Lecture 355 Displaying Simple HTML
Lecture 356 Understanding Form Submissions
Lecture 357 Parsing Form Data
Lecture 358 Middlewares in Express
Lecture 359 Globally Applying Middleware
Section 27: Design a Custom Database
Lecture 360 Data Storage
Lecture 361 Different Data Modeling Approaches
Lecture 362 Implementing the Users Repository
Lecture 363 Opening the Repo Data File
Lecture 364 Small Refactor
Lecture 365 Saving Records
Lecture 366 Better JSON Formatting
Lecture 367 Random ID Generation
Lecture 368 Finding By Id
Lecture 369 Deleting Records
Lecture 370 Updating Records
Lecture 371 Adding Filtering Logic
Lecture 372 Exporting an Instance
Lecture 373 Signup Validation Logic
Section 28: Production-Grade Authentication
Lecture 374 Cookie Based Authentication
Lecture 375 Creating User Records
Lecture 376 Fetching a Session
Lecture 377 Signing Out a User
Lecture 378 Signing In
Lecture 379 Hashing Passwords
Lecture 380 Salting Passwords
Lecture 381 Salting + Hashing Passwords
Lecture 382 Comparing Hashed Passwords
Lecture 383 Testing the Full Flow
Section 29: Structuring Javascript Projects
Lecture 384 Project Structure
Lecture 385 Structure Refactor
Lecture 386 HTML Templating Functions
Lecture 387 HTML Reuse with Layouts
Lecture 388 Building a Layout File
Lecture 389 Adding Better Form Validation
Lecture 390 Validation vs Sanitization
Lecture 391 Receiving Validation Output
Lecture 392 Adding Custom Validators
Lecture 393 Extracting Validation Chains
Lecture 394 Displaying Error Messages
Lecture 395 Validation Around Sign In
Lecture 396 Password Validation
Lecture 397 Template Helper Functions
Lecture 398 Adding Some Styling
Lecture 399 Exposing Public Directories
Lecture 400 Next Steps
Lecture 401 Product Routes
Lecture 402 The Products Repository
Lecture 403 Code Reuse with Classes
Lecture 404 Creating the Products Repository
Lecture 405 Building the Product Creation Form
Lecture 406 Some Quick Validation
Section 30: Image and File Upload
Lecture 407 Exploring Image Upload
Lecture 408 Understanding Mutli-Part Forms
Lecture 409 Accessing the Uploaded File
Lecture 410 [Optional] Different Methods of Image Storage
Lecture 411 Saving the Image
Lecture 412 A Subtle Middleware Bug
Lecture 413 Better Styling
Lecture 414 Reusable Error Handling Middleware
Lecture 415 Products Listing
Lecture 416 Redirect on Success Actions
Lecture 417 Requiring Authentication
Lecture 418 Template Update
Lecture 419 Ids in URLs
Lecture 420 Receiving URL Params
Lecture 421 Displaying an Edit Form
Section 31: Building a Shopping Cart
Lecture 422 Editing a Product
Lecture 423 Fixing the HandleErrors Middleware
Lecture 424 Edit Form Template
Lecture 425 Deleting Products
Lecture 426 Starting with Seed Data
Lecture 427 User-Facing Products
Lecture 428 Products Index
Lecture 429 Merging More Styling
Lecture 430 Understanding a Shopping Cart
Lecture 431 Solving Problem #1
Lecture 432 Solving Problem #2
Lecture 433 Shopping Cart Boilerplate
Lecture 434 Submission Options
Lecture 435 Creating a Cart, One Way or Another
Lecture 436 Adding Items to a Cart
Lecture 437 Displaying Cart Items
Lecture 438 Rendering the List
Lecture 439 Totaling Cart Items
Lecture 440 Removing Cart Items
Lecture 441 Redirect on Remove
Section 32: The Basics of Testing
Lecture 442 Testing Overview
Lecture 443 A Simple Function to Test
Lecture 444 A No-Frills Testing Implementation
Lecture 445 Test Driven Development
Lecture 446 Fixing Three Issues
Lecture 447 The Assert Module
Lecture 448 Using Mocha
Lecture 449 App Setup
Lecture 450 Reminder on This App
Lecture 451 Why is Test Setup Difficult?
Lecture 452 Mocha in the Browser
Lecture 453 Displaying the Autocomplete
Lecture 454 Verifying the Dropdown State
Lecture 455 Writing Assertions
Lecture 456 Fake DOM Events
Lecture 457 Holding Up Assertions
Lecture 458 Implementing WaitFor
Lecture 459 Asserting Records Fetched
Section 33: Building a Testing Framework From Scratch
Lecture 460 Test Framework Requirements
Lecture 461 Project Setup
Lecture 462 Implementation Steps
Lecture 463 Walking a Directory Structure
Lecture 464 Implementing Breadth First Search
Lecture 465 Collecting Test Files
Lecture 466 Running Test Files
Lecture 467 A Quick Test Harness
Lecture 468 Implementing ‘beforeEach’ and ‘it’
Lecture 469 Adding Basic Reporting
Lecture 470 Adding Colors
Lecture 471 Better Formatting
Lecture 472 Ignoring Directories
Lecture 473 Running Browser-Based JS
Lecture 474 A Sample Web App
Lecture 475 Why JSDOM?
Lecture 476 Building a Render Function
Lecture 477 HTML Element Assertions
Lecture 478 An Incorrectly Passing Test
Lecture 479 Another Small Issue
Lecture 480 Script Execution Delay
Lecture 481 Implementing a Delay
Lecture 482 Fixing a Test
Section 34: Bonus!
Lecture 483 Bonus!
Anyone looking to understand and master Javascript
Course Information:
Udemy | English | 51h 54m | 25.34 GB
Created by: Colt Steele
You Can See More Courses in the Developer >> Greetings from CourseDown.com