Professional JavaScript
Course Description Overview
In-depth knowledge of JavaScript makes it easier to learn a variety of other frameworks, including React, Angular, and related tools and libraries. This course is designed to help you cover the core JavaScript concepts you need to build modern applications.
You’ll start by learning how to represent an HTML document in the Document Object Model (DOM). Next, you'll combine your knowledge of the DOM and Node.js to create a web scraper for practical situations. As you cover further chapters, you'll create a Node.js-based RESTful API using the Express Library for Node.js. You'll also understand how modular designs can be used for better reusability and collaboration with multiple developers on a single project. Later chapters will guide you through building unit tests, which ensure that the core functionality of your program is not affected over time. The course will also demonstrate how constructors, async/await, and events can load your applications quickly and efficiently. Finally, you’ll gain useful insights into functional programming concepts such as immutability, pure functions, and higher-order functions.
By the end of this course, you'll have the skills you need to tackle any real-world JavaScript development problem using a modern JavaScript approach, both for client and server sides.After completing this course, you will be able to:
- Apply the core concepts of functional programming
- Build a Node.js project that uses the Express.js library to host an API
- Create unit tests for a Node.js project to validate it
- Use the Cheerio library with Node.js to create a basic web scraper
- Develop a React interface to build processing flows
- Use callbacks as a basic way to bring control back
We also recommend that you have the following software installed in advance:
- Git latest version
- Node.js 10.16.3 LTS (https://nodejs.org/en/)
For the optimal student experience, we recommend the following hardware configuration:
- Processor: Intel Core i5 or equivalent
- Memory: 4 GB RAM
- Storage: 5 GB available space
Lesson 1: JavaScript, HTML, and the DOM
- HTML and the DOM
- Developer Tools
Lesson 2: Node.js and npm
- What is Node.js?
- Node Version Manager (nvm)
- Node Package Manager (npm)
Lesson 3: Node.js APIs and Web Scraping
- Globals
- FileSystem APIs
- HTTP APIs
- What is Scraping?
Lesson 4: RESTful APIs with Node.js
- What is an API?
- What is REST?
- Useful Defaults and Easy Inputs
- Middleware
- The Contents of a JWT
- MongoDB
Lesson 5: Modular JavaScript
- ES6 Modules
- Object-Oriented Programming (OOP)
- npm Package
Lesson 6: Code Quality
- Clear Naming
- Unit Tests
- Integration Tests
- End-to-End Testing
- Puppeteer
Lesson 7: Advanced JavaScript
- Language Features Supported in ES5, ES6, ES7, ES8, and ES9
- OOP in JavaScript
- Sorting
- Maps and Sets
- Math, Date, and String
- Symbols, Iterators, Generators, and Proxies
Lesson 8: Asynchronous Programming
- Callback Hell
- Async and Await
Lesson 9: Event-Driven Programming and Built-In Modules
- Eventing
- Node.js Built-In Modules
- Handling Large Files in Node.js
Lesson 10: Functional Programming with JavaScript
- Functions – First-Class Citizens
- Pure Functions
- Higher-Order Functions
- Function Composition
- Immutability and Side Effects
- Introduction to GraphQL Language Schemas and Queries