Web
Mobile
Postman
Algorithms and Data
Structures in JavaScript:
the Master's Path
Learn a skill that will increase your chances of successfully passing algorithmic interviews in international companies.
Start training
What you need to know
before starting the course
To successfully master the course material, you will need basic knowledge of programming in one of the following languages: Python, JavaScript, PHP or Java.
Don't worry if you're not
familiar with programming!
We have introductory courses to help you master the basics and prepare for training. We will explain everything from scratch - in an accessible way.
The course will help you learn
an in-demand skill and increase
your value in the job market.
Once you have mastered the effective use of algorithms and data structures, you will be able to:
Optimally structure data to solve specific problems
Solve more complex problems
Write code that will work faster and more efficiently
Successfully pass interviews in large companies
Course Program
.01Introduction
Step-by-step curriculum guide Join the community! In what order should I watch? How to run your code Module 2. Big O Notation
.02Big O Notation
Intro to Big O Our code time Counting Operations Visualizing Time Complexities Official Intro to Big O Simplifying Big O Expressions Big O Time Complexity Quiz Big O Time Complexity Quiz 2 Space Complexity Big O Space Complexity Quiz Logs and Section Recap
.03Performance Analysis of Arrays and Objects
PREREQUISITES Section Introduction The BIG O of Objects Object Operations Quiz When are Arrays Slow? Big O of Array Methods Array Operations Quiz
.04Problem Solving Approach
PREREQUISITES Introduction to Problem Solving Step 1: Understand The Problem Step 2: Concrete Examples Step 3: Break It Down Step 4: Solve Or Simplify Step 5: Look Back and Refactor Recap and Interview Strategies
.05Problem Solving Patterns
PREREQUISITES Intro to Problem Solving Patterns Frequency Counter Pattern Frequency Counter: Anagram Challenge Frequency Counter - validAnagram Anagram Challenge Solution Multiple Pointers Pattern Multiple Pointers: Count Unique Values Challenge Multiple Pointers - countUniqueValues Count Unique Values Solution Sliding Window Pattern Divide And Conquer Pattern
.06100% Optional challenge
IMPORTANT NOTE! Frequency Counter - sameFrequency Frequency Counter / Multiple Pointers - areThereDuplicates Frequency Counter - constructNote Frequency Counter - findAllDuplicates SOLUTIONS PART 1 Multiple Pointers - averagePair Multiple Pointers - isSubsequence Frequency Counter / Multiple Pointer - findPair SOLUTIONS PART 2 Sliding Window - maxSubarraySum Sliding Window - minSubArrayLen Sliding Window - findLongestSubstring SOLUTIONS PART 3 Divide and Conquer - countZeroes Divide and Conquer - sortedFrequency Divide and Conquer - findRotatedIndex SOLUTIONS PART 4
.07Recursion
PREREQUISITES Story Time - Martin and the Dragon Why Use Recursion? The Call Stack Our First Recursive Function Recursion Quiz Our Second Recursive Function Writing Factorial Iteratively Writing Factorial Recursively Common Recursion Pitfalls Helper Method Recursion Pure Recursion
.08.Recursion Problem Set
START HERE! power factorial productOfArray recursiveRange fib SOLUTIONS FOR THIS SECTION
.09Bonus Challenging Recursion Problems
NOTE ON THIS SECTION reverse isPalindrome someRecursive flatten SOLUTIONS PART 1 capitalizeFirst nestedEvenSum capitalizeWords stringifyNumbers collectStrings SOLUTIONS PART 2
.10Searching Algorithms
PREREQUISITES Intro to Searching Intro to Linear Search Linear Search Exercise Linear Search Solution Linear Search BIG O Intro to Binary Search Binary Search PseudoCode Binary Search Exercise Binary Search Solution Binary Search BIG O Naive String Search Naive String Search Implementation
.11Bubble Sort
PREREQUISITES Introduction to Sorting Algorithms Built-In JavaScript Sorting Bubble Sort: Implementation Bubble Sort: Optimization Bubble Sort: BIG O Complexity Bubble Sort
.12Selection Sort
PREREQUISITES Selection Sort: Introduction Selection Sort: Implementation Selection Sort: Big O Complexity Selection Sort Module 13: Insertio
.13Insertion Sort
PREREQUISITES Insertion Sort: Introduction Insertion Sort: Implementation Insertion Sort: BIG O Complexity Insertion Sort
.14Comparison
Comparing Bubble, Selection, and Insertion Sort
.15Go to de Party
PREREQUISITES Intro to the "Crazier" Sorts Merge Sort: Introduction Merging Arrays Intro Merging Arrays: Implementation Writing Merge Sort Part 1 Writing Merge Sort Part 2 Merge Sort BIG O Complexity Sorting Exercise - merge helper Go to the party
.16Quick Sort
PREREQUISITES Introduction to Quick Sort Pivot Helper Introduction Pivot Helper Implementation Quick Sort Implementation Quick Sort Call Stack Walkthrough Quick Sort Big O Complexity Sorting Exercise - pivot helper Quick Sort
.17Radix Sort
PREREQUISITES Radix Sort: Introduction Radix Sort: Helper Methods Radix Sort: Pseudocode Radix Sort: Implementation Radix Sort: BIG O Complexity Radix Sort Helper - getDigit Radix Sort Helper - digitCount Radix Sort Helper - mostDigits Radix Sort
.18Data Structures Introduction
Which Data Structure Is The Best? ES2015 Class Syntax Overview Data Structures: The Class Keyword Data Structures: Adding Instance Methods Data Structures: Adding Class Methods
.19Singly Linked Lists Mastery
PREREQUISITES Intro to Singly Linked Lists Starter Code and Push Intro Singly Linked List: Push Solution Singly Linked List: Pop Intro Singly Linked List: Pop Solution Singly Linked List: Shift Intro Singly Linked List: Shift Solution Singly Linked List: Unshift Intro Singly Linked List: Unshift Solution Singly Linked List: Get Intro Singly Linked List: Get Solution Singly Linked List: Set Intro Singly Linked List: Set Solution Singly Linked List: Insert Intro Singly Linked List: Insert Solution Singly Linked List: Remove Intro Singly Linked List: Remove Solution Singly Linked List: Reverse Intro Singly Linked List: Reverse Solution Singly Linked List: BIG O Complexity SLL - push Exercise SLL - pop exercise SLL - get Exercise SLL - set Exercise SLL - insert Exercise SLL - remove Exercise Extra Challenge: SLL - rotate Exercise
.20Doubly Linked Lists
PREREQUISITES Doubly Linked Lists Introduction Setting Up Our Node Class Push Push Solution Pop Pop Solution Shift Shift Solution Unshift Unshift Solution Get Get Solution Set Set Solution Insert Insert Solution Remove Remove Solution Comparing Singly and Doubly Linked Lists DLL push - Exercise DLL pop - Exercise DLL shift - Exercise DLL unshift - Exercise DLL get - Exercise DLL set - Exercise DLL insert - Exercise DLL remove - Exercise Extra Challenge: DLL reverse - Exercise
.21Stacks + Queues
PREREQUISITES Intro to Stacks Creating a Stack with an Array Writing Our Own Stack From Scratch BIG O of Stacks Intro to Queues Creating Queues Using Arrays Writing Our Own Queue From Scratch BIG O of Queues Stacks - push Exercise Stacks - pop Exercise Queues - enqueue Exercise Queues - dequeue Exercise Stack with 2 Queues - Exercise
.22Binary Search Trees
PREREQUISITES Introduction to Trees Uses For Trees Intro to Binary Trees POP QUIZ! Searching A Binary Search Tree Our Tree Classes BST: Insert BST: Insert Solution BST: Find BST: Find Solution Big O of Binary Search Trees Binary Search Tree - insert Exercise Binary Search Tree - find Exercise Extra Challenge: Binary Search Tree - remove Exercise Extra Challenge: Binary Search Tree - findSecondLargest Exercise Extra Challenge: Binary Search Tree - isBalanced Exercise
.23Three Traversal
PREREQUISITES Intro To Tree Traversal Breadth First Search Intro Breadth First Search Solution Depth First PreOrder Intro Depth First PreOrder Solution Depth First PostOrder Intro Depth First PostOrder Solution Depth First InOrder Intro Depth First InOrder Solution When to Use BFS and DFS Binary Search Tree - BFS Exercise Binary Search Tree - DFS Exercise
.24Binary Heaps
PREREQUISITES Intro to Heaps Storing Heaps Heap: Insert Intro Heap: Insert Solution Heap: ExtractMax Intro Heap: ExtractMax Solution Priority Queue Intro Priority Queue Pseudocode Priority Queue Solution BIG O of Binary Heaps BinaryHeap - insert Exercise BinaryHeap - extractMax Exercise
.25Hash Tables
PREREQUISITES Intro to Hash Tables More About Hash Tables Intro to Hash Functions Writing Our First Hash Function Improving Our Hash Function Handling Collisions Hash Table Set and Get Hash Table Set Solution Hash Table Get Solution Hash Table Keys and Values Hash Table Keys and Values Solution Hash Table Big O Complexity
.26Graphs
PREREQUISITES Intro to Graphs Uses for Graphs Types of Graphs Storing Graphs: Adjacency Matrix Storing Graphs: Adjacency List Adjacency Matrix Vs. List BIG O Add Vertex Intro Add Vertex Solution Add Edge Intro Add Edge Solution Remove Edge Intro Remove Edge Solution Remove Vertex Intro Remove Vertex Solution Graphs Exercise - addVertex Graphs Exercise - addEdge Graphs Exercise - removeEdge Graphs Exercise - removeVertex
.27Graph Traversal
PREREQUISITES Intro to Graph Traversal Depth First Graph Traversal DFS Recursive Intro DFS Recursive Solution DFS Iterative Intro DFS Iterative Solution Breadth First Graph Traversal BFS Intro BFS Solution Graphs - DFS Exercise Graphs - BFS Exercise
.28Dijkstra's Algorithm!
PREREQUISITES Intro to Dijkstra's and Prerequisites Who was Dijkstra and what is his Algorithm? Writing a Weighted Graph Walking through the Algorithm Introducing Our Simple Priority Queue Dijkstra's Pseudo-Code Implementing Dijkstra's Algorithm Upgrading the Priority Queue Graphs - Dijkstra Exercise
.29Dynamic Programming
Intro to Dynamic Programming Overlapping Subproblems Optimal Substructure Writing A Recursive Solution Time Complexity of Our Solution The Problem With Our Solution Enter Memoization! Time Complexity of Memoized Solution Tabulation: A Bottom Up Approach Coin Change - Greedy Algorithm Dynamic Programming - Coin Change
You won't study alone!
We understand how difficult it can be to stay motivated when studying online. That's why we created a chat where every student can get support and find valuable contacts among other developers.
How will you study?
Comfortable training
A convenient text format and live examples make it easy to study theory and master the material step by step, even from your phone.
Convenient format
Online learning allows you to study from anywhere in the world at any time of the day, providing flexibility and comfort for your schedule.
Experienced curators
Our curators are professionals with extensive experience who are ready to share their knowledge.
Practice
Practical tasks await you that will help you consolidate your acquired knowledge and skills.
Preparing for the interview
A convenient text format and live examples make it easy to study theThe course includes preparation for important interview questions.ory and master the material step by step, even from your phone.
You will definitely succeed.
Throughout your training, you will have the support of experienced tutors who will point out mistakes, provide support and answer questions.
Alexei Smirnov
course author
Expert in frontend development and UX/UI design Lecturer at Moscow State University More than 10 years of experience in creating user interfaces
Dmitriy Iviev
course author
Consultant on DevOps and cloud technologies Lecturer at system administration courses 7 years of experience in automating development and deployment processes
Maria Shulman
curator
Backend development specialist in Python and Node.js Mentor in educational projects for novice developers 8 years of experience in development of highly loaded systems
Ekaterina Sidorskaya
curator
Lecturer at an online university 6 years of experience in database design and optimization
Sergey Kovalev
curator
Specialist in mobile development on iOS and Android Mentor in startup incubators 9 years of experience in creating mobile applications and games
To developers from developers
Made for developers who value their time.

