O'Reilly logo
live online training icon Live Online training

JavaScript Next Steps: Algorithms and Data Structures

Topic: Software Development
Azat Mardan

Working with JavaScript in the real world isn’t the same as passing a coding interview. Although JavaScript has OOP elements, it’s still a functional language (very different thinking than OOP). It also lacks some of the main data structures that are built into other languages like Java. If you’d like to better understand the data structures and algorithms necessary to take your JavaScript to the next level, this course is for you.

Expert Azat Mardan shows you how to tackle common data structures used in web development, use JavaScript to solve challenging problems, and improve the efficiency, performance, and scalability of your code, applications, and programs. You’ll learn how to build queues, stacks, linked lists, graphs, and trees and how to implement several different sorting algorithms, including bubble, insert, merge, and quicksort.

What you'll learn-and how you can apply it

By the end of this live online course, you’ll understand:

  • Some of the most useful computer science algorithms
  • How to reverse a tree, use BFS and DFS, and change from a tree to a flat structure and vice versa
  • Recursive functions
  • Big O complexity
  • How to optimize for space, memory, and run time
  • Common data structures, such as stacks, lists, maps, arrays, hashes, linked lists, graphs, and trees
  • Greedy algorithms
  • Classes and prototypal inheritance

And you’ll be able to:

  • Optimize code using the best algorithms
  • Write more efficient and performant code using algorithms
  • Improve your problem-solving skills and become a stronger developer
  • Tackle common data structures used in web development
  • Use JavaScript to solve challenging algorithms
  • Understand and evaluate algorithms for Big O notation/complexity
  • Implement the main algorithms and data structures in JavaScript and Node.js

This training course is for you because...

  • You’re a web developer who’s looking to improve the efficiency, performance, and scalability of your code, applications, and programs.
  • You work with JavaScript and want to level up your skills.
  • You want to improve your problem-solving abilities.

Prerequisites

  • Familiarity with JavaScript syntax and ECMAScript 2015–2020
  • A computer with a modern browser and your favorite code editor installed and the ability to access CodePen, JSFiddle, JS Bin, and GitHub gists

Recommended preparation:

Recommended follow-up:

About your instructor

  • Azat Mardan is a Software Engineering Director at Indeed (world’s #1 job site), visiting Computer Science professor at Innopolis University, Microsoft MVP, author of 18 books (and counting), author of best online and in-person courses on cloud, software engineering, JavaScript and Node.js

Schedule

The timeframes are only estimates and may vary according to how the class is progressing

Foundations (50 minutes)

  • Presentation and demos: Overview of Big O notation; the main computer science algorithms; data structures using diagrams and pseudo code; a problem-solving approach; memory versus CPU trade-offs; data structures—stack, list, map, array, hash, linked list, graphs, and trees
  • Q&A

Break (10 minutes)

Algorithms: Part 1 (55 minutes)

  • Presentation: Recursive functions; prototypal inheritance in JavaScript; pointer problems; sorting
  • Hands-on exercises: Solve a problem with recursion and with stack/array; implement inheritance; solve a pointer problem; solve a sorting problem
  • Q&A

Break (5 minutes)

Algorithms: Part 2 (55 minutes)

  • Presentation: Trees; graphs
  • Hands-on exercises: Solve a tree problem; solve a graph problem
  • Q&A

Break (5 minutes)

Advanced topics (50 minutes)

  • Presentation: Binary search; BFS traversal; DFS traversal; greedy algorithms
  • Hands-on exercises: Work with binary search; use BFS traversal; use DFS traversal; implement greedy algorithms

Wrap-up and Q&A (10 minutes)