1

Step 1

Algorithms Overview - Week 1 - Union Find & Time and Space Complexity

03 February—09 February

2

Step 2

Algorithms Overview - Week 1.5 Repeat Union Find

10 February—16 February

3

Step 3

Algorithms Overview - Week 2 - Stack, Queues, Basic Sorting

16 February—23 February

4

Step 4

Algorithms Overview - Week 3 - Merge, Quick sort

24 February—29 February

5

Step 5

Algorithms Overview - Week 3.5 - Refresher for Sorting Algorithms

01 March—04 March

6

Step 6

Algorithms Overview - Week 4 - Priority Queues and Elementary Symbol Tables

09 March—15 March

7

Step 7

Algorithms Overview - Week 5 - Balanced Search Trees

16 March—26 March

8

Step 8

Algorithms Overview - Week 6 - HashTables

27 March—05 April

9

Step 9

Algorithms Overview Part 1 - Finish

06 April—06 April

10

Step 10

Part 2

1

Step 1

Algorithms Overview - Week 1 - Union Find & Time and Space Complexity

03 February—09 February

2

Step 2

Algorithms Overview - Week 1.5 Repeat Union Find

10 February—16 February

3

Step 3

Algorithms Overview - Week 2 - Stack, Queues, Basic Sorting

16 February—23 February

4

Step 4

Algorithms Overview - Week 3 - Merge, Quick sort

24 February—29 February

5

Step 5

Algorithms Overview - Week 3.5 - Refresher for Sorting Algorithms

01 March—04 March

6

Step 6

Algorithms Overview - Week 4 - Priority Queues and Elementary Symbol Tables

09 March—15 March

7

Step 7

Algorithms Overview - Week 5 - Balanced Search Trees

16 March—26 March

8

Step 8

Algorithms Overview - Week 6 - HashTables

27 March—05 April

9

Step 9

Algorithms Overview Part 1 - Finish

06 April—06 April

10

Step 10

Part 2

02 February 2020 01 June 2020

0 3


months
before completion
General

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.

  1. Ecology - close to mountains, lakes, fresh air, and ocean.
  2. Much better social programs in comparison to the USA
  3. No Guns :)
  4. IT sector is quite developed, and many famous companies have their branch offices in Canada
  5. 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.
  6. 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 )
  • Facebook
  • Apple
  • Microsoft

Author background:

  • MS Degree in CS
  • 5 years of experience in software development (both Front-End and Back-End)
  • Successfully accomplished several big projects well-known companies
  • Location: Saint-Petersburg

Target Role: Front-End 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

  1. 1-16 videos by Abdul Bari

------------------------------

Union-Find:

  1. Union Find - Playlist
  2. Union Find problems I found worth solving:

https://leetcode.com/problems/regions-cut-by-slashes/

https://leetcode.com/problems/friend-circles/

https://leetcode.com/problems/redundant-connection...

https://leetcode.com/problems/most-stones-removed-...

Stack & Queues

Leet code problems:

  1. Baseball Game - 682
  2. Daily Temperature - 739
  3. Minimum Add to make Parathenses valid - 921
  4. Remove outmost parentheses - 1021
  5. Remove All adjacents duplicates in string - 1047
  6. Minimum remove to make parentheses valid - 1249

Divide & Conquer

Recurrent relations:

  1. video 18-25 from here

Recursion:

  1. https://www.sparknotes.com/cs/recursion/whatisrecursion/section2/
  2. https://www.youtube.com/playlist?list=PL2_aWCzGMAwLz3g66WrxFGSXvSsvyfzCO

-----------------------------

Other Material:

  1. https://www.geeksforgeeks.org/data-structures/ - Good DS theory
  2. ttps://www.youtube.com/playlist?list=PLDV1Zeh2NRsB6SWUrDFW2RmDotAfPbeHu - videos on DS topics by Google engineer
  3. https://leetcode.com/discuss/general-discussion/494279/comprehensive-data-structure-and-algorithm-study-guide - one of many guides for learning algo and ds
  4. https://www.educative.io/courses/coderust-hacking-the-coding-interview - 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 :)

  1. 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 easy-cheesy. Most companies in North America love the algorithmics problems in the interview. Most of them actually from well-known websites such as LeetCode or HackerRank. But before I start solving problems from these sites, I need to make a "quick-refresher" for myself.

    Here is a short plan for that:

    1. Algorithms, Part I - Standford University - Coursera
    2. Algorithms, Part II - Standford University - Coursera
    1. Union Find - Quick Union Approach - Coursera

    2. Union Find - Quick Find Approach - Coursera

    3. Union Find - Path Compression

    4. Union find videos by Google Engineer

    5. Programming Assignment - Coursera

    6. Analysis of Algorithm - Coursera

    7. Time Complexity by Bari

  2. 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:

    1. Refresh Last Week

    2. Regions Cut by slashes - https://leetcode.com/problems/regions-cut-by-slashes/

    3. Refactor - Regions Cut by slashes

    4. Upload Solution on GitHub and share in on leet code

    5. Let be friends - https://leetcode.com/problems/friend-circles/

    6. Friends circles - https://leetcode.com/problems/friend-circles/

    7. Redundant Connection - https://leetcode.com/problems/redundant-connection/

    8. Most Stones removed with same row or column - https://leetcode.com/problems/most-stones-removed-with-same-row-or-column/

  3. Algorithms Overview - Week 2 - Stack, Queues, Basic Sorting

    The second week of the course. Material to learn:

    • Stack, Queues
    • Sorting algorithms
    1. Stack and Queues

    2. Elementary Sort

    3. Data Structures By Google Engineer - Stack and Queues

    4. Implement Stack and Queue in JavaScript from scratch

    5. Solve 3 Easy LeetCode tasks applying Stack

    6. Solve 3 Easy LeetCode Tasks applying Queues

  4. Algorithms Overview - Week 3 - Merge, Quick sort

    Continue to review sorting algorithms

    1. Merge Sort

    2. Abdul Bari videos 18-25 about Divide and Conquer

    3. Quick Sort

    4. Coursera Week 3 Assignment

    5. Solve 2 LeetCode Problems on sorting

  5. 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.

  6. Algorithms Overview - Week 4 - Priority Queues and Elementary Symbol Tables

    1. Priority Queues - Coursera

    2. Elementary Symbol Table - Coursera

    3. 8 Puzzle - Coursera

    4. DS Implementation

  7. 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.

    1. Balanced Search Trees

    2. Data Structure Implementation

    3. Solve 5 LeetCode problems on Tree topic

  8. Algorithms Overview - Week 6 - HashTables

    Work on HashTable

    1. HashTable - Coursera

    2. Symbol Table Applications

    3. Solve 5 LeetCode Problems on HashTable topic

  9. Algorithms Overview Part 1 - Finish

    Just relax for a few days and prepare for Part 2

  10. Part 2

    Section will be added later

  • 331
  • 02 February 2020, 10:46

Similar goals

Sign up

Signup

Уже зарегистрированы?
Quick sign-up through social networks.
Sign in

Sign in.
Allowed.

Not registered yet?
 
Log in through social networks
Forgot your password?