Master the Coding Interview: Big Tech (FAANG) Interviews
-
Introduction
-
Arrays – Question #1 Google Interview Question Two Sum (Easy)Interview Question #1 Two Sum0sHow To Approach Our Problem0sWriting Our Brute Force Solution0sTesting Our Brute Force Solution With Our Test Cases0sSubmitting To Leetcode0sAnalyzing Space and Time Complexity0sOptimizing Our Solution0sCoding Our Optimal Solution0sTesting Our Optimal Solution With Our Test Cases & Space and Time Complexity0sChecking Performance on Leetcode0sSolutions In Other LanguagesWeb, Python, Machine Learning Monthly + Resources
-
Arrays – Questions #2 – Container With Most Water (Medium)
-
Arrays – Questions #3 – Trapping Rainwater (Hard)
-
Strings – Question #4 – Typed Out Strings (Easy)
-
Strings – Question #5 – Longest Substring Without Repeating Characters (Medium)Interview Question #5 – Longest Substring Without Repeating Characters0sComing Up With A Brute Force Approach0sCoding Our Brute Force0sSpace And Time Complexity0sSliding Window Technique0sHints For Optimizing Our Solution0sThinking About Optimal Solution0sCoding Our Optimal Solution0sNote: Correction for explanation of +1Optimal Code And LeetCode0s
-
Strings – Question #6 – Valid Palindrome & Almost Palindrome
-
Introducing Linked Lists – Basics and Reverse A Linked List
-
Linked List – Question #7 – M, N Reversals (Medium)
-
Linked List – Question #8 – Merge Multi-Level Doubly Linked List (Medium)
-
Linked List – Question #9 – Cycle Detection (Medium)
-
Stacks – Question #10 – Valid Parentheses (Easy)
-
Stacks – Question #11 – Minimum Brackets To Remove (Medium)
-
Queues – Question #12 – Implement Queue With Stacks (Easy)
-
Recursion (Sorting and Hoare’s QuickSelect) – Question #13 – Kth Largest ElementIntroducing Recursion0sOptional: Tail Recursion0sSorting0sInterview Question #13 – Kth Largest Element0sInsights From Quick Sort0sUnderstanding Divide And Conquer0sCoding Quicksort Into Our Solution0sWhat Is Hoare’s Quickselect Algorithm?0sCoding Our Solution With Quickselect0sCorrection About Time ComplexityExercise: Imposter Syndrome0s
-
Recursion (Binary Search) – Question #14 – Start And End Of Target (Medium)
-
Binary Trees – Question #15 – Maximum Depth Of Binary Tree (Easy)
-
Binary Trees – Question #16 – Level Order Of Binary Tree (Medium)
-
Binary Trees – Question #17 – Right Side View of Tree (Medium)
-
Full & Complete Binary Trees – Question #18 – Number Of Nodes In Complete Tree
-
Binary Search Tree – Question #19 – Validate Binary Search Tree (Medium)
-
Heaps & Priority Queues
-
Intro To 2D-Arrays – Basics & Traversal Algorithms
-
2D-Arrays – Question #20 Number Of Islands (Medium)
-
2D-Arrays – Question #21 Rotting Oranges (Medium)
-
2D-Arrays – Question #22 – Walls And Gates (Medium)
-
Intro to Graphs – Representation & Traversal Algorithms
-
Graphs – Question #23 – Time Needed to Inform All Employees (Medium)
-
Graphs – Question #24 – Course Scheduler (Medium)
-
Graphs – Question #25 – Network Time Delay (Medium)Question #25 – Network Time Delay0sThinking About How To Approach The Problem0sGreedy Method & What Is Dijkstra’s Algorithm?0sThinking About A Solution With Dijkstra’s Algorithm0sCoding Our Solution With Dijkstra0sTime And Space Complexity Of Our Solution0sThinking About Negative Weights0sWhat is The Bellman-Ford Algorithm? – Conceptualizing Dynamic Programming0sWhat is The Bellman-Ford Algorithm? – The Algorithm Itself0sCoding Our Solution With Bellman-Ford0s
-
Dynamic Programming – Question #26 – Minimum Cost Of Climbing Stairs (Easy)Question #26 – Minimum Cost Of Climbing Stairs & How To Approach DP0sUnderstanding & Identifying Recurrence Relation0sFirst Step – Recursive Solution From Recurrence Relation0sNote: Correction to space complexitySecond Step – Memoizing Our Redundant Recursive Calls0sCoding Our Memoization Optimization0sUnderstanding The Bottom Up Approach (Tabulation)0sThird Step – Bottom Up Tabulation0sFourth Step – Bottom Up Optimization0s
-
Dynamic Programming – Question #27 – Knight Probability In Chessboard (Medium)Question #27 – Knight Probability In Chessboard0sThinking About Test Cases To Help Us0sIdentifying The Recurrence Relation0sFirst Step – Recursive Solution From Recurrence Relation0sSecond Step – Memoizing Our Redundant Recursive Calls0sFiguring Out The Logic For Our Bottom Up Solution0sThird Step – Bottom Up Tabulation0sFourth Step – Bottom Up Optimization0sDynamic Programming List
-
Backtracking – Question #28 – Sudoku Solver (Hard)Understanding The Basics Of Backtracking0sQuestion #28 – Sudoku Solver0sLearning The Backtracking Template0sApplying Our Backtracking Template To Sudoku Solver Logic0sCoding How To Get Box ID0sSetting Up Our Solution Code0sCoding The Recursive Backtracking Portion Of Our Solution0sThinking About The Space And Time Complexity0s
-
Interface Design – Question #29 – Monarchy
-
Tries – Question #30 – Implement Prefix Trie (Medium)
-
Where To Go From Here
-
Appendix Big OSection Overview0sWhat Is Good Code?0sBig O and Scalability0sO(n)0sO(1)0sExercise: Big O CalculationSolution: Big O Calculation0sExercise: Big O Calculation 2Solution: Big O Calculation 20sSimplifying Big O0sBig O Rule 10sBig O Rule 20sBig O Rule 30sO(n^2)0sBig O Rule 40sBig O Cheat Sheet0sWhat Does This All Mean?0sO(n!)0s3 Pillars Of Programming0sSpace Complexity0sExercise: Space Complexity0sExercise: Twitter0sSection Summary0s
-
Appendix: Arrays
-
Appendix: Hash Tables
-
Appendix: Linked Lists
-
Appendix: Stacks + Queues
-
Appendix: Trees
-
Appendix: Searching + BFS + DFS
-
Appendix: Recursion
-
Appendix SortingSorting Introduction0sThe Issue With sort()0sSorting Algorithms0sBubble Sort0sExercise: Bubble SortSolution: Bubble Sort0sSelection Sort0sExercise: Selection SortSolution: Selection Sort0sDancing Algorithms0sInsertion Sort0sExercise: Insertion SortSolution: Insertion Sort0sMerge Sort and O(n log n)0sExercise: Merge SortSolution: Merge Sort0sQuick Sort0s
-
BONUS SECTION
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, Meta, 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.
What's included
- 36.5 hours on-demand video
- 21 articles
- 3 downloadable resources
- Access on mobile and TV
- Certificate of completion