We may earn an affiliate commission when you visit our partners.
Course image
Jonathan Rasmusson

This course is about getting you up-to-speed quickly on the fundamental computer science concepts you are going to be expected to know if you want interview at any large Silicon Valley tech company (Google, Apple, Facebook, Amazon, or Spotify).

Read more

This course is about getting you up-to-speed quickly on the fundamental computer science concepts you are going to be expected to know if you want interview at any large Silicon Valley tech company (Google, Apple, Facebook, Amazon, or Spotify).

Topics include

  • Arrays

  • Linked Lists

  • Big O notation

  • Stacks & Queues

  • Hash Tables

  • Binary Trees

  • Binary Heaps

  • Dynamic Programming & Memoization

  • Bubble Sort / Merge Sort / Quick Sort

  • Graphs

  • Breadth First Search

  • Depth First Search

  • More...

What you get

With this course you get

  • Over 115 beautifully hand crafted HD videos walking you through every aspect of how all these data structures and algorithms work

  • Practices questions and personal walkthroughs of the most commonly asked interview questions

  • My personal notes on interviews I have personally had with Spotify, Facebook, Amazon, and others

  • A section called The Classics where we walk through classic interview questions no interviewee should be with out

  • Interview tips on soft skills big tech companies look for when hiring and techniques on how to answer

What you save

By investing in yourself with this course you are saving yourself the most precious thing you’ve got - time. I have spent a year scouring the web looking for the best examples, the simplest explanations, the best visualizations on how to explain how this stuff works, and assembled it all into one, quick, easy to digest place.

Let's do this together

Learning data structures and algorithms doesn’t have to be a chore. It can be fun. And I want you to know I am here for you every step of the way. Ask me any question. I usually get back to my students with 24 hrs. And together, we will get you the understanding behind how these things work.

I also don’t have a formal computer science background

Look. I know what it’s like not to know how this stuff works. And, like you, I have had to learn this stuff from scratch.

But I am here to tell you it can be done. I have no formal computer science background. I am not classically trained as a computer scientist. But by learning this material, I landed my dream job as an engineer at Spotify in San Francisco. And so can you.

So what are you waiting for? Sign up and get started on your journey today.

Testimonials

Here are some testimonials from students who have taken the course.

Tiffany Scott

Best $10 I've ever spent. The explanations are concise and are giving me confidence for my upcoming Microsoft and Facebook interviews. Planning on finishing the course in 4 days to give me ample time to practice problems.

Saif Addin Ellafi

Really, this will sound like exaggeration. But this course is perfect, 5 stars falls short. The instructor puts the content in a an easy to follow order, videos are short to keep attention and leave you wanting to know more. Concise and important points are made very clear, with zero repetition. Native speaker offers no challenge for understanding, especially if you are not a native speaker. Answers questions very quickly. The course WONT teach you how to program, so forget about 100% coding from scratch or having pedagogical exercises. It relies on you to check out the code, re-write it, practice and research deeper the concepts. Examples are written in Java, but they are very agnostic to the language (aside of having to setup a java environment to run tests). Huge focus on acing interviews. A clear target of the course makes it great and an example. Time and pacing are perfect, no need to slow down or speed up. Overall 10 out of 5.

Anna Teittinen

I completed this course in my busy schedule within 3 weeks of learning I will have technical phone interviews with both Google and Facebook. I learned so much and understood everything without memorizing, unlike when I was in school. I recently learned I did well on both phone interviews. I will have a second technical phone interview with both companies again in mid Jan. I highly recommend this course. Thank you very much Jonathan.

Rick A

I took your course in the very beginning of my interview prep to refresh all my concepts. I think you've done a great job in this course. After a lot of practice using these concepts I got pretty good at it. I got multiple offers from big N including Google, Facebook, Amazon and Microsoft. I would like to take this moment to thank you for creating the course and being available to answer our queries.

Luciano Sa

Amazing course. Very well explained, great didactic which makes it very easy to follow and understand. I wish these stars were exponential. :)

Kavitha Bhasker

