Master The Coding Interview Big Tech Faang Interviews

Ace the Google, Amazon, Facebook, Microsoft, Netflix coding interviews. Step by step guide for their toughest questions!

Last updated 2022-01-10 | 4.7

- Ace the coding interview at the top tech companies (Google
- Amazon
- Facebook
- Apple
- Microsoft
- Netflix + others)
- Step by step guide to common questions
- how to solve them
- optimize
- and present them during tech interview
- The ultimate resource to prepare for coding interviews
- tech interviews and programming interviews

What you'll learn

Ace the coding interview at the top tech companies (Google
Amazon
Facebook
Apple
Microsoft
Netflix + others)
Step by step guide to common questions
how to solve them
optimize
and present them during tech interview
The ultimate resource to prepare for coding interviews
tech interviews and programming interviews
Learn exactly what you need to answer difficult questions and the framework you need for ANY kind of questions they throw at you
Use the right Data Structures and Algorithms to pass coding interview questions that have the optimal solution
Become a better developer by mastering computer science fundamentals

* Requirements

* No previous computer science knowledge necessary
* Basic understanding of one programming language
* If you have the ambition to learn and get into one of these companies we will make it achievable for you! (see our student success stories)

Description

Brand new course ready for the 2022 hiring season! Join a live online community of over 600,000+ engineers and a course taught by industry experts that have actually worked both in Silicon Valley and Toronto at top tech firms. Graduates of ZTM courses are now working at Google, Tesla, Amazon, Apple, IBM, JP Morgan, Facebook + other top tech companies.

This is one student 1 month after taking this course:
"I joined the course when it came out, and after a couple of months studying, practice, and more practice, losing sleep and everything I'm proud to say that I got an offer from GOOGLE!! I still can't believe it, it's incredibly surreal. And I can't thank you and this entire community enough for what you've given me. This year is notorious for how tumultuous it's been, but it's seriously has been a test from the first second of this year.. I've shed many, many tears these past 12 months and could write a book on the experience this year. but i just want to Thank you, thank you, thank you from the bottom of my heart for providing me (and this community) the resources needed to realize my potential that I honestly never saw in myself.. and now that I know i can get this far, I know that this is only the beginning.."

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. This is the ultimate resource to prepare you for coding interviews. Everything you need in one place!

The goal of the course isn't to tell you: "Do 100 interview questions and hope you memorize their answers." NO! Our goal is to use the hand selected common interview questions to give you a framework to answer ANY interview question that these companies may throw at you. Instead of trying to memorize common questions, we teach you the principles and fundamentals that you can use to notice certain common patterns in questions so that any question that you get, you have a framework to answer and be confident in your programming interview.

You will also get access to our private online community with thousands of developers online to help you get through the course and the interview!

Here is what you will learn to use in this course while answering the interview questions step by step with us:

----Technical----

1. Big O Notation

2. Data Structures Used:

  * Arrays

  * Hash Tables

  * Singly linked lists

  * Doubly linked lists

  * Stacks

  * Queues

  * Binary Trees

  * Binary Search Trees

  * Tries

  * N-ary Trees

  * Min/Max Heaps

  * Priority Queues

  * 2-D Arrays/ Matrices

  * Graphs

  * Adjacency List

  * Adjacency Matrix

  * Interface Design


3. Algorithmic Paradigms Used:

  * Recursion

  * Sorting

  * Searching

  * Tree Traversals

  * Graph Traversals

  * Breadth First Search

  * Depth First Search

  * Divide and Conquer

  * Greedy Method

  * Dynamic Programming

  * Backtracking


4. Specific Algorithms Used:

  * Hoare's Quickselect Algorithm

  * Floyd's Tortoise and Hare Cycle Detection Algorithm

  * Bellman-Ford Algorithm

  * Dijkstra's Algorithm

  * Topological Sort


Unlike most instructors out there, We are not marketers or salespeople. We are senior engineers and programmers who have worked and managed teams of engineers and have been in these interviews both as an interviewee as well as the interviewer.

Our job as instructors will be successful if we are able to help you get your dream job at a big company. This one skill of mastering the coding interview can really change the course of your career and life and we hope you sign up today to see what it can do for your career!


See you inside the course!


Taught by:

Andrei is the instructor of the highest rated Web Development course on Udemy as well as one of the fastest growing. His graduates have moved on to work for some of the biggest tech companies around the world like Apple, Google, JP Morgan, IBM, etc... He has been working 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. 

