We may earn an affiliate commission when you visit our partners.
Brad Traversy

Most of my students know me for my practical, project-based courses and tutorials. I wanted to create something to give you more fundamental skills for problem solving. That's where the idea for this challenges course came from. I want to take my down-to-earth explanations to help you get a better understanding of the code that you write and help you write more efficient code.

Read more

Most of my students know me for my practical, project-based courses and tutorials. I wanted to create something to give you more fundamental skills for problem solving. That's where the idea for this challenges course came from. I want to take my down-to-earth explanations to help you get a better understanding of the code that you write and help you write more efficient code.

This course is for all levels as long as you have a basic understanding of things like loops, functions, arrays, etc. We are writing JavaScript in this course, but about 95% of it can translate to any other language. So even if you are a Python, PHP or C# developer, you can still follow along.

Basic Challenges:

We start with a bunch of basic challenges that have to do with iteration and loops. Things like FizzBuzz and string reversals. These are very popular questions for entry-level interviews. We also move on to solving problems with high order array methods like filter and map.

Recursion:

Recursion is one of the toughest things to learn in programming. We have an entire section dedicated to it with challenges that we solve using recursion.

Time & Space Complexity:

We talk about how to measure an algorithm or function's efficiency by using time and space complexity to see how the runtime and memory scale when inscreasing the input.

Data Structures: Stacks, Queues, Trees, Linked Lists, Graphs, HashMaps

We go over all of the common data structures and create our own implementation of them using JavaScript classes, but like I said, you could use any language. We also learn how to traverse them and complete challenges using them.

Sorting Algorithms:

We get into different sorting algorithms like bubble sort, insertion, selection, merge and quick sort. These are popular topics for interviews.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • Explore 70+ coding challenges from beginner, intermediate and advanced levels
  • Ace coding interviews by learning how to solve problems with iteration, recursion, array methods & more
  • Master data structures like stacks, queues, linked lists, trees, maps and hash maps
  • Learn about sorting algorithms like bubble sort, insertion, merge and quick sort
  • Full sandbox with explanations and jest tests for every challenge
  • You do not have to take on the challenges alone. follow along and learn from the explanations

Syllabus

Introduction
Welcome To The Course
Course Structure
DSA - The What & Why
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Covers data structures and algorithms, which are fundamental for technical interviews and building efficient software, making it highly relevant for career advancement
Includes Jest tests for every challenge, which allows learners to assess their understanding and practice test-driven development, a valuable skill in the industry
Explores time and space complexity, which helps learners write performant code and make informed decisions about algorithm selection, a crucial aspect of software development
Teaches sorting algorithms like bubble sort, insertion, merge, and quick sort, which are frequently asked about in coding interviews and provide a solid foundation in algorithm design
Uses JavaScript classes to implement data structures, but the concepts can be applied to other languages like Python, PHP, or C#, making it accessible to a wider audience
Requires a basic understanding of loops, functions, and arrays, so learners without this foundation may need to acquire these skills before taking on the challenges

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Practical javascript dsa challenges

According to learners, this course is a highly practical and effective resource for mastering Data Structures and Algorithms using JavaScript. Many found the instructor's explanations clear and easy to follow, making complex topics accessible. The extensive collection of challenges is highlighted as a major strength, providing ample opportunity for hands-on practice. Students report that the course is particularly helpful for interview preparation, solidifying fundamental concepts and improving problem-solving skills. The included sandbox environment with Jest tests is also frequently praised for facilitating learning.
Recursion concepts are demystified.
"Recursion finally clicked for me after this course."
"The recursive challenges were tough but well explained."
"Helped me understand how recursion works step-by-step."
Accessible even with basic JS knowledge.
"As a beginner, I found it manageable with basic JS knowledge."
"Didn't need advanced knowledge to follow along, as advertised."
"Seems suitable for those just starting with DSA concepts."
Introduces important sorting methods.
"Appreciated the coverage of different sorting algorithms."
"The section on sorting was clear and practical."
"Learned about common algorithms often asked in interviews."
Interactive environment aids learning.
"The sandbox with built-in tests is super helpful for trying solutions."
"Liked having the Jest tests right there to verify my code."
"The coding environment made practicing the challenges easy."
Provides a strong base in data structures.
"Gained a solid understanding of core data structures like linked lists and trees."
"The sections on HashMaps and Trees were very informative."
"Helped build my foundational knowledge in DS and algorithms."
Problems are practical and reinforce learning.
"The challenges are great for cementing understanding of the concepts."
"Solving the challenges after learning the theory helps solidify it."
"The variety of challenges really helps you practice what you learn."
Instructor makes complex topics understandable.
"Instructor is very clear, makes complex concepts easy to grasp."
"His explanations are very easy to follow and he breaks down concepts nicely."
"Excellent course, the instructor explains things very well."
Strong preparation for coding interviews.
"This course is perfect for prepping for coding interviews."
"Learned exactly what I needed for job interview questions."
"Helped me feel more confident tackling interview problems."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in 70+ JavaScript Challenges: Data Structures & Algorithms with these activities:
Review Basic JavaScript Syntax
Solidify your understanding of fundamental JavaScript concepts like variables, data types, operators, and control flow to prepare for the course's coding challenges.
Show steps
  • Read through a JavaScript syntax guide.
  • Write small code snippets to practice each concept.
  • Complete online JavaScript tutorials.
