Prepare for FAANG Interview
The reason behind this goal
I want to grow as a specialist in my sphere and live in the country where I will be socially secured and can rely upon laws which the country has. An opportunity to work in an International company should give me the motivation to explore new things and grow in different areas of IT. To be a successful software developer is to has the ability to do something valuable. Get a job in the international companies which are the top ones in their industry and can give the most relevant experience.
The location where I want to live:
I've decided to move to Canada, Vancouver. I like this city because it has many things that I love.
 Ecology  close to mountains, lakes, fresh air, and ocean.
 Much better social programs in comparison to the USA
 No Guns :)
 IT sector is quite developed, and many famous companies have their branch offices in Canada
 English language  several times I thought about Germany as a relocation country, but I realized that when you move to a new country, you want to be a part of society. This obliges you to learn German inevitably, which I am not ready to invest my time in.
 Close to the USA
Why making this goal public
"Life is for sharing" (c)
As one of the many developers who want to move to another country, I feel the lack of descriptive stories of how people get a job in the FAANG level companies. I hope this "diary" will help me in structuring my preparation process and, in the end, will serve as a plan for people who also want to choose such a path.
Companies I'd like to go for:
 Amazon ( AWS )
 Apple
 Microsoft
Author background:
 MS Degree in CS
 5 years of experience in software development (both FrontEnd and BackEnd)
 Successfully accomplished several big projects wellknown companies
 Location: SaintPetersburg
Target Role: FrontEnd Engineer
Telegram Channel for posting valuable info: https://t.me/frontend_engineer_blog
Helpful Material  ( My plan is to make this section live. I'll add more stuff later )

Algorithms and Data Structures  Topics

Algorithm Analysis  Big O, Time and Space Complexity
 116 videos by Abdul Bari

UnionFind:
 Union Find  Playlist
 Union Find problems I found worth solving:
https://leetcode.com/problems/regionscutbyslashes/
https://leetcode.com/problems/friendcircles/
https://leetcode.com/problems/redundantconnection...
https://leetcode.com/problems/moststonesremoved...
Stack & Queues
Leet code problems:
 Baseball Game  682
 Daily Temperature  739
 Minimum Add to make Parathenses valid  921
 Remove outmost parentheses  1021
 Remove All adjacents duplicates in string  1047
 Minimum remove to make parentheses valid  1249
Divide & Conquer
Recurrent relations:
 video 1825 from here
Recursion:
 https://www.sparknotes.com/cs/recursion/whatisrecursion/section2/
 https://www.youtube.com/playlist?list=PL2_aWCzGMAwLz3g66WrxFGSXvSsvyfzCO
Merge & Quick Sort
Priority Queue, Binary Tree, Heap, Heap Sort
 video 1418 https://www.youtube.com/watch?v=GLIRnUhknP0&list=PLDV1Zeh2NRsB6SWUrDFW2RmDotAfPbeHu&index=
 video by Abdul Bari ( MUST SEE ) https://www.youtube.com/watch?v=HqPJF2L5h9U&list=PLDN4rrl48XKpZkf03iYFlO29szjTrs_O&index=33&t=0s
Binary Search Trees, RedBlack BST, BTrees, AVLTrees
 BTree by Abdul Bari https://www.youtube.com/watch?v=aZjYr87r1b8&list=PLDN4rrl48XKpZkf03iYFlO29szjTrs_O&index=77
 AVL Tree by Abdul Bari https://www.youtube.com/watch?v=jDM6_TnYIqE&list=PLDN4rrl48XKpZkf03iYFlO29szjTrs_O&index=76
 BST playlists by google engineer  https://www.youtube.com/watch?v=JfSdGQdAzq8&list=PLDV1Zeh2NRsB6SWUrDFW2RmDotAfPbeHu&index=24
Hash Tables
 The data structure in pictures series: https://habr.com/ru/post/128017/
 Hash Table playlist: playlist
Graph Theory
General
Leetcode problems:
 https://leetcode.com/problems/findthetownjudge/
 https://leetcode.com/problems/courseschedulei/
 https://leetcode.com/problems/coursescheduleii/
 https://leetcode.com/problems/isgraphbipartite/
 https://leetcode.com/problems/escapealargemaze/
 https://leetcode.com/problems/findeventualsafes...

Other Material:
 https://www.geeksforgeeks.org/datastructures/  Good DS theory
 ttps://www.youtube.com/playlist?list=PLDV1Zeh2NRsB6SWUrDFW2RmDotAfPbeHu  videos on DS topics by Google engineer
 https://leetcode.com/discuss/generaldiscussion/494279/comprehensivedatastructureandalgorithmstudyguide  one of many guides for learning algo and ds
 https://www.educative.io/courses/coderusthackingthecodinginterview  some practical algo questions
Goal Accomplishment Criteria
All parts of preparation are done
Personal resources
Experience, Motivation to go forward, Person, Family
Goal ecological compatibility
This goal is the call of heart :)