I am really thankful I found this course on Udemy. It has been 15 years since I learnt these concepts during my engineering college days and needed to brush up on them for interview prep. This course really nailed the contents and exercise that are asked in tech interviews these days. The tone of the instructor is very friendly and calm and make you think rather than put you in a spot. I was asked for a interview query on whether to use an array vs hashmap in a certain scenario and was able to nail the answer and also give the Time complexity with confidence . I landed the job and will be starting next week. Thank you so much.

Eyal Carmi

Great. I like the that Jonathan filters what we actually need for an interview - instead of being flood with lot's of data, he notes you what worth remembering. His explanations are clear, and if you don't understand something, just ask him and he explains it to you.

Flavio Marques Migowski Carvalho

One of the best course I've had. It's very well explained, each step in the coding is shown and explained with drawings. I think some design and architecture problems would be very handy. Thank you for making this course for us.

Abhishek Sengupta

I think this is the best course on DSA I have ever seen. The reason i am saying this is because in previous courses I used to understand a write the code but soon after a day or so it was like 'what was that?' , but here every topic even after learning many other topics I can recall and code it. And I feel the reason for strong foundation is how Jonathon approaches and teaches the topic. In such a less duration he was able to solidify the concepts from scratch. Jonathan Please do more courses on algorithms or Blind 75 topics. It will help engineers crack the interview easily after learning from you.

Madhu

I love the course overall. Very engaging. The Instructor, Jonathan is a great mentor and has this calm and assuring voice that puts the confidence in anyone who does not have programming experience before. He not only covered the technical aspects of almost all the important algorithms but also added a great ending with the interviewing tips which is really helpful. I would recommend this course to everyone who want to brush up on algorithms and just be ready enough to start with their interview.

Juwan Turner-Howard

I can program. I thought I "knew" about arrays, but this helping me to know the why which can allow me to make better tradeoffs when it's time to choose between linkedlist(probably O(n) get and set time) versus the O(1) array get and set time. If the rest of the course is consistent with the style and value of information in this first module... whew... I'm in for a good ride. So happy and excited about this course thus far though.

Aung Khant Nyra

I would say Jonathan has done a great job of showing you how to prepare for interview problems by giving you a touch of basic data structures and a bird's eye view of the a typical interview. I am in the bay area and personally for me, this course is pretty basic and I am preparing for interviews myself, so this course was helpful for me although it didn't include advanced topics like dynamic programming and so on. Of course, there are countless interview practice problems online so I understand, it's impossible for him to cover everything. Anyways, I love the course . It is better to learn from a professional who is in the field instead of learning from a professor or a lecturer.

Ramachandran Rajagopalan

Good course to wrap your head around DSA if you are a beginner. For others who have a got a week's time for the interview and need a refresher then grab this. Thanks, Jonathan. Good work.

Enroll now

What's inside

Learning objectives

  • How to answer commonly asked silicon valley style interview questions
  • Demonstrate knowledge and mastery of data structures and algorithms
  • How to pass silicon valley style technical interviews
  • Interview confidently
  • Land your dream job

Syllabus

Welcome
How to get the most out of this course

https://github.com/rasmus4200/algorithms101

Link to Github Repo
Read more

Help setting up your local development environment.