Having been a self taught programmer, he understands that there is an overwhelming number of online courses, tutorials and books that are overly verbose and inadequate at teaching proper skills. Most people feel paralyzed and don't know where to start when learning a complex subject matter, or even worse, most people don't have $20,000 to spend on a coding bootcamp. Programming skills should be affordable and open to all. An education material should teach real life skills that are current and they should not waste a student's valuable time.   Having learned important lessons from working for Fortune 500 companies, tech startups, to even founding his own business, he is now dedicating 100% of his time to teaching others valuable software development skills in order to take control of their life and work in an exciting industry with infinite possibilities. 

Andrei promises you that there are no other courses out there as comprehensive and as well explained. He believes that in order to learn anything of value, you need to start with the foundation and develop the roots of the tree. Only from there will you be able to learn concepts and specific skills(leaves) that connect to the foundation. Learning becomes exponential when structured in this way. 

Taking his experience in educational psychology and coding, Andrei's courses will take you on an understanding of complex subjects that you never thought would be possible.  

-------

Yihua Zhang is one of the Instructors of Zero To Mastery, one of the highest rated and fastest growing Web Development academies on Udemy. He has been working as a software developer for numerous years in Toronto for some of the largest tech companies in the world. He has also been working as an instructor for more than a decade. He is focused on bringing everything he has learned to help you achieve a new career as a developer, but also give you all the fundamental skills required to flourish in this incredible industry.


Yihua is a self taught developer, so he fully understands the challenges and mindset of coming into this industry from various other backgrounds. He has been on both sides of the table, as both an instructor and student numerous times so he can empathize with the difficulty of learning something new and challenging. Learning itself is a skill that needs to be practiced and improved upon, and he is dedicated to helping you improve and master that skill for yourself. Courses need to be practical, you need to be able to understand why you are learning the things that you are being taught. You need to understand the problem before you know the solution, and he prides himself on teaching you how to build professional, real world applications so you truly understand why you are doing things a specific way. He will teach you the mindset and skillset required to grow as a developer as fast as possible, so you can have the rich and fulfilling life that comes with this career.


Yihua's courses will guide you to build beautifully written and richly featured applications, while truly understanding all the complex concepts you will encounter along the way.

Who this course is for:

  • Anyone that wants to work a Google, Amazon, Facebook, Microsoft, Apple, Netflix or other top tech companies
  • 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

Course content

46 sections • 289 lectures

Course Breakdown Preview 11:04

Join Our Online Classroom! Preview 01:15

Exercise: Meet The Community Preview 01:17

Download All Code + Solutions Preview 00:19

Monthly Coding Challenges, Free Resources and Guides Preview 00:40

Interview Question #1 Two Sum Preview 07:14

How To Approach Our Problem Preview 11:45

Writing Our Brute Force Solution Preview 06:40

Testing Our Brute Force Solution With Our Test Cases Preview 09:23

Submitting To Leetcode Preview 01:49

Analyzing Space and Time Complexity Preview 10:37

Optimizing Our Solution Preview 08:06

Coding Our Optimal Solution Preview 05:21

Testing Our Optimal Solution With Our Test Cases & Space and Time Complexity Preview 08:02

Checking Performance on Leetcode Preview 03:24

Solutions In Other Languages Preview 00:12

Interview Question #2 - Container With Most Water Preview 04:46

Coming Up With Test Cases Preview 04:19

Thinking Through A Logical Brute Force Solution Preview 12:49

Coding Out Our Brute Force Solution Preview 07:20

Stepping Through Our Code Preview 04:44

Thinking About Our Optimal Solution Preview 13:52

Coding Our Optimal Solution And Testing On LeetCode Preview 09:50

Interview Question #3 - Trapping Rainwater Preview 07:19

Thinking About A Logical Solution Preview 12:45

Coding Our Brute Force Preview 08:52

Figuring Out Our Optimization Strategy Preview 24:26

Coding Our Optimal Solution Preview 13:26

Optimal Code And LeetCode Preview 02:09

Interview Question #4 -Typed Out Strings Preview 07:08

Logic Of Our Brute Force Preview 08:02

Coding Our Brute Force Preview 09:37

Space And Time Complexity Preview 07:22

Coming Up With Optimal Solution Preview 11:52

Coding Our Optimal Solution Preview 12:35

Submitting To LeetCode Preview 05:51