Algorithms Overview  Week 1  Union Find & Time and Space Complexity
Be Prepared for War
This is the most important part of my interview preparation and also the most time consuming one. If I am good at this topic, I can pass all interviews easycheesy. Most companies in North America love the algorithmics problems in the interview. Most of them actually from wellknown websites such as LeetCode or HackerRank. But before I start solving problems from these sites, I need to make a "quickrefresher" for myself.Here is a short plan for that:
 Algorithms, Part I  Standford University  Coursera
 Algorithms, Part II  Standford University  Coursera

Union Find  Quick Union Approach  Coursera

Union Find  Quick Find Approach  Coursera

Union Find  Path Compression

Union find videos by Google Engineer

Programming Assignment  Coursera

Analysis of Algorithm  Coursera

Time Complexity by Bari

Algorithms Overview  Week 1.5 Repeat Union Find
It's impossible to keep in the head all the material that you've learned. So, you have to make refreshers regularly. The best way to remember is by applying your knowledge on a practical problem. For that, let's do a problem from LeetCode on Union Find Topic
The task for a step:

Refresh Last Week

Regions Cut by slashes  https://leetcode.com/problems/regionscutbyslashes/

Refactor  Regions Cut by slashes

Upload Solution on GitHub and share in on leet code

Let be friends  https://leetcode.com/problems/friendcircles/

Friends circles  https://leetcode.com/problems/friendcircles/

Redundant Connection  https://leetcode.com/problems/redundantconnection/

Most Stones removed with same row or column  https://leetcode.com/problems/moststonesremovedwithsameroworcolumn/


Algorithms Overview  Week 2  Stack, Queues, Basic Sorting
The second week of the course. Material to learn:
 Stack, Queues
 Sorting algorithms

Stack and Queues

Elementary Sort

Data Structures By Google Engineer  Stack and Queues

Implement Stack and Queue in JavaScript from scratch

Solve 3 Easy LeetCode tasks applying Stack

Solve 3 Easy LeetCode Tasks applying Queues

Algorithms Overview  Week 3  Merge, Quick sort
Continue to review sorting algorithms

Merge Sort

Abdul Bari videos 1825 about Divide and Conquer

Quick Sort

Coursera Week 3 Assignment

Abdul Bari's video on quick sort


Algorithms Overview  Week 3.5  Refresher for Sorting Algorithms
1) Make a sorting comparison table with a Time and Space Complexity
2) No need for remembering algorithm implementation, but remember case for applying each of them. 
Algorithms Overview  Week 4  Priority Queues and Elementary Symbol Tables

Priority Queues  Coursera

Abdul Bari videos about PQ, Heap, Binary Tree

Google Engineer videos about PQ

8 Puzzle  Coursera

Elementary Symbol Table  Coursera

DS Implementation


Algorithms Overview  Week 5  Balanced Search Trees
Work on Tree data structure. I feel like I will spend a little more time on this topic.

Balanced Search Trees

Data Structure Implementation