Review 'Eloquent JavaScript'
Deepen your understanding of JavaScript fundamentals and advanced concepts by reading 'Eloquent JavaScript' to better prepare for the course's challenges.
Show steps
  • Read the chapters on data structures and algorithms.
  • Work through the exercises at the end of each chapter.
  • Take notes on key concepts and techniques.
LeetCode Easy Problems
Sharpen your problem-solving skills by practicing easy-level LeetCode problems to improve your ability to tackle the course's coding challenges.
Show steps
  • Solve 3-5 easy LeetCode problems each day.
  • Focus on problems related to arrays, strings, and loops.
  • Analyze the time and space complexity of your solutions.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Review 'Grokking Algorithms'
Enhance your understanding of algorithms and data structures with 'Grokking Algorithms', focusing on visual explanations to solidify your knowledge.
Show steps
  • Read chapters related to data structures and sorting.
  • Pay attention to the visual explanations and examples.
  • Try to implement the algorithms in JavaScript.
Implement a Basic Data Structure
Solidify your understanding of data structures by implementing a stack, queue, or linked list in JavaScript, reinforcing the concepts covered in the course.
Show steps
  • Choose a data structure to implement.
  • Write the code for the data structure's methods.
  • Write unit tests to ensure the data structure works correctly.
Create a Blog Post on Sorting Algorithms
Reinforce your knowledge of sorting algorithms by writing a blog post explaining different sorting algorithms and their time complexities.
Show steps
  • Choose 2-3 sorting algorithms to explain.
  • Write clear explanations of how each algorithm works.
  • Include diagrams or animations to illustrate the algorithms.
  • Publish the blog post on a platform like Medium or Dev.to.
Help Others in Online Forums
Solidify your understanding by helping other students in online forums, answering questions about JavaScript, data structures, and algorithms.
Show steps
  • Find online forums related to JavaScript and algorithms.
  • Answer questions from other students.
  • Explain concepts in a clear and concise way.

Career center