Interview Question #5 - Longest Substring Without Repeating Characters Preview 06:39

Coming Up With A Brute Force Approach Preview 06:34

Coding Our Brute Force Preview 09:57

Space And Time Complexity Preview 03:16

Sliding Window Technique Preview 05:18

Hints For Optimizing Our Solution Preview 02:16

Thinking About Optimal Solution Preview 09:09

Coding Our Optimal Solution Preview 08:30

Note: Correction for explanation of +1 Preview 00:57

Optimal Code And LeetCode Preview 03:18

Intro To Palindromes Preview 09:41

Interview Question #6 - Valid Palindrome Preview 08:39

Almost A Palindrome Preview 10:15

Figuring Out Our Solution Preview 06:50

Coding Our Solution Preview 09:46

Linked List Introduction Preview 03:58

Basic Algorithm: Reverse a Linked List Preview 08:21

Thinking About Our Solution Preview 10:55

Coding Reverse A Linked List Solution Preview 07:07

Interview Question #7 - M, N Reversals Preview 06:50

Coming Up With A Logical Solution Preview 16:33

Coding Our Solution Preview 15:38

Interview Question #8 - Merge Multi-Level Doubly Linked List Preview 08:52

Figuring Out Our Test Cases Preview 08:34

Note: A great visualization helper written in Python by Karen Fisher Preview 00:54

Thinking About Our Approach Preview 16:47

Coding Out Our Solution Preview 14:37

Interview Question #9 - Cycle Detection Preview 11:39

What Is Floyd's Tortoise And Hare Algorithm? Preview 03:04

Coding Floyd's Algorithm Preview 08:54

Optional: Proof Of How And Why Floyd's Algorithm Works Preview 25:51

Intro to Stacks and Queues Preview 03:11

Interview Question #10 - Valid Parentheses Preview 09:23

Walking Through Our Problem - Identifying The Need For A Stack Preview 08:15

Coding Our Solution With A Stack Preview 09:18

Interview Question #11 - Minimum Brackets To Remove Preview 07:38

Thinking About Our Solution Preview 12:45

Coding Our Solution Preview 10:53

Question #12 - Implement Queue With Stacks Preview 04:10

Figuring Out Our Solution Preview 10:19

Coding Our Solution Preview 08:27

Introducing Recursion Preview 03:07

Optional: Tail Recursion Preview 19:54

Sorting Preview 02:23

Interview Question #13 - Kth Largest Element Preview 06:50

Insights From Quick Sort Preview 12:36

Understanding Divide And Conquer Preview 08:17

Coding Quicksort Into Our Solution Preview 14:53

What Is Hoare's Quickselect Algorithm? Preview 06:55

Coding Our Solution With Quickselect Preview 11:47

Correction About Time Complexity Preview 00:48

Understanding Binary Search Preview 09:32

How To Code Binary Search Preview 06:22

Question #14 - Start And End Of Target In A Sorted Array Preview 05:05

Walking Through Our Solution Preview 10:48

Coding Our Solution Preview 12:55

Intro to Binary Trees Preview 01:52

Question #15 - Maximum Depth of Binary Tree Preview 06:54

Learning The Process For Solving Binary Tree Problems Preview 19:12

Coding Our Solution Preview 06:11

Question #16 - Level Order Of Binary Tree Preview 05:28

Walking Through Our Solution Preview 17:27

Coding Out Level Order Traversal Preview 11:38

Question #17 - Right Side View of Tree Preview 06:43

Understanding The Breadth First Search Approach Preview 08:26

Understanding The Depth First Search Approach Preview 09:22

Thinking About Pre-Order, In-Order, and Post-Order Traversals For Our Solution Preview 12:23

Completing Our DFS Solution Preview 07:41

Coding Our Final DFS Solution Preview 11:55

Question #18 - Number Of Nodes In Complete Tree Preview 08:31

Thinking Deeply About A Full Binary Tree Preview 10:26

Figuring Out Number Of Nodes At Last Level Preview 15:28

Coding Out Our Full Solution Preview 20:39

Question #19 - Validate Binary Search Tree Preview 08:47

Thinking About Our Logical Solution Preview 15:04

Figuring Out Our Boundaries Preview 06:53

Coding Our Our Full Solution Preview 07:58

Introducing Heaps Preview 08:45

Insertion In Heaps - Understanding Sift Up Preview 07:35

Deletion In Heaps - Understanding Sift Down Preview 10:48

Starting To Code Our Priority Queue Class Preview 10:48

Coding Our Insertion And Sift Up Methods Preview 05:49

Coding Our Deletion And Sift Down Methods Preview 13:00

Introducing 2D Arrays - What Are They? Preview 07:23

Depth First Search In 2D-Arrays Preview 07:24

Coding DFS - Setting Up For DFS Preview 09:43

Coding DFS - Implementing Recursive DFS Preview 08:40

Breadth First Search In 2D-Arrays Preview 07:48

Coding BFS Preview 10:05

A General Approach To Thinking About Most Graph Questions Preview 09:09

Question #20 Number Of Islands Preview 07:50

Approaching Our Problem - Thinking Deeply About The Values Preview 16:11

Approaching Our Problem - Thinking About Traversals Preview 08:55

Coding Our Solution Preview 19:08

Thinking About Space And Time Complexity Preview 14:38

Question #21 Rotting Oranges Preview 06:57

Figuring Out Our Initial Logic Preview 11:04

Figuring Out The Rest Of Our Solution Preview 14:27

Coding Out Our Solution Preview 14:47

Question #22 - Walls And Gates Preview 06:19

Figuring Out Our Logical Solution Preview 12:16

Coding Out Our Solution Preview 11:45

Introduction To The Types Of Graphs Preview 11:06

Representing Our Graphs - Adjacency List & Adjacency Matrix Preview 07:19

Breadth First Search In Graphs Preview 04:39

Coding BFS Preview 07:53

Depth First Search In Graphs Preview 03:03

Coding DFS Preview 07:03

Question #23 - Time Needed to Inform All Employees Preview 12:51

Verifying Our Constraints And Thinking About Test Cases Preview 08:12

How To Represent Our Graph As An Adjacency List Preview 09:37

Solving Our Problem Logically Using DFS Traversal Preview 07:48

Coding Our DFS Solution Preview 10:01

Question #24 - Course Scheduler Preview 10:24

Thinking About Our Initial Solution - BFS Preview 07:56

Coding Out Our Initial BFS Solution Preview 15:28

What is Topological Sort? Preview 07:55

Thinking About A Solution With Topological Sort Preview 04:49

Coding Our Final Solution Preview 15:47

Question #25 - Network Time Delay Preview 12:39

Thinking About How To Approach The Problem Preview 08:37

Greedy Method & What Is Dijkstra's Algorithm? Preview 15:30

Thinking About A Solution With Dijkstra's Algorithm Preview 08:55

Coding Our Solution With Dijkstra Preview 17:32

Time And Space Complexity Of Our Solution Preview 13:08

Thinking About Negative Weights Preview 07:41

What is The Bellman-Ford Algorithm? - Conceptualizing Dynamic Programming Preview 16:22

What is The Bellman-Ford Algorithm? - The Algorithm Itself Preview 16:17

Coding Our Solution With Bellman-Ford Preview 09:19

Question #26 - Minimum Cost Of Climbing Stairs & How To Approach DP Preview 09:38

Understanding & Identifying Recurrence Relation Preview 15:48

First Step - Recursive Solution From Recurrence Relation Preview 05:34

Note: Correction to space complexity Preview 00:22

Second Step - Memoizing Our Redundant Recursive Calls Preview 07:49

Coding Our Memoization Optimization Preview 07:50

Understanding The Bottom Up Approach (Tabulation) Preview 06:29

Third Step - Bottom Up Tabulation Preview 05:24

Fourth Step - Bottom Up Optimization Preview 06:52

Question #27 - Knight Probability In Chessboard Preview 10:09

Thinking About Test Cases To Help Us Preview 03:51

Identifying The Recurrence Relation Preview 15:29

First Step - Recursive Solution From Recurrence Relation Preview 05:10

Second Step - Memoizing Our Redundant Recursive Calls Preview 14:13

Figuring Out The Logic For Our Bottom Up Solution Preview 13:59

Third Step - Bottom Up Tabulation Preview 08:31

Fourth Step - Bottom Up Optimization Preview 06:55

Dynamic Programming List Preview 00:53

Understanding The Basics Of Backtracking Preview 07:06

Question #28 - Sudoku Solver Preview 04:19

Learning The Backtracking Template Preview 11:18

Applying Our Backtracking Template To Sudoku Solver Logic Preview 06:42

Coding How To Get Box ID Preview 07:49

Setting Up Our Solution Code Preview 07:05

Coding The Recursive Backtracking Portion Of Our Solution Preview 19:18

Thinking About The Space And Time Complexity Preview 06:58

Understanding Interface Design & Question #29 - Monarchy Preview 10:52

Figuring Out Our Test Cases Preview 05:57

Thinking About The Logical Of The Monarchy Preview 09:41

Coding Our Monarchy Solution Preview 14:57

Introducing Tries Preview 01:07

Question #30 - Implement Prefix Trie Preview 09:49

Understanding The Logic For Our Methods Preview 03:54

Implementing Our Prefix Trie Data Structure Solution Preview 15:15

Learning Guideline Preview 00:10

LinkedIn Endorsements Preview 00:39

Become An Alumni Preview 00:41

Coding Challenges Preview 00:29

Course Review

The Final Challenge

Section Overview Preview 02:24

What Is Good Code? Preview 06:57

Big O and Scalability Preview 11:08

O(n) Preview 05:39

O(1) Preview 06:10

Exercise: Big O Calculation Preview 00:20

Solution: Big O Calculation Preview 05:54

Exercise: Big O Calculation 2 Preview 00:28

Solution: Big O Calculation 2 Preview 02:29

Simplifying Big O Preview 01:50

Big O Rule 1 Preview 04:28

Big O Rule 2 Preview 06:36

Big O Rule 3 Preview 03:13

O(n^2) Preview 07:13

Big O Rule 4 Preview 06:47

Big O Cheat Sheet Preview 03:18

What Does This All Mean? Preview 05:32

O(n!) Preview 01:18

3 Pillars Of Programming Preview 03:32

Space Complexity Preview 02:22

Exercise: Space Complexity Preview 06:24

Exercise: Twitter Preview 07:13

Section Summary Preview 04:43

Arrays Introduction Preview 13:51

Static vs Dynamic Arrays Preview 06:40

Optional: Implementing An Array Preview 17:19

Hash Tables Introduction Preview 04:10

Hash Function Preview 05:56

Hash Collisions Preview 09:43

Hash Tables VS Arrays Preview 02:01

Linked Lists Introduction Preview 02:26

What Is A Linked List? Preview 04:36

Exercise: Why Linked Lists? Preview 02:05

Solution: Why Linked Lists? Preview 05:35

What Is A Pointer? Preview 05:45

Doubly Linked Lists Preview 03:18

Singly VS Doubly Linked Lists Preview 02:40

Linked Lists Review Preview 05:07

Stacks + Queues Introduction Preview 02:58

Stacks Preview 03:28

Queues Preview 03:30

Exercise: Stacks VS Queues Preview 03:06

Solution: Stacks VS Queues Preview 03:39

Stacks + Queues Review Preview 02:19

Trees Introduction Preview 06:23

Binary Trees Preview 05:45

O(log n) Preview 07:00

Binary Search Trees Preview 06:12

Balanced VS Unbalanced BST Preview 03:42

BST Pros and Cons Preview 02:26

Tries Preview 03:16

Graph + Tree Traversals Preview 03:56

BFS Introduction Preview 02:45

DFS Introduction Preview 03:23

BFS vs DFS Preview 03:20

Exercise: BFS vs DFS Preview 00:44

Solution: BFS vs DFS Preview 03:16

breadthFirstSearch() Preview 09:15

PreOrder, InOrder, PostOrder Preview 05:21

depthFirstSearch() Preview 12:03

Recursion Introduction Preview 05:36

Stack Overflow Preview 06:17

Anatomy Of Recursion Preview 10:27

Recursive VS Iterative Preview 04:16

When To Use Recursion Preview 04:00

Recursion Review Preview 02:47

Sorting Introduction Preview 07:01

The Issue With sort() Preview 06:51

Sorting Algorithms Preview 03:38

Bubble Sort Preview 03:45

Exercise: Bubble Sort Preview 00:05

Solution: Bubble Sort Preview 05:06

Selection Sort Preview 02:39

Exercise: Selection Sort Preview 00:05

Solution: Selection Sort Preview 02:23

Dancing Algorithms Preview 01:36

Insertion Sort Preview 02:38

Exercise: Insertion Sort Preview 00:05

Solution: Insertion Sort Preview 02:06

Merge Sort and O(n log n) Preview 08:59

Exercise: Merge Sort Preview 00:05

Solution: Merge Sort Preview 04:44

Quick Sort Preview 07:40