Abdul Bari  Btree

Abdul Bari  BST


Algorithms Overview  Week 6  HashTables
Work on HashTable

HashTable  Coursera

Symbol Table Applications

Hash Table implementation

Google Engineer playlist


Algorithms Overview Part 1  Finish
Update materials

Algorithms Overview  Week 7  Undirected and Directed graphs
This is the beginning of the second part of the course. Graphs topic is quite a large one. I'll try to cover more information on it to make sure that I understand everything

Undirected Graphs

Directed Graphs

Graph Theory by William Set (5 videos)  https://www.youtube.com/watch?v=eQAm22wjTQ&list=PLDV1Zeh2NRsDGO4qE8yH72HFL1Km93P&index=1

Programming assignment  Word Net

2 Leet code problems on graphs

Implement Graph DS

Implement DFS

Implement BFS


Practice Graph Problems
Repeat theory material by applying it to practical problems from leetcode.

https://leetcode.com/problems/findthetownjudge/

https://leetcode.com/problems/courseschedulei/

https://leetcode.com/problems/coursescheduleii/

https://leetcode.com/problems/isgraphbipartite/

https://leetcode.com/problems/escapealargemaze/

https://leetcode.com/problems/findeventualsafestates/


Algorithms Overview  Week 8  Minimum Spanning Trees, Shortest Paths

Minimum Spanning Trees

Shortest Paths

Programming Assignment  Seam Carving

Compute Minimum Spanning Tree

https://leetcode.com/problems/networkdelaytime/

https://leetcode.com/problems/cheapestflightswithinkstops/


Algorithms Overview  Week 9  Maximum Flow and minimum Cut, Radix Sort

Maximum Flow and Minimum Cut

Radix Sort

Programming Assignment  Baseball Illumination


Algorithms Overview  Week 10  Tries & substring search

Tries

Substring search

Programming Assignment  Boggle

2 Leetcode problems on topic


Algorithms Overview  Week 11  Regular expressions & Data Compression

Regular expressions

Data Compression

Programming Assignment  BurrowsWheeler


Algorithms Overview  Week 12  Reductions, Linear Programming, Intractability

Reductions

Linear Programming

Intractability


Algorithms Overview  Finish
Party !)

Leetcode Preparation  Week 0  Arrays
 54 Spiral Matrix
 941 Valid mountain array
 1089 Duplicate Zeros
 48 Rotate Image
 73 Set Matrix Zeros
 283 move яeroes
 485. Max consecutive ones
 905. Sort Array By Parity
 487. Max Consecutive Ones II
 88. Merge Sorted Array
 448. Find All Numbers Disappeared in an Array
 977.Squares of Sorted array
 1299. Replace Elements with Greatest Element on Right Side
 287. Find the duplicate number
 79. Word Search
 442. Find duplicates numbers

Cracking Code Interview  Introduction

Checkout https://leetcode.com/explore/featured/card/funwitharrays/

Leetcode Preparation  Part 1  Two Pointers & Sliding Window
1. (1) Two Sum
2. (83) Remove duplicates from sorted list
3. (833)  Backspace string compare
4. (977)  Squares of a sorted array
5. (167)  Two Sum input array is sorted
6. 3Sum  усложнение задачи two sum.
7. 3SumClosest
8. 713  Subarray products less than K
9. 209  Minimum Size subarray Sum
10. 424  Longest Repeating character replacement
11. 3.  Longest Substring without repeating character
12. 159  Longest Substring with at most 2 distinct characters
13. 340  Longest Substring with at most 2 distinct characters
14. 904. Fruit Into Baskets
15. 567  Permutations
16. 11  Container with a most water
17. 75  Sort Colors
18. 763  Partition labels

Two Pointers problem from https://seanprashad.com/leetcodepatterns/