Learners who complete 70+ JavaScript Challenges: Data Structures & Algorithms will develop knowledge and skills that may be useful to these careers:
Software Engineer
A software engineer designs, develops, tests, and maintains software applications. This course helps build a foundation in data structures and algorithms, which are essential for efficient problem-solving in software development. The course includes practical challenges that mirror real-world coding scenarios, thereby preparing you for the day-to-day tasks. The emphasis on JavaScript allows you to apply the concepts immediately in web development projects. The sections on recursion and time/space complexity are also directly relevant to optimizing software performance. If you want to become a software engineer, this course is a great starting point.
Algorithm Developer
An algorithm developer designs and implements algorithms for various applications, such as search engines and AI systems. This course helps master fundamental algorithms and data structures, which are essential for algorithm design. The in-depth coverage of sorting algorithms, recursion, and time/space complexity provides a comprehensive understanding of algorithm efficiency. The course includes challenges that allow you to apply these concepts in practice. For anyone who aims to become an algorithm developer, this course is an excellent resource.
Full-Stack Developer
A full stack developer works on both the front-end and back-end of web applications. This course helps build a solid foundation in JavaScript, data structures, and algorithms, which are essential for both front-end and back-end development. The challenges covering array methods, string manipulation, and recursion directly apply to front-end tasks, while the sections on data structures and sorting algorithms are useful for back-end development. The course provides you with a versatile skill set to excel as a full stack developer.
Web Developer
A web developer specializes in building websites and web applications. This course helps build a foundation for front-end and back-end development, with a strong focus on JavaScript. The curriculum enhances problem-solving skills using data structures and algorithms. The numerous coding challenges, including those involving array methods and string manipulation, are directly applicable to web development tasks. The section on time and space complexity will enable you to write more efficient web applications. You will be well-equipped to tackle complex front-end challenges, making you a more effective web developer.
Backend Developer
A backend developer builds and maintains the server-side logic and databases that power web applications. This course helps build a strong foundation in data structures and algorithms, critical for designing efficient and scalable backend systems. The focus on topics like hash tables, linked lists, and sorting algorithms will enable you to optimize database queries and data processing operations. The course's emphasis on time and space complexity will allow you to write high-performance backend code. If you're considering a career as a backend developer, this course will benefit you.
Data Scientist
A data scientist analyzes large datasets to extract meaningful insights and inform business decisions. This course helps build a foundation in data structures and algorithms, which are crucial for efficient data manipulation and analysis. The emphasis on hash tables, maps, and sets will be valuable in data preprocessing and feature engineering. The course's focus on time and space complexity is directly relevant to optimizing data analysis pipelines. By mastering these fundamental concepts, you can become a more effective data scientist, so consider taking this course.
Mobile App Developer
A mobile app developer creates applications for smartphones and tablets. This course helps build a foundation in data structures and algorithms, which are valuable for optimizing mobile app performance. The focus on JavaScript will allow you to use frameworks such as React Native. Understanding of time and space complexity is relevant to ensuring smooth user experiences on mobile devices. If you are looking to become a mobile app developer, this course can help you.
Software Development Engineer in Test
A Software Development Engineer in Test designs and implements automated tests to ensure software quality. This course helps build a strong understanding of algorithms and data structures, important for writing effective test cases and identifying performance bottlenecks. The course uses Jest tests for every challenge. You can use this exposure to the Jest software to develop your own tests. The understanding of data structures and algorithms will help in writing test cases that cover various edge cases. This course is particularly helpful for those who want to become Software Development Engineers in Test.
Game Developer
A game developer designs and develops video games. This course helps build a foundation in data structures and algorithms, which are crucial for game logic, AI, and physics simulations. The course includes hands-on challenges that help you apply these concepts in practice. The emphasis on JavaScript can also be useful for creating web-based games or game development tools. If you want to become a game developer, this course may be a valuable starting point.
Data Analyst
A data analyst collects, processes, and analyzes data to identify trends and insights. This course helps build a foundation in data structures and algorithms, which are useful for data manipulation and analysis. The focus on high order array methods will be valuable in data processing. This course may be useful if you want to become a data analyst.
Machine Learning Engineer
A machine learning engineer develops and deploys machine learning models. This course may be useful in building a foundation in data structures and algorithms, which are crucial for implementing machine learning algorithms efficiently. The focus on topics like trees, graphs, and sorting algorithms will be beneficial in understanding and optimizing machine learning models. To become a machine learning engineer, this course may provide a beneficial introduction.
Technical Lead
A technical lead guides a team of developers and ensures project success through technical expertise. This course may be useful in reinforcing your understanding of data structures and algorithms, enabling you to provide better guidance and mentorship to your team. The comprehensive coverage of topics like recursion, time/space complexity, and data structures can help you make informed decisions about software architecture and performance optimization. For anyone looking to advance into a leadership role, this course may prove to be helpful.
Database Administrator
A database administrator manages and maintains databases, ensuring their availability, security, and performance. This course may be useful in understanding data structures like hash tables, trees, and linked lists, relevant to database indexing and query optimization. The section on sorting algorithms is helpful for optimizing database operations. This course helps establish a foundation for database management. To become a database administrator, it is helpful to become familiar with database fundamentals.
Security Engineer
A security engineer protects computer systems and networks from cyber threats. This course may be useful for understanding data structures and algorithms, especially in areas like cryptography and network security. The course's emphasis on data structures and algorithms can help you analyze and mitigate security vulnerabilities. This course may be useful for those who aspire to become security engineers.
Technical Consultant
A technical consultant advises clients on technology solutions to meet their business needs. This course may be useful in understanding data structures and algorithms, enabling you to recommend and implement efficient solutions. The broad coverage of topics like data structures, sorting algorithms, and time/space complexity can help you assess and optimize technology infrastructures. The course enhances foundational skills related to computer science. To become a technical consultant, this course may be useful.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in 70+ JavaScript Challenges: Data Structures & Algorithms.
Eloquent JavaScript comprehensive introduction to the JavaScript language, covering everything from basic syntax to advanced concepts like data structures and algorithms. It's a great resource for solidifying your JavaScript skills and understanding the language's nuances. While the course focuses on challenges, this book provides a broader context and deeper understanding of JavaScript, making it a valuable reference for any JavaScript developer. It can be used to supplement the course material and fill in any gaps in your JavaScript knowledge.
Grokking Algorithms visually engaging and easy-to-understand guide to algorithms. It covers essential algorithms like sorting, searching, graph algorithms, and data structures with clear explanations and illustrations. is excellent for beginners and those who prefer a visual learning style, making it a great companion to the course's practical challenges. It provides a solid foundation for understanding the time and space complexity concepts discussed in the course.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser