https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/
JavaScript Algorithm and Data Structures Certification
While HTML and CSS control the content and styling of a page, JavaScript is used to make it interactive. This comprehensive certification takes you from foundational concepts to advanced programming paradigms.
What You'll Master
- > JavaScript Fundamentals: variables, arrays, objects, loops, and functions
- > ES6 Features: arrow functions, destructuring, template literals, and modules
- > Data Structures: arrays, objects, and complex data manipulation
- > Algorithm Design: problem-solving patterns and efficiency
- > Debugging Techniques: identifying and fixing code issues
- > Regular Expressions: pattern matching and text manipulation
Practical Applications
- > String manipulation algorithms
- > Mathematical operations and factorialization
- > Array sorting and searching techniques
- > Object-oriented data handling
- > Real-world calculations (e.g., orbit simulations)
- > Interactive web application development
Programming Paradigms
- > Object Oriented Programming (OOP): classes, inheritance, and encapsulation
- > Functional Programming (FP): pure functions, higher-order functions, and immutability
- > Protocol-oriented programming patterns
- > Asynchronous programming techniques
Certification Outcomes
- > Build interactive, dynamic web applications
- > Write efficient, maintainable JavaScript code
- > Solve complex algorithmic challenges
- > Understand modern JavaScript frameworks
- > Prepare for advanced software development roles
This certification provides the essential JavaScript skills needed for modern web development, combining theoretical knowledge with practical, real-world application.
There are 294 lessons and modules in total. Try doing 20 or 30 per day.
Watch the video above for a comprehensive guide.
JavaScript Concepts Categorized
1. Basics & Fundamentals
- > Comment Your JavaScript Code
- > Understanding Case Sensitivity in Variables
2. Variables and Declaration
- > Declare JavaScript Variables
- > Storing Values with the Assignment Operator
- > Assigning the Value of One Variable to Another
- > Initializing Variables with the Assignment Operator
- > Understanding Uninitialized Variables
- > Explore Differences Between the var and let Keywords
- > Declare a Read-Only Variable with the const Keyword
3. Numbers and Arithmetic Operations
- > Add Two Numbers with JavaScript
- > Subtract One Number from Another with JavaScript
- > Multiply Two Numbers with JavaScript
- > Divide One Number by Another with JavaScript
- > Increment a Number with JavaScript
- > Decrement a Number with JavaScript
- > Create Decimal Numbers with JavaScript
- > Multiply Two Decimals with JavaScript
- > Divide One Decimal by Another with JavaScript
- > Finding a Remainder in JavaScript
- > Compound Assignment With Augmented Addition
- > Compound Assignment With Augmented Subtraction
- > Compound Assignment With Augmented Multiplication
- > Compound Assignment With Augmented Division
4. Strings
- > Declare String Variables
- > Escaping Literal Quotes in Strings
- > Quoting Strings with Single Quotes
- > Escape Sequences in Strings
- > Concatenating Strings with Plus Operator
- > Concatenating Strings with the Plus Equals Operator
- > Constructing Strings with Variables
- > Appending Variables to Strings
- > Find the Length of a String
- > Use Bracket Notation to Find the First Character in a String
- > Understand String Immutability
- > Use Bracket Notation to Find the Nth Character in a String
- > Use Bracket Notation to Find the Last Character in a String
- > Use Bracket Notation to Find the Nth-to-Last Character in a String
- > Word Blanks (String manipulation challenge)
5. Arrays
- > Store Multiple Values in one Variable using JavaScript Arrays
- > Nest one Array within Another Array
- > Access Array Data with Indexes
- > Modify Array Data With Indexes
- > Access Multi-Dimensional Arrays With Indexes
- > Manipulate Arrays With push Method
- > Manipulate Arrays With pop Method
- > Manipulate Arrays With shift Method
- > Manipulate Arrays With unshift Method
- > Shopping List (Array manipulation challenge)
- > Iterate Through an Array with a For Loop
- > Accessing Nested Arrays
6. Functions
- > Write Reusable JavaScript with Functions
- > Passing Values to Functions with Arguments
- > Return a Value from a Function with Return
- > Global Scope and Functions
- > Local Scope and Functions
- > Global vs. Local Scope in Functions
- > Understanding Undefined Value returned from a Function
- > Assignment with a Returned Value
- > Stand in Line (Function challenge - queue simulation)
- > Return Early Pattern for Functions
7. Conditional Logic (If/Else, Switch, Booleans)
- > Understanding Boolean Values
- > Use Conditional Logic with If Statements
- > Introducing Else Statements
- > Introducing Else If Statements
- > Logical Order in If Else Statements
- > Chaining If Else Statements
- > Golf Code (Conditional logic challenge)
- > Returning Boolean Values from Functions
- > Comparison with the Equality Operator
- > Comparison with the Strict Equality Operator
- > Practice comparing different values
- > Comparison with the Inequality Operator
- > Comparison with the Strict Inequality Operator
- > Comparison with the Greater Than Operator
- > Comparison with the Greater Than Or Equal To Operator
- > Comparison with the Less Than Operator
- > Comparison with the Less Than Or Equal To Operator
- > Comparisons with the Logical And Operator
- > Comparisons with the Logical Or Operator
- > Selecting from Many Options with Switch Statements
- > Adding a Default Option in Switch Statements
- > Multiple Identical Options in Switch Statements
- > Replacing If Else Chains with Switch
- > Use the Conditional (Ternary) Operator
- > Use Multiple Conditional (Ternary) Operators
8. Objects
- > Build JavaScript Objects
- > Accessing Object Properties with Dot Notation
- > Accessing Object Properties with Bracket Notation
- > Accessing Object Properties with Variables
- > Updating Object Properties
- > Add New Properties to a JavaScript Object
- > Delete Properties from a JavaScript Object
- > Using Objects for Lookups
- > Testing Objects for Properties
- > Manipulating Complex Objects
- > Accessing Nested Objects
- > Record Collection (Object manipulation challenge)
- > Profile Lookup (Object lookup challenge)
9. Loops and Iteration
- > Iterate with JavaScript While Loops
- > Iterate with JavaScript For Loops
- > Iterate Odd Numbers With a For Loop
- > Count Backwards With a For Loop
- > Nesting For Loops
- > Iterate with JavaScript Do...While Loops
10. Recursion
- > Replace Loops using Recursion
- > Use Recursion to Create a Countdown
- > Use Recursion to Create a Range of Numbers
11. Randomness and Parsing
- > Generate Random Fractions with JavaScript
- > Generate Random Whole Numbers with JavaScript
- > Generate Random Whole Numbers within a Range
- > Use the parseInt Function
- > Use the parseInt Function with a Radix
12. Algorithm Challenges & Projects
(Comprehensive challenges applying concepts from multiple topics)
- > Word Blanks
- > Shopping List
- > Stand in Line
- > Golf Code
- > Counting Cards
- > Record Collection
- > Profile Lookup
JavaScript ES6 Concepts Categorized
1. Variable Declarations & Scoping
- > Compare Scopes of the var and let Keywords
- > Mutate an Array Declared with const
- > Prevent Object Mutation
2. Functions
- > Use Arrow Functions to Write Concise Anonymous Functions
- > Write Arrow Functions with Parameters
- > Set Default Parameters for Your Functions
- > Use the Rest Parameter with Function Parameters
3. Destructuring Assignment
- > Use Destructuring Assignment to Extract Values from Objects
- > Use Destructuring Assignment to Assign Variables from Objects
- > Use Destructuring Assignment to Assign Variables from Nested Objects
- > Use Destructuring Assignment to Assign Variables from Arrays
- > Destructuring via rest elements
- > Use Destructuring Assignment to Pass an Object as a Function's Parameters
4. Template Literals & Object Shorthand
- > Create Strings using Template Literals
- > Write Concise Object Literal Declarations Using Object Property Shorthand
- > Write Concise Declarative Functions with ES6
5. Classes & Object-Oriented Features
- > Use class Syntax to Define a Constructor Function
- > Use getters and setters to Control Access to an Object
6. Modules
- > Create a Module Script
- > Use export to Share a Code Block
- > Reuse JavaScript Code Using import
- > Use * to Import Everything from a File
- > Create an Export Fallback with export default
- > Import a Default Export
7. Promises
- > Create a JavaScript Promise
- > Complete a Promise with resolve and reject
- > Handle a Fulfilled Promise with then
- > Handle a Rejected Promise with catch
8. The Spread Operator
- > Use the Spread Operator to Evaluate Arrays In-Place
JavaScript Regular Expression Concepts Categorized
1. Basic Matching & Testing
- > Using the Test Method
- > Match Literal Strings
- > Match a Literal String with Different Possibilities
- > Ignore Case While Matching
- > Extract Matches
- > Find More Than the First Match
2. Character Classes & Wildcards
- > Match Anything with Wildcard Period
- > Match Single Character with Multiple Possibilities
- > Match Letters of the Alphabet
- > Match Numbers and Letters of the Alphabet
- > Match Single Characters Not Specified
- > Match All Letters and Numbers
- > Match Everything But Letters and Numbers
- > Match All Numbers
- > Match All Non-Numbers
- > Match Whitespace
- > Match Non-Whitespace Characters
3. Quantifiers & Repetition
- > Match Characters that Occur One or More Times
- > Match Characters that Occur Zero or More Times
- > Specify Upper and Lower Number of Matches
- > Specify Only the Lower Number of Matches
- > Specify Exact Number of Matches
- > Check for All or None
4. Advanced Matching Techniques
- > Find Characters with Lazy Matching
- > Find One or More Criminals in a Hunt
- > Match Beginning String Patterns
- > Match Ending String Patterns
- > Restrict Possible Usernames
5. Lookaheads & Grouping
- > Positive and Negative Lookahead
- > Check For Mixed Grouping of Characters
- > Reuse Patterns Using Capture Groups
6. Search, Replace & Practical Applications
- > Use Capture Groups to Search and Replace
- > Remove Whitespace from Start and End
JavaScript Debugging Concepts Categorized
1. Console & Development Tools
- > Use the JavaScript Console to Check the Value of a Variable
- > Understanding the Differences between the freeCodeCamp and Browser Console
- > Use typeof to Check the Type of a Variable
2. Syntax & Common Mistakes
- > Catch Misspelled Variable and Function Names
- > Catch Unclosed Parentheses, Brackets, Braces and Quotes
- > Catch Mixed Usage of Single and Double Quotes
- > Catch Use of Assignment Operator Instead of Equality Operator
- > Catch Missing Open and Closing Parenthesis After a Function Call
3. Logic & Function Errors
- > Catch Arguments Passed in the Wrong Order When Calling a Function
- > Catch Off By One Errors When Using Indexing
4. Loop & Control Flow Issues
- > Use Caution When Reinitializing Variables Inside a Loop
- > Prevent Infinite Loops with a Valid Terminal Condition
JavaScript Basic Data Structures Concepts Categorized
1. Array Fundamentals
- > Use an Array to Store a Collection of Data
- > Access an Array's Contents Using Bracket Notation
- > Create complex multi-dimensional arrays
2. Array Manipulation - Adding/Removing
- > Add Items to an Array with push() and unshift()
- > Remove Items from an Array with pop() and shift()
- > Remove Items Using splice()
- > Add Items Using splice()
3. Array Copying & Combining
- > Copy Array Items Using slice()
- > Copy an Array with the Spread Operator
- > Combine Arrays with the Spread Operator
4. Array Searching & Iteration
- > Check For The Presence of an Element With indexOf()
- > Iterate Through All an Array's Items Using For Loops
5. Object Fundamentals
- > Add Key-Value Pairs to JavaScript Objects
- > Access Property Names with Bracket Notation
- > Modify an Object Nested Within an Object
6. Object Manipulation & Inspection
- > Use the delete Keyword to Remove Object Properties
- > Check if an Object has a Property
- > Modify an Array Stored in an Object
7. Object Iteration
- > Iterate Through the Keys of an Object with a for...in Statement
- > Generate an Array of All Object Keys with Object.keys()
JavaScript Basic Algorithm Scripting Concepts Categorized
1. String Manipulation
- > Reverse a String
- > Find the Longest Word in a String
- > Confirm the Ending
- > Repeat a String Repeat a String
- > Truncate a String
- > Title Case a Sentence
- > Mutations
2. Array Operations
- > Return Largest Numbers in Arrays
- > Finders Keepers
- > Falsy Bouncer
- > Where do I Belong
- > Chunky Monkey
- > Slice and Splice
3. Mathematical Operations
- > Convert Celsius to Fahrenheit
- > Factorialize a Number
4. Type Checking & Validation
- > Boo who
- > Title Case a Sentence
- > Slice and Splice
- > Falsy Bouncer
- > Where do I Belong
- > Mutations
- > Chunky Monkey
JavaScript Object Oriented Programming Concepts Categorized
1. Object Basics
- > Create a Basic JavaScript Object
- > Use Dot Notation to Access the Properties of an Object
- > Create a Method on an Object
- > Make Code More Reusable with the this Keyword
2. Constructors & Instantiation
- > Define a Constructor Function
- > Use a Constructor to Create Objects
- > Extend Constructors to Receive Arguments
- > Verify an Object's Constructor with instanceof
- > Understand Own Properties
3. Prototypes & Inheritance
- > Use Prototype Properties to Reduce Duplicate Code
- > Iterate Over All Properties
- > Understand the Constructor Property
- > Change the Prototype to a New Object
- > Remember to Set the Constructor Property when Changing the Prototype
- > Understand Where an Object’s Prototype Comes From
- > Understand the Prototype Chain
4. Classical Inheritance Patterns
- > Use Inheritance So You Don't Repeat Yourself
- > Inherit Behaviors from a Supertype
- > Set the Child's Prototype to an Instance of the Parent
- > Reset an Inherited Constructor Property
- > Add Methods After Inheritance
- > Override Inherited Methods
5. Advanced Patterns & Techniques
- > Use a Mixin to Add Common Behavior Between Unrelated Objects
- > Use Closure to Protect Properties Within an Object from Being Modified Externally
- > Understand the Immediately Invoked Function Expression (IIFE)
- > Use an IIFE to Create a Module
JavaScript Functional Programming Concepts Categorized
1. Functional Programming Fundamentals
- > Learn About Functional Programming
- > Understand Functional Programming Terminology
- > Understand the Hazards of Using Imperative Code
- > Avoid Mutations and Side Effects Using Functional Programming
2. Pure Functions & Avoiding Side Effects
- > Pass Arguments to Avoid External Dependence in a Function
- > Refactor Global Variables Out of Functions
3. Array Transformation Methods
- > Use the map Method to Extract Data from an Array
- > Implement map on a Prototype
- > Use the filter Method to Extract Data from an Array
- > Implement the filter Method on a Prototype
- > Use the reduce Method to Analyze Data
- > Use Higher-Order Functions map, filter, or reduce to Solve a Complex Problem
4. Immutable Array Operations
- > Return Part of an Array Using the slice Method
- > Remove Elements from an Array Using slice Instead of splice
- > Combine Two Arrays Using the concat Method
- > Add Elements to the End of an Array Using concat Instead of push
- > Sort an Array Alphabetically using the sort Method
- > Return a Sorted Array Without Changing the Original Array
5. String & Array Conversion
- > Split a String into an Array Using the split Method
- > Combine an Array into a String Using the join Method
- > Apply Functional Programming to Convert Strings to URL Slugs
6. Array Validation Methods
- > Use the every Method to Check that Every Element in an Array Meets a Criteria
- > Use the some Method to Check that Any Elements in an Array Meet a Criteria
7. Advanced Functional Concepts
- > Introduction to Currying and Partial Application
JavaScript Intermediate Algorithm Scripting Concepts Categorized
1. Mathematical & Numerical Operations
- > Sum All Numbers in a Range
- > Sum All Odd Fibonacci Numbers
- > Sum All Primes
- > Smallest Common Multiple
2. Array Manipulation & Comparison
- > Diff Two Arrays
- > Seek and Destroy
- > Sorted Union
- > Drop it
- > Steamroller
3. String Manipulation & Conversion
- > Spinal Tap Case
- > Pig Latin
- > Convert HTML Entities
- > Binary Agents
4. Object Operations & Search
- > Wherefore art thou
- > Search and Replace
- > Everything Be True
5. Advanced Algorithm Challenges
- > DNA Pairing
- > Missing letters
- > Arguments Optional
- > Make a Person
- > Map the Debris
Comments
Post a Comment