Answer commonly asked interview questions using arrays
What's so special about Arrays?
Data Structures vs APIs
Three things you need to know about Arrays
The Array's Killer Feature
How to insert into an Array
How to delete an Array element
Deleting the Last Element
How to resize Arrays dynamically
Lab: Let's build a Dynamic Array from scratch
What about error handling?
What you need to know for the interview
Build your own linked list
What is a Linked List?
What makes a Linked List different from an Array?
Add Front
Get First / Get Last
Add back
Size
Clear
Delete With Value
Double Linked Lists
Super Common Interview Question
Determine the runtime complexity of an algorithm
What is Big O Notation?
Must know Big O runtimes
The Big O Cheat Sheet
Lab: Testing ourselves on our Big O Notation
Learn how to create your own stack and queue from scratch
What are Stacks and Queues?
What is the Stack and Queue killer feature?
How to push and pop onto a Stack
How to add and remove from a Queue
Visualizing adding to a Queue
Runtime characteristics of Stacks and Queues
Hash Tables
What so great about Hash Tables?
How does hashing work?
How do you convert a hash into its index?
Beep beep! How to deal with collisions
Runtime characteristics of Hash Tables
Lab: How to build a Hash Table from scratch
Code up their own binary search tree and do super fast finds
What is a Binary Tree?
How does find work?
How do you insert into a Binary Search Tree?
How do you find the minimum in a Binary Search Tree?
How does delete work in a Binary Search Tree?
Links that help
What are some different ways you can traverse Binary Trees?
Runtime characteristic of Binary Search Tree
Explain to others how Binary Heaps work. Demonstrate how to code one up from scratch.
What are Binary Heaps and what are they good for?
How do Binary Heaps work?
How do you insert into a Binary Heap?
How do you extract the max?
Larger Nodes Near the Bottom
What makes the Binary Heap so amazing?
Lab: How to build a Binary Heap from scratch
Runtime characteristics of Binary Heap
Explain how Binary Search Trees stay balanced
What is an AVL Tree?
AVL Tree in code
AVL Delete
What you need to know about AVL for the interview
What is the Red-Black Tree?
AVL Red-Black Tree Interview Questions
What you need to know about Red-Black for your interview
Give real life example of how memoization works and how it can improve performance in an algorithm during an interview.
Houston we have a problem
What's a Fibonacci series?
What's memoization and how can it help?
Lab: How to build a memoized Fibonacci series from scratch
Lab: Real Life Recursion
Sort arrays three different ways and explain to interviewers the pros and cons of each
What is the Bubble Sort?
Bubble Sort in code
Runtime characteristic of Bubble Sort
What is Merge Sort?
Merge Sort in code
Runtime characteristic of Merge Sort
What is Quicksort?
Quicksort in code
Runtime characteristic of Quicksort
Code up their own graph data structures, answer commonly asked interview questions about graphs
What exactly are graphs?
What does the graph data structure look like?

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Delves into Big O notation, Binary Heaps, Bubble Sort/Merge Sort/Quick Sort, Graphs, Breadth First Search, Depth First Search, and Dynamic Programming, which are highly relevant to Silicon Valley style technical interviews
Taught by Jonathan Rasmusson, a recognized engineer at Spotify
Teaches learners how to answer technical coding interview questions in the style of large Silicon Valley companies such as Google, Apple, Facebook, Amazon, and Spotify
Builds learners' confidence for technical interviews
Advised by Spotify recruiters and hiring managers, and reviewed by a Google engineer
May need additional preparation materials to pass Silicon Valley style coding interviews

Save this course

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

Reviews summary

Content explorations

According to students, content is a popular highlight of this course. Learners say it is well-suited for their needs with all topics well-explained with code examples.
Well-explained topics with code examples.
"Liked the course content"
"All topics explained well with code"
"Exactly what I was looking for"

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 Data Structures and Algorithms Bootcamp with these activities:
Attend meetups or conferences related to DSA
Connect with professionals in the field, learn about industry trends, and expand your knowledge through discussions and presentations.
Browse courses on Networking
Show steps
  • Research and identify relevant meetups or conferences in your area.
  • Attend the events and actively participate in discussions.
  • Exchange ideas and insights with other attendees.
  • Follow up with interesting individuals you meet.
Read 'Cracking the Coding Interview'
Gain insights and strategies for successful technical interviews by studying a comprehensive guide written by an industry expert.
Show steps
  • Purchase a copy of 'Cracking the Coding Interview'.
  • Read through the chapters thoroughly, focusing on the problem-solving techniques and interview strategies.
  • Practice the problems presented in the book to reinforce your understanding.
  • Refer to the book for tips and advice on common interview questions and scenarios.
Practice DSA interview questions
Sharpen your problem-solving and algorithmic thinking by practicing common interview questions.
Browse courses on Interview Questions
Show steps
  • Identify a reputable online platform or book for DSA practice questions.
  • Set aside regular time for practice, aiming for at least 30 minutes per session.
  • Review the solutions to questions you find challenging and understand the reasoning behind them.
  • Time yourself to improve your speed and efficiency.