On the course you will receive:



Methodology
You will get a clear idea of where and how to apply the acquired skills.
Program
You can easily master the material even if you have no prior knowledge.
Content
No unnecessary information - only necessary knowledge tested in practice.
Community
Provide support in answering questions and help deepen your knowledge.
Choose a favorable plan and start your journey in the IT world
Initial
Familiarize yourself with the course, its materials and make a decision about further training
$50.00
Introduction to the course - 2 modules Training materials No feedback Access - Open No certificate
Beginner Plus
Self-study of material without feedback
$125.00
Curriculum - 27 modules Training materials Practical assignments Access to the course - 3 months No feedback No certificate
Advanced
Training materials + Mentor support + Certificate
$300.00
Curriculum - 27 modules +module “Dijkstra's Algorithm” +module “Dynamic Programming” Downloadable resources Practical Assignments Chat for students Feedback from tutors Access to the course - 6 months Certificate
Premium
Mentoring support throughout the course + additional classes
$550.00
Curriculum - 27 modules +module “Dijkstra's Algorithm” +Dynamic Programming module Downloadable Resources Developing a resume Tutorials Practical assignments Communication between students and supervisors Mentor support Access to the course - 12 months Certificate
Corporate
Ability to train employees in alignment with company goals, providing access to specialized materials and support.
$700.00
Groups of 5 to 10 people Training program - 27 modules +“Dijkstra's Algorithm” module +Dynamic Programming module Educational materials Downloadable Resources Developing a resume Tutorials Practical assignments Communication between students and supervisors Mentor support Access to the course - 12 months Certificate
Certificate
After the training, you will be able to receive a certificate confirming your qualifications.
99% of our graduates are satisfied with the course
Thomas
This course is just great! It covers all the key aspects that are needed to not only succeed in interviews, but also to meet the real challenges of the job. The classes are thought-provoking and productive, and the learning process is fun.
Max
I like it because he explains each concept in a different way, which makes it easier to understand. The exercises in the sections are definitely a great way to test what you have learned. Very good course, I highly recommend it.
Peter
It was a great experience learning all the algorithms and data structures. Some solutions can be optimized, but there is a question and answer section where people gave great solutions to supplement. I really enjoyed this course. It makes everything less scary and dense, but still remains informative!!! Thank you so much!!!
Alexa
I really enjoyed this course! It gives a clear idea of what you need to know to be successful in development. The classes are interesting and thought-provoking, and the learning atmosphere is very friendly. I would gladly recommend it to anyone who wants to develop in this field
Herman
This course is a godsend! It covers all the important aspects that will help you not only in interviews but also in real work. The classes are engaging and force you to think critically. I got a lot of useful information and enjoyed every moment of the training.
We guarantee a full refund if the course
does not meet your expectations.
You can request a refund at any time. During the first three sessions we will refund the full amount, and from the fourth session onwards we will offer to calculate a refund or help you find an alternative course.
Why choose our course?
Experience
For 5 years, we have been building connections with the commercial development industry, training aspiring professionals and watching them become highly skilled professionals.
Research
Before launching a course, we thoroughly analyze the market to ensure it provides relevant and in-demand professional skills.
Methodology
We actively engage with the web development community, which gives us a better understanding of how to teach effectively. We aim to minimize the time it takes to go from theoretical knowledge to practical solutions to standard tasks.
You often ask
What does “Algorithms and Data Structures in JavaScript:
the Master's Path” include and what is its significance?
The course will introduce you to key algorithms and structures such as arrays, lists, trees, and graphs. This knowledge will allow you to improve your programming skills, optimize your code, and become a sought-after development professional. The course is designed for those who want to gain a deeper understanding of data structures, learn how to create efficient code, and succeed in technical interviews. The training is delivered in an online format, which gives you the opportunity to plan your own time.
How will the course help with an IT career?
The course provides the practical skills needed for a successful career as a developer. You will master the application of algorithms and data structures in real projects, learn to write optimized code and solve complex problems. For programmers looking to find their first job or advance their career, knowledge of algorithms and data structures is an important competitive advantage. The training includes real-world examples, making you a more attractive candidate in the job market.
Why choose this course on algorithms and data structures?
Our course combines theoretical knowledge and practical skills to give you a deeper understanding of algorithms and programming structures. It is suitable for both beginners and experienced developers who want to improve their competencies. The training includes a sequential study of data structures and algorithms. All classes are conducted in an online format, which gives you the opportunity to learn at your convenience. The knowledge gained will help you start working on projects with confidence and efficiency.
What can be learned in a course for experienced developers?
Even for those who are already experienced, our courses offer valuable insights. We take an in-depth look at complex data structures and their use for code optimization. Classes will help you improve your programming skills, improve the quality of your code architecture, and gain a deeper understanding of how algorithms work. The course will not only strengthen your existing skills, but also prepare you for the next stage in your career.
How long does it take to study?
You can study at your own pace as there is no time limit. We recommend allocating 5-10 hours per week. This will ensure that you study intensively enough so that you don't have to study too long, while at the same time allowing you to comfortably combine your studies with work and leisure.