Master the Coding Interview: Data Structures + Algorithms
Ultimate coding interview bootcamp. Get more job offers, negotiate a raise, and learn everything you need to get the job you want!
What you'll learn
- ✓ Ace coding interviews given by some of the top tech companies
- ✓ Learn, implement, and use different Data Structures
- ✓ Get more interviews
- ✓ Become a better developer by mastering computer science fundamentals
- ✓ Become more confident and prepared for your next coding interview
- ✓ Learn, implement and use different Algorithms
- ✓ Professionally handle offers and negotiate raises
Meet your instructor
Hi! I'm Andrei.
Senior Software Developer turned Instructor, Founder of ZTM
Andrei is the instructor of some of the highest rated programming courses on the web. Some of his students (200,000+ in the past 2 years) now work for some of the biggest tech companies around the world like Apple, Google, Amazon, Tesla, IBM and UNIQLO.
He has worked as a Senior Software Developer in Silicon Valley and Toronto for many years and is now taking all that he has learned to teach programming skills and to help you discover the amazing career opportunities that being a developer allows in life.
Don't take our word for it
I wish I had this course at the start of my career! The content was precise and to the point. For someone such as me, not coming from a computer science background, this course really helped me understand and optimize my applications in ways I never thought possible. Thank you soo much for creating and sharing such a wonderful course.
This course is absolutely fantastic and worth your while. I've had interviews in which questions arise that should be tricky, but Andrei prepared me for them. I'm almost giddy in every interview now, because I'm finding myself so prepared. I'm not only prepared for algorithm questions, but also for the "why" behind CS functionality.
This course is really great! For a non-CS students, this is a great introduction with easy-to-understand graphics, animations and explanations. For CS-students, it's a good review guide. There are also a lot of tips on interviewing as well as handling job offers which is valuable information for job seekers. Highly recommend it to anyone who is seeking a developer job and need to go through code/technical interview.
I am a web developer but not from a CS background. I purchased 5 different books on Data Structures and Algorithms and attended an offline course. I spent a lot of money on learning DSA. I have to say, this course is the best so far. I would highly recommend this course. Thanks Andrei for your valuable resource.
Very helpful for someone looking to prepare for the technical interview. There is also a community on LinkedIn (and Discord) which helps people socialize and connect with others. PS: I got the job!
This course was a great match for me because I am a self-taught engineer who has found success at multiple companies; however, I never truly grasped these concepts because I did not receive a formal CS education. This course has truly closed the gap in knowledge I've had in data structures and algorithms and I would argue that even if I'd taken a formal course in college, the material wouldn't have been delivered as well as this course has.
Why Zero To Mastery is right for you
With so many online resources available, it can be paralyzing not only figuring out where to start but more importantly which courses will actually teach you the skills you need to get hired.
That’s why the Zero To Mastery Academy exists, to provide industry-leading courses and content to teach you the relevant skills you need to advance your career and get you hired at some of the top companies in the world.
Join now to get complete access to this course and all others for only $22/month.
To make sure this course is a good fit for you, you can start learning for free right now with over 1 hour of free lessons.
- Section Overview (5:39)
- Resume (5:09)
- Exercise: Resume Walkthrough (17:05)
- Resume Review (2:37)
- Resources: Resume Templates
- What If I Don't Have Enough Experience? (15:03)
- Optional Exercise: Github Master
- LinkedIn (8:22)
- Optional Exercise: LinkedIn Endorsements
- Portfolio (3:23)
- Resources: Free Portfolio Templates
- Email (8:24)
- Resources: Email
- Where To Find Jobs? (6:02)
- Resources: Where To Find Jobs?
- When Should You Start Applying? (3:34)
- Section Summary (2:17)
- Monthly Industry Updates
- Setting Up Your Environment (2:53)
- Section Overview (2:24)
- What Is Good Code? (6:57)
- Big O and Scalability (11:08)
- O(n) (5:39)
- O(1) (6:10)
- Exercise: Big O Calculation
- Solution: Big O Calculation (5:54)
- Exercise: Big O Calculation 2
- Solution: Big O Calculation 2 (2:29)
- Simplifying Big O (1:50)
- Big O Rule 1 (4:28)
- Big O Rule 2 (6:36)
- Big O Rule 3 (3:13)
- O(n^2) (7:13)
- Big O Rule 4 (6:47)
- Big O Cheat Sheet (3:18)
- What Does This All Mean? (5:32)
- O(n!) (1:18)
- 3 Pillars Of Programming (3:32)
- Space Complexity (2:22)
- Exercise: Space Complexity (6:24)
- Exercise: Twitter (7:13)
- Section Summary (4:43)
- Section Overview (5:04)
- What Are Companies Looking For? (3:05)
- What We Need For Coding Interviews (3:27)
- Exercise: Google Interview (2:31)
- Exercise: Interview Question (20:33)
- Exercise: Interview Question 2 (22:59)
- Review Google Interview (1:30)
- Optional Exercise: Google Interview On Your Own
- Section Summary (3:35)
- Arrays Introduction (13:51)
- Static vs Dynamic Arrays (6:40)
- Quick Note: Upcoming Video
- Implementing An Array (17:19)
- Strings and Arrays (1:04)
- Exercise: Reverse A String (1:35)
- Solution: Reverse A String (10:31)
- Exercise: Merge Sorted Arrays (0:44)
- Solution: Merge Sorted Arrays (14:12)
- Interview Questions: Arrays
- Arrays Review (3:28)
- Hash Tables Introduction (4:10)
- Hash Function (5:56)
- Hash Collisions (9:43)
- Hash Tables In Different Languages (3:30)
- Exercise: Implement A Hash Table (3:51)
- Solution: Implement A Hash Table (17:24)
- keys() (6:11)
- Bonus: keys() Without Collision
- Hash Tables vs Arrays (2:01)
- Exercise: First Recurring Character (1:18)
- Solution: First Recurring Character (16:11)
- Interesting Tidbit: Python Dictionaries
- Hash Tables Review (6:09)
- Linked Lists Introduction (2:26)
- What Is A Linked List? (4:36)
- Exercise: Why Linked Lists? (2:05)
- Solution: Why Linked Lists? (5:35)
- What Is A Pointer? (5:45)
- Our First Linked List (8:38)
- Solution: append() (5:25)
- Solution: prepend() (2:27)
- Node Class (2:40)
- insert() (5:12)
- Quick Note: Upcoming Video
- Solution: insert() (13:08)
- Solution: remove() (5:21)
- Doubly Linked List (3:18)
- Exercise: Doubly Linked Lists
- Solution: Doubly Linked Lists (8:50)
- Singly vs Doubly Linked Lists (2:40)
- Exercise: reverse() (1:30)
- Solution: reverse() (7:38)
- Linked Lists Review (5:07)
- Stacks + Queues Introduction (2:58)
- Stacks (3:28)
- Queues (3:30)
- Exercise: Stacks vs Queues (3:06)
- Solution: Stacks vs Queues (3:39)
- Quick Note: Upcoming Video
- Exercise: Stack Implementation (Linked Lists) (2:23)
- Solution: Stack Implementation (Linked Lists) (8:58)
- Exercise: Stack Implementation (Array) (0:53)
- Solution: Stack Implementation (Array) (3:56)
- Exercise: Queue Implementation (1:48)
- Solution: Queue Implementation (7:50)
- Queues Using Stacks (2:04)
- Stacks + Queues Review (2:19)
- Trees Introduction (6:23)
- Binary Trees (5:45)
- O(log n) (7:00)
- Binary Search Trees (6:12)
- Balanced vs Unbalanced BST (3:42)
- BST Pros and Cons (2:26)
- Exercise: Binary Search Tree (3:57)
- Solution: insert() (10:10)
- Solution: lookup() (4:54)
- Bonus Exercise: remove() (2:28)
- Solution: remove() (7:41)
- AVL Trees + Red Black Trees (2:56)
- Resources: AVL Trees + Red Black Trees
- Binary Heaps (5:36)
- Quick Note on Heaps (1:08)
- Priority Queue (5:27)
- Trie (3:16)
- Tree Review (0:51)
- Introduction to Algorithms (3:51)
- Recursion Introduction (5:36)
- Stack Overflow (6:17)
- Anatomy Of Recursion (10:27)
- Exercise: Factorial (3:25)
- Solution: Factorial (6:20)
- Exercise: Fibonacci (1:59)
- Solution: Fibonacci (11:21)
- Recursive vs Iterative (4:16)
- When To Use Recursion (4:00)
- Exercise: Reverse String With Recursion
- Recursion Review (2:47)
- Sorting Introduction (7:01)
- The Issue With sort() (6:51)
- Sorting Algorithms (3:37)
- Bubble Sort (3:45)
- Exercise: Bubble Sort
- Solution: Bubble Sort (5:06)
- Selection Sort (2:39)
- Exercise: Selection Sort
- Solution: Selection Sort (2:23)
- Dancing Algorithms (1:36)
- Insertion Sort (2:38)
- Exercise: Insertion Sort
- Solution: Insertion Sort (2:06)
- Merge Sort and O(n log n) (8:59)
- Exercise: Merge Sort
- Solution: Merge Sort (4:44)
- Stable vs Unstable Algorithms
- Quick Sort (7:40)
- Optional Exercise: Quick Sort
- Which Sort Is Best? (4:40)
- Resources: Heap Sort
- Radix Sort + Counting Sort (4:17)
- Resources: Radix Sort + Counting Sort
- Exercise: Sorting Interview (1:27)
- Solution: Sorting Interview (7:07)
- Sorting In Your Language (1:27)
- Sorting Review (2:53)
- Searching + Traversal Introduction (1:34)
- Linear Search (3:37)
- Binary Search (6:05)
- Graph + Tree Traversals (3:56)
- BFS Introduction (2:44)
- DFS Introduction (3:23)
- BFS vs DFS (3:20)
- Resources: BFS vs DFS
- Exercise: BFS vs DFS (0:44)
- Solution: BFS vs DFS (3:16)
- breadthFirstSearch() (9:15)
- breadthFirstSearchRecursive() (5:33)
- PreOrder, InOrder, PostOrder (5:21)
- depthFirstSearch() (12:03)
- Optional Exercise: Validate A BST
- Graph Traversals (3:53)
- BFS in Graph (2:07)
- DFS in Graph (2:49)
- Dijkstra + Bellman-Ford Algorithms (5:11)
- Searching + Traversal Review (4:21)
- Section Overview (2:38)
- During The Interview (9:04)
- Exercise: Hero Stories
- Tell Me About Yourself (5:30)
- Exercise: Your Pitch
- Why Us? (5:06)
- Tell Me About A Problem You Have Solved (5:18)
- Exercise: Past Projects
- What Is Your Biggest Weakness (2:19)
- Exercise: Your Biggest Weakness
- Any Questions For Us? (3:24)
- Resources: Questions To Ask A Company
- Secret Weapon (8:11)
- After The Interview (5:24)
- Section Summary (3:56)
Updated for 2020! Join thousands of other students taking this course taught by an industry expert that has worked both in Silicon Valley and Toronto. Graduates of Andrei’s courses are now working at Google, Amazon, Apple, IBM, Tesla, Facebook and other top tech companies.
Want to land a job at a great tech company like Google, Microsoft, Facebook, Netflix, Amazon, or other companies but you are intimidated by the interview process and the coding questions? Do you find yourself feeling like you get "stuck" every time you get asked a coding question? This course is your answer. Using the strategies, lessons, and exercises in this course, you will learn how to land offers from all sorts of companies.
Many developers who are "self taught" feel that one of the main disadvantages they face compared to college-educated graduates in Computer Science is the fact that they don't have knowledge about algorithms, data structures and the notorious Big-O Notation. Get on the same level as someone with a Computer Science degree by learning the fundamental building blocks of Computer Science which will give you a big boost during interviews. You will also get access to our private online chat community with thousands of developers online to help you get through the course.
The topics covered in this course are:
- Big O Notation
- Hash Tables
- Singly Linked Lists
- Doubly Linked Lists
- Trees (BST, AVL Trees, Red Black Trees, Binary Heaps)
- Tree Traversal
- Breadth First Search
- Depth First Search
- Dynamic Programming
- How to get more interviews
- What to do during interviews
- What do do after the interview
- How to answer interview questions
- How to handle offers
- How to negotiate your salary
- How to get a raise
Unlike most instructors, I am not a marketer or a salesperson. I am a Senior Developer and Programmer who has worked and managed teams of engineers, and have been in these interviews both as an interviewee as well as the interviewer.
My job as an instructor will be a success if I am able to help you become better at interviewing and land you more jobs. This one skill can really change the course of your career and I hope you sign up today to see what it can do for you!
See you inside the course!
Answers to (at least some of) your questions
Are there any prerequisites for this course?
No previous computer science knowledge or experience with data structures or algorithms needed, just a basic understanding of one programming language.
Who is this course for?
- Any engineer, developer, programmer, who wants to improve their interviewing skills
- Anyone interested in improving their whiteboard coding skills
- Anyone who wants to become a better developer
- Any self-taught programmer who missed out on a computer science degree
Do you provide a certificate of completion?
We definitely do.
Can I use the course projects in my portfolio?
Yes, you’d be crazy not to in our slightly biased opinion! All projects are downloadable and ready to use the minute you join. Many of our students tell us the projects they built while following along with our courses were what got them interviews and because they built the projects themselves, they could confidently explain and walk through their work during the interview. You know what that means? Job offer!
Can I download the videos?
Definitely. You can download any and all lessons for personal use. We do everything we can to make learning easy, fun, and accessible whether that’s on your commute, on a flight, or you just have limited access to good wifi.
Still have more questions specific to the Academy membership? No problem, head to the bottom of this page.
Live the life you want, starting now
Learning to code and becoming a developer provides endless opportunities to live the life you want. Whether that’s a high paying job with a world-class tech company, working remotely or building your own apps, the ZTM Academy will equip you with the skills and knowledge to achieve your dreams.
Our courses walk you through the entire journey of starting to learn to code to having a successful career as a developer. Along the way, you’ll not only be supported by Andrei, Yihua and course TAs but also your peers in the exclusive Zero To Mastery community.
Join now to take the first step to change your life.