Prepare for FAANG Interview
This goal is a clone of Evgenii Ray' achieved goal.
The reason behind this goal
I want to grow as a specialist in my sphere and live in a 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 the 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 )
- MS Degree in CS
- 5 years of experience in software development (mostly Back-End)
- Successfully accomplished several big projects well-known companies
- Location: Saint-Petersburg
Target Role: Back-End Engineer
Goal Accomplishment Criteria
All parts of preparation are done
Algorithms Overview - Week 1 - Union Find & Time and Space Complexity
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:
- Union Find
- Refresh Last Week
- Regions Cut by slashes - https://leetcode.com/problems/regions-cut-by-slashes/
- Refactor - Regions Cut by slashes
- Upload Solution on GitHub and share in on leet code
- Number of Provinces - https://leetcode.com/problems/number-of-provinces/
- Redundant Connection - https://leetcode.com/problems/redundant-connection/
- Most Stones removed with same row or column - https://leetcode.com/problems/most-stones-removed-with-same-row-or-column/
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
- 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 18-25 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
- Make a sorting comparison table with a Time and Space Complexity
- No need for remembering algorithm implementation, but remember cases 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
- 09 June 2021, 06:42
Don't miss new posts!
Subscribe for the Goal and follow through to its completion