Three other activities
Expand to see all activities and additional details
Show all six activities
Create and share your own DSA tutorials
Solidify your understanding of DSA by explaining concepts and algorithms to others through written or video tutorials.
Show steps
  • Choose a specific DSA topic or algorithm that you want to cover.
  • Research and gather information from reliable sources.
  • Organize your content in a clear and logical manner, considering both beginners and experienced learners.
  • Create your tutorial using written text, diagrams, or video demonstrations.
  • Share your tutorial on online platforms or through social media.
Follow video tutorials on advanced algorithms
Gain a deeper understanding of advanced algorithms and their applications through guided instruction.
Browse courses on Algorithms
Show steps
  • Search for reputable online platforms or YouTube channels offering tutorials on advanced algorithms.
  • Choose tutorials that align with your interests and learning goals.
  • Follow along with the tutorials, taking notes and implementing the algorithms in your own code.
  • Apply the algorithms to solve real-world problems or challenge yourself with algorithmic puzzles.
Build a personal project showcasing your DSA skills
Demonstrate your mastery of DSA by creating a project that solves a real-world problem or showcases your creativity.
Browse courses on Software Development
Show steps
  • Identify a problem or idea that you can solve using DSA.
  • Design and implement the algorithms and data structures for your project.
  • Optimize your code for efficiency and performance.
  • Write clear documentation and comments to explain your approach.
  • Share your project on platforms like GitHub or personal websites.

Career center

Learners who complete Data Structures and Algorithms Bootcamp will develop knowledge and skills that may be useful to these careers:
Software Engineer
Software Engineers build software. They design, code, and test software applications, working with programmers, systems analysts, and other software specialists. This course can help someone who wants to enter this career role because it covers programming concepts, including data structures, algorithms, and coding techniques. It also discusses how to answer common interview questions, which can help someone prepare for a job interview in this field.
Data Scientist
Data Scientists use data to solve problems and make decisions. They gather, clean, and analyze data, then use their findings to develop models and make predictions. This course can help someone who wants to enter this career role because it covers data structures, algorithms, and coding techniques. It also discusses how to answer common interview questions, which can help someone prepare for a job interview in this field.
Machine Learning Engineer
Machine Learning Engineers build and maintain machine learning models. They work with data scientists and other engineers to develop and deploy models that can learn from data and make predictions. This course can help someone who wants to enter this career role because it covers data structures, algorithms, and coding techniques. It also discusses how to answer common interview questions, which can help someone prepare for a job interview in this field.
Business Analyst
Business Analysts work with businesses to understand their needs and then develop solutions that meet those needs. They use their knowledge of business processes, data structures, and algorithms to develop and implement solutions that improve business performance. This course can help someone who wants to enter this career role because it covers data structures, algorithms, and coding techniques. It also discusses how to answer common interview questions, which can help someone prepare for a job interview in this field.
Data Analyst
Data Analysts collect, clean, and analyze data to help businesses make informed decisions. They use their findings to create reports, visualizations, and other data-driven products. This course can help someone who wants to enter this career role because it covers data structures, algorithms, and coding techniques. It also discusses how to answer common interview questions, which can help someone prepare for a job interview in this field.
Database Administrator
Database Administrators manage and maintain databases. They ensure that databases are running smoothly and that data is stored securely. This course can help someone who wants to enter this career role because it covers data structures, algorithms, and coding techniques. It also discusses how to answer common interview questions, which can help someone prepare for a job interview in this field.
Web Developer
Web Developers design and develop websites. They work with web designers and other developers to create websites that are both functional and visually appealing. This course can help someone who wants to enter this career role because it covers data structures, algorithms, and coding techniques. It also discusses how to answer common interview questions, which can help someone prepare for a job interview in this field.
Information Security Analyst
Information Security Analysts design and implement security measures to protect computer systems and data from unauthorized access. They work with security engineers and other security professionals to develop and implement security policies and procedures. This course can help someone who wants to enter this career role because it covers data structures, algorithms, and coding techniques. It also discusses how to answer common interview questions, which can help someone prepare for a job interview in this field.
Cloud Architect
Cloud Architects design and implement cloud computing solutions. They work with clients to understand their needs and then design and implement cloud solutions that meet those needs. This course can help someone who wants to enter this career role because it covers data structures, algorithms, and coding techniques. It also discusses how to answer common interview questions, which can help someone prepare for a job interview in this field.
Quantitative Analyst
Quantitative Analysts use mathematical and statistical models to analyze data and make predictions. They work in a variety of industries, including finance, insurance, and healthcare. This course can help someone who wants to enter this career role because it covers data structures, algorithms, and coding techniques. It also discusses how to answer common interview questions, which can help someone prepare for a job interview in this field.
DevOps Engineer
DevOps Engineers work with developers and operations teams to ensure that software is deployed and maintained smoothly. They use their knowledge of data structures, algorithms, and coding techniques to automate and streamline the development and deployment process. This course can help someone who wants to enter this career role because it covers data structures, algorithms, and coding techniques. It also discusses how to answer common interview questions, which can help someone prepare for a job interview in this field.
Systems Analyst
Systems Analysts design and implement computer systems. They work with users to understand their needs and then develop systems that meet those needs. This course can help someone who wants to enter this career role because it covers data structures, algorithms, and coding techniques. It also discusses how to answer common interview questions, which can help someone prepare for a job interview in this field.
Mobile Developer
Mobile Developers design and develop mobile applications. They work with mobile designers and other developers to create mobile apps that are both functional and visually appealing. This course can help someone who wants to enter this career role because it covers data structures, algorithms, and coding techniques. It also discusses how to answer common interview questions, which can help someone prepare for a job interview in this field.
Project Manager
Project Managers plan and execute projects. They work with project teams to define project goals, develop project plans, and manage project resources. This course can help someone who wants to enter this career role because it covers data structures, algorithms, and coding techniques. It also discusses how to answer common interview questions, which can help someone prepare for a job interview in this field.
Computer Programmer
Computer Programmers write and maintain computer programs. They work with software engineers and other programmers to develop and deploy software applications. This course can help someone who wants to enter this career role because it covers data structures, algorithms, and coding techniques. It also discusses how to answer common interview questions, which can help someone prepare for a job interview in this field.

