What will you learn from the course?
By the end of the course, you will have a better idea of the type of problems asked in coding interviews and how to approach them to implement a viable solution.
You will also learn the most common algorithms used in coding interviews, and more importantly, when to use them.
You will improve your problem-solving skills and interviewing skills.
About the Instructor
David has more than 10 years of experience teaching the Algorithms Design and Analysis course at Universidad Panamericana. He has been involved in the ACM-ICPC programming team of the university as a contestant, coach, and advisor.
David is a Principal Software Engineer with more than 10 years of experience in the industry, having worked at Amazon and Oracle. He also has worked at Karat as a contractor to interview engineers for companies such as Roblox, Indeed, Walmart, Palantir, and others. He has interviewed hundreds of candidates during his trajectory and has participated as a problem setter for questions used in recruitment processes.
He is the founder of dnd-learning, where he creates educational content related to algorithms. He provides guidance and mentorship for coding interviews and constantly publishes material about algorithms and interviews. He is co-author of the book "Algorithms for Competitive Programming".
Material
The slides of the course are available for download.
For each coding exercise in the course, it is provided the code with the implementation, and a document explaining the solution.
The coding questions are public to practice, and all of them have automated test cases.
Content of the Course
Introduction
Objectives
Motivation
Tools that will be used during the course
Complexity Analysis
Importance of identifying time and space complexity in an interview
Common types of complexities
Interview tips
Coding exercises
Data Structures I
Linear data structures: Vector, list, queue, and stack
Tree data structures
Interview tips
Coding exercises
Data Structures II
Hashing data structures
Interview tips
Coding exercises
Graphs
Definition
Types of graphs
Paths and cycles
Representation of a graph
Graph traversal
Interview tips
Coding exercises
Dynamic Programming
Definition
How to approach a problem with dynamic programming
Examples of DP problems
Interview tips
Coding exercises
Backtracking
Definition
How to implement a backtracking solution
When is a good idea to use backtracking
Example: Sudoku
Interview tips
Coding exercises