We may earn an affiliate commission when you visit our partners.
Course image
Colt Steele

Updated in November 2018 with brand new section on Dynamic Programming.

Read more

Updated in November 2018 with brand new section on Dynamic Programming.

This course crams months of computer science and interview prep material into 20 hours of video. The content is based directly on last semester of my in-person coding bootcamps, where my students go on to land 6-figure developer jobs. I cover the exact same computer science content that has helped my students ace interviews at huge companies like Google, Tesla, Amazon, and Facebook. Nothing is watered down for an online audience; this is the real deal :) We start with the basics and then eventually cover “advanced topics” that similar courses shy away from like Heaps, Graphs, and Dijkstra’s Shortest Path Algorithm.

I start by teaching you how to analyze your code’s time and space complexity using Big O notation. We cover the ins and outs of Recursion. We learn a 5-step approach to solving any difficult coding problem. We cover common programming patterns. We implement popular searching algorithms. We write 6 different sorting algorithms: Bubble, Selection, Insertion, Quick, Merge, and Radix Sort. Then, we switch gears and implement our own data structures from scratch, including linked lists, trees, heaps, hash tables, and graphs. We learn to traverse trees and graphs, and cover Dijkstra's Shortest Path Algorithm. The course also includes an entire section devoted to Dynamic Programming.

Here's why this course is worth your time:

  • It's interactive - I give you a chance to try every problem before I show you my solution.

  • Every single problem has a complete solution walkthrough video as well as accompanying solution file.

  • I cover helpful "tips and tricks" to solve common problems, but we also focus on building an approach to ANY problem.

  • It's full of animations and beautiful diagrams.

Are you looking to level-up your developer skills? Sign up today.

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

  • Learn everything you need to ace difficult coding interviews
  • Master dozens of popular algorithms, including 6 sorting algorithms!
  • Implement 10+ data structures from scratch
  • Improve your problem solving skills and become a stronger developer

Syllabus

Introduction
Curriculum Walkthrough
Join The Community!
What Order Should You Watch In?
Read more
How I'm Running My Code
Big O Notation
Intro to Big O
Timing Our Code
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
Analyzing Performance 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
Problem Solving Approach
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
Problem Solving Patterns
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
100% OPTIONAL Challenges
IMPORTANT NOTE!
Frequency Counter - sameFrequency
Frequency Counter / Multiple Pointers - areThereDuplicates
SOLUTIONS PART 1
Multiple Pointers - averagePair
Multiple Pointers - isSubsequence
SOLUTIONS PART 2
Sliding Window - maxSubarraySum
Sliding Window - minSubArrayLen
Sliding Window - findLongestSubstring
SOLUTIONS PART 3
Recursion
Story Time: Martin & 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
Recursion Problem Set
START HERE!
power
factorial
productOfArray
recursiveRange
fib
SOLUTIONS FOR THIS SECTION
Bonus CHALLENGING Recursion Problems
NOTE ON THIS SECTION
reverse
isPalindrome
someRecursive
flatten
capitalizeFirst
nestedEvenSum
capitalizeWords
stringifyNumbers
collectStrings
Searching Algorithms
Intro to Searching
Intro to Linear Search
Linear Search Exercise
Linear Search Solution
Linear Search BIG O

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Covers the most crucial aspects, offering a great introduction to interviews
Offers comprehensive coverage of fundamental data structures and algorithms, including the 'Big O' concept, making it a great foundation builder
Taught by Colt Steele, renowned for his successful bootcamps, providing learners with access to expert knowledge and insights
Designed for aspiring developers or those seeking to advance their career in software engineering
In-depth coverage of key advanced topics like Dynamic Programming and Graph Theory, suitable for learners seeking a deeper understanding
Interactive approach with ample practice opportunities through the provision of solution walkthrough videos and solution files

Save this course

Save JavaScript Algorithms and Data Structures Masterclass to your list so you can find it easily later:
Save

Reviews summary

Engaging but distracting