Leetcode Preparation  Part 2  Fast & Slow Pointers  Inplace Linked List reversal
 707. Design Linked List
 141. Linked List Cycle
 142. Linked List Cycle II
 876. Middle of the Linked List
 2. Add Two Numbers
 21. Merge Two Sorted Lists
 430. Flatten a Multilevel Doubly Linked List
 206. Reverse Linked List
 143. Reorder list
 160. The intersection of Two Linked Lists
 19. Remove Nth Node From End of List
 203. Remove Linked List Elements
 234. Palindrome Linked List
 138. Copy List with Random Pointer
 24. Swap Nodes in Pairs

Leetcode Preparation  Part 3  Modified Binary Search
 704. Binary Search
 278. First Bad Version
 374. Guess Number Higher or Lower
 162. Find Peak Element
 69. Sqrt(x)  необычное применение бинпоиска
 50. Pow(x,n) 
 349. The intersection of Two Arrays
 350. The intersection of Two Arrays II
 34. Find First and Last Position of Element in Sorted Array
 74. Search a 2D Matrix
 240. Search a 2D Matrix II
 152. Find peak element
 852. Peak Index in a Mountain Array
 744. Find the smallest letter greater than the target
 153. Find Minimum in Rotated Sorted Array
 154. Find Minimum in Rotated Sorted Array II
 33. Search in Rotated Sorted Array
 658. Find Closest K elements

Leetcode Preparation  Part 4  Binary Trees & Graph & BFS & DFS & Topological Sort
✅ Binary Trees
 94. Binary Tree Inorder Traversal
 144. Binary Tree Preorder Traversal
 145. Binary Tree Postorder Traversal
✅ DFS
 100. Same Tree
 101. Symmetric Tree
 104. Maximum Depth of Binary Tree
 112. Path Sum
 226. Invert Binary Tree
 230. Kth Smallest Element in a BST
 250. Count Univalue Subtrees
 98. Validate Binary Search Tree
 105. Construct Binary Tree from Preorder and Inorder Traversal
 113. Path Sum II
 572. The subtree of Another Tree
 617. Merge Two Binary Trees
 654. Maximum Binary Tree
 235. Lowest Common Ancestor of a Binary Search Tree
 236. Lowest Common Ancestor of a Binary Tree
 297. Serialize and Deserialize Binary Tree
 437. Path Sum III
 543. The diameter of the Binary Tree
 545. The boundary of Binary Tree
 662. Maximum Width of Binary Tree
✅ BFS
 102. Binary Tree Level Order Traversal
 107. Binary Tree Level Order Traversal II
 103. Binary Tree Zigzag Level Order Traversal
 116. Populating Next Right Pointers in Each Node
 111. Minimum Depth of Binary Tree
 199. Binary Tree Right Side View
 637. Average levels of binary tree
 662. Maximum Width of Binary Tree
 133. Clone Graph
 117. Populating Next Right Pointers in Each Node II
 863. All Nodes Distance K in Binary Tree
✅ Graphs  тут было проще. часть задач уже решал, разминаемся на простеньких:
 802. Find the Eventual Safe States
 997. Find the Town Judge
 743. Network delay time
 785. Is Graph Bipartite?
 787. Cheapest Flight within k stops
✅ Topsort
 207. Course Schedule
 208. Course Schedule II
 209. Graph Valid Tree
 210. Minimum Height Trees
✅ Union Find
 547. friendcircles
 684. redundantconnection
 947. moststonesremoved
 959. regionscutbyslashes
 200. Number of Islands
 323. Number of Connected Components in an Undirected Graph

Leetcode Preparation  Part 5  BST & Trie

Leetcode Preparation  Part 6  Top K elements

Leetcode Preparation  Part 7  Backtracking

Leetcode Preparation  Part 8  Dynamic programming Intro

Leetcode Preparation  Part 9  Top Interview questions

Frontend Preparation + Mock Interviews

Behavioral Interview Preparation

Interview Process
Let the war begin

Amazon Web Services

Facebook

Microsoft

Apple

 749
 02 February 2020, 10:46
Don't miss new posts!
Subscribe for the Goal and follow through to its completion