Reading list

We've selected 14 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 Data Structures and Algorithms Bootcamp.
This classic textbook provides a comprehensive introduction to algorithms and data structures. It valuable resource for understanding the theoretical foundations of computer science.
This classic textbook provides a comprehensive introduction to algorithms and data structures. It valuable resource for understanding the theoretical foundations of computer science.
This textbook provides a comprehensive introduction to data structures and algorithms in Java. It valuable resource for understanding the practical implementation of computer science concepts.
This textbook provides a comprehensive introduction to data structures and algorithms in C++. It valuable resource for understanding the practical implementation of computer science concepts.
Provides an engaging and interactive introduction to data structures and algorithms. It valuable resource for learning the concepts in a fun and accessible way.
Provides an introduction to algorithms and data structures for massive datasets. It valuable resource for understanding the challenges and techniques involved in working with big data.
Provides a practical guide to algorithms in C. It valuable resource for learning how to implement algorithms efficiently in a real-world programming language.
Provides a comprehensive introduction to data structures and algorithms in Python. It valuable resource for understanding the practical implementation of computer science concepts in a popular programming language.
Provides a concise and accessible introduction to algorithms. It valuable resource for understanding the concepts of algorithms in a clear and concise way.
Provides an introduction to data structures and algorithms in JavaScript. It valuable resource for understanding the practical implementation of computer science concepts in a popular programming language.
Provides a collection of algorithmic puzzles. It valuable resource for developing problem-solving skills and understanding the concepts of algorithms.

Share

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

Similar courses

Here are nine courses similar to Data Structures and Algorithms Bootcamp.
Interviewing Skills for Jobs: Ace the Job Interview
The Complete Resume, LinkedIn & Get Your Dream Job Course!
Interview Success: English for Job Interviews
Master the Product Manager Interview - The Complete Guide
Technical Interview
50 days of LeetCode in python: Algorithms coding interview
Data Structures and Algorithms In Java ( DSA )
SDET Training: Selenium WebDriver, Java Project & Code...
11 Essential Coding Interview Questions + Coding...
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