Students say that this course is engaging and educational with difficult exams but they also report that the instructor often distracts from the material with random comments. Overall, feedback on this course is largely positive.
Instructor frequently goes off-topic.
"It was a good course but the instructor continuously interjects random comments, wasting time and distracting from the point he is trying to make."
Exams are challenging.
"It was a good course but the instructor continuously interjects random comments, wasting time and distracting from the point he is trying to make. I find this very distracting. Otherwise a great course and I learned a lot."

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 JavaScript Algorithms and Data Structures Masterclass with these activities:
Attend meetups and conferences related to computer science
Attending meetups and conferences will allow you to connect with other professionals in the field and learn about the latest trends.
Show steps
  • Find meetups and conferences related to computer science.
  • Attend the events and introduce yourself to other attendees.
  • Participate in discussions and ask questions.
  • Exchange contact information with other professionals.
Solve LeetCode problems tagged for this course
Practicing LeetCode problems will reinforce your understanding of the algorithms and data structures covered in this course.
Browse courses on Sorting Algorithms
Show steps
  • Find problems tagged for this course on LeetCode.
  • Attempt to solve the problem on your own.
  • Review the optimal solution provided by LeetCode.
  • Implement the optimal solution in your own code.
  • Test your solution against the LeetCode test cases.
Write a blog post summarizing a key concept
Writing a blog post will help you solidify your understanding of a key concept and share your knowledge with others.
Browse courses on Algorithm Design
Show steps
  • Choose a key concept from the course.
  • Research the concept and gather information.
  • Write a blog post that explains the concept clearly.
  • Publish your blog post and share it with others.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Watch tutorials on advanced algorithm topics
Watching tutorials on advanced algorithm topics will supplement the material covered in this course and deepen your understanding of these concepts.
Browse courses on Dynamic programming
Show steps
  • Identify areas where you need additional support.
  • Find tutorials on those topics from reputable sources.
  • Watch the tutorials and take notes.
  • Practice implementing the algorithms discussed in the tutorials.
Attend a workshop on advanced algorithm techniques
Attending a workshop on advanced algorithm techniques will provide you with hands-on experience and help you learn from experts in the field.
Show steps
  • Find a workshop that covers advanced algorithm techniques.
  • Register for the workshop and attend all sessions.
  • Participate in the hands-on exercises and ask questions.
  • Network with other attendees and learn from their experiences.
Participate in coding competitions
Participating in coding competitions will test your skills and knowledge, and help you develop your problem-solving abilities.
Show steps
  • Find coding competitions that are relevant to your interests.
  • Practice solving coding problems on your own.
  • Participate in coding competitions and try your best.
  • Review your performance and identify areas for improvement.
Mentor a junior developer
Mentoring a junior developer will reinforce your understanding of the course material and help you develop your leadership skills.
Show steps
  • Find a junior developer to mentor.
  • Meet with your mentee regularly to discuss their progress.
  • Provide guidance and support on technical and career-related topics.
  • Help your mentee develop a strong foundation in computer science.

Career center

Learners who complete JavaScript Algorithms and Data Structures Masterclass will develop knowledge and skills that may be useful to these careers:
Software Engineer
This course will provide you with the necessary skills to ace coding interviews and become a Software Engineer. You will learn about data structures and algorithms, as well as how to solve common coding problems. These skills are essential for success in this role, and this course will help you build a strong foundation.
Data Scientist
This course will help you build the skills you need to become a Data Scientist. You will learn about data structures and algorithms, as well as how to solve common coding problems. These skills are essential for success in this role, and this course will help you build a strong foundation.
Web Developer
This course will provide you with the skills you need to become a Web Developer. You will learn about data structures and algorithms, as well as how to solve common coding problems. These skills are essential for success in this role, and this course will help you build a strong foundation.
Mobile Developer
This course will help you build the skills you need to become a Mobile Developer. You will learn about data structures and algorithms, as well as how to solve common coding problems. These skills are essential for success in this role, and this course will help you build a strong foundation.
Game Developer
This course will provide you with the skills you need to become a Game Developer. You will learn about data structures and algorithms, as well as how to solve common coding problems. These skills are essential for success in this role, and this course will help you build a strong foundation.
Computer Scientist
This course may be useful for those interested in a career as a Computer Scientist. You will learn about data structures and algorithms, as well as how to solve common coding problems. These skills are essential for success in this role, and this course will help you build a strong foundation.
Information Security Analyst
This course may be useful for those interested in a career as an Information Security Analyst. You will learn about data structures and algorithms, as well as how to solve common coding problems. These skills are essential for success in this role, and this course will help you build a strong foundation.
Data Analyst
This course may be useful for those interested in a career as a Data Analyst. You will learn about data structures and algorithms, as well as how to solve common coding problems. These skills are essential for success in this role, and this course will help you build a strong foundation.
Database Administrator
This course may be useful for those interested in a career as a Database Administrator. You will learn about data structures and algorithms, as well as how to solve common coding problems. These skills are essential for success in this role, and this course will help you build a strong foundation.
Business Analyst
This course may be useful for those interested in a career as a Business Analyst. You will learn about data structures and algorithms, as well as how to solve common coding problems. These skills are not essential for success in this role, but they may be helpful.
Project Manager
This course may be useful for those interested in a career as a Project Manager. You will learn about data structures and algorithms, as well as how to solve common coding problems. These skills are not essential for success in this role, but they may be helpful.
Product Manager
This course may be useful for those interested in a career as a Product Manager. You will learn about data structures and algorithms, as well as how to solve common coding problems. These skills are not essential for success in this role, but they may be helpful.
Technical Writer
This course may be useful for those interested in a career as a Technical Writer. You will learn about data structures and algorithms, as well as how to solve common coding problems. These skills are not essential for success in this role, but they may be helpful for understanding the technical aspects of software development.
Sales Engineer
This course may be useful for those interested in a career as a Sales Engineer. You will learn about data structures and algorithms, as well as how to solve common coding problems. These skills are not essential for success in this role, but they may be helpful for understanding the technical aspects of software development.
Recruiter
This course is unlikely to be useful for those interested in a career as a Recruiter. You will learn about data structures and algorithms, as well as how to solve common coding problems. These skills are not essential for success in this role.

Reading list

We've selected 17 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 JavaScript Algorithms and Data Structures Masterclass.
Is another classic textbook on algorithms and data structures. It is more comprehensive than Algorithms, and valuable reference for anyone who wants to learn more about the field.
Classic textbook on algorithms and data structures. It provides a comprehensive overview of the field, and valuable reference for anyone who wants to learn more about algorithms.
Textbook on data structures and algorithms in Java. It valuable resource for anyone who wants to learn more about data structures and algorithms in Java.
Textbook on data structures and algorithms in Python. It valuable resource for anyone who wants to learn more about data structures and algorithms in Python.
Guide to the good parts of JavaScript. It valuable resource for anyone who wants to learn more about JavaScript.
Comprehensive guide to JavaScript. It valuable resource for anyone who wants to learn more about JavaScript.
Beginner's guide to Java. It valuable resource for anyone who wants to learn more about Java.
Guide to writing clean code. It valuable resource for anyone who wants to learn more about writing clean code.
Classic book on software development. It valuable resource for anyone who wants to learn more about software development.
Classic book on design patterns. It valuable resource for anyone who wants to learn more about design patterns.
Classic book on test-driven development. It valuable resource for anyone who wants to learn more about test-driven development.
Classic book on domain-driven design. It valuable resource for anyone who wants to learn more about domain-driven design.

Share

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

Similar courses

Here are nine courses similar to JavaScript Algorithms and Data Structures Masterclass.
Graph Theory Algorithms
Most relevant
Introduction to Deep Learning
Most relevant
I/O-efficient algorithms
Most relevant
50 days of LeetCode in python: Algorithms coding interview
Computer Science 101: Master the Theory Behind Programming
Mathematics for Computer Science
Blind 75 LeetCode Questions: Ace Algorithms Coding...
11 Essential Coding Interview Questions + Coding...
Data Structures and Algorithms in Python
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 - 2024 OpenCourser