Skip to content

My personalised coding study plan. Week 16/16 πŸ§‘β€πŸ’»

Notifications You must be signed in to change notification settings

ramirorichmand/RR10_MyStudyPlan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

17/05/23 RR10 My Study Plan πŸ€“πŸ“š

Banner

Coding Preparation Plan

This is my coding preparation plan that I hope to follow during the time frame. Many things were adopted from other interview prep guides, some were suggested by more experienced coders. Everything was then customised according to my knowledge and experience.

Time frame: ~5 months (mid May - October)

Goal: Hone my programming skills, improve Java knowledge, and solve complex problems to become a more proficient and confident coder πŸš€πŸ’»

Table of Contents

Upcoming Projects 🎯

  • RR15: Unconfirmed Title (Work in Progress 🚧)

My Timetable πŸ“…

Week 1 beginning 21/05/23:
# Problem Name Difficulty Estimated Time Topic
1 Two Sum Easy 15 mins Array
2 Valid Parentheses Easy 20 mins Stack
3 Merge Two Sorted Lists Easy 20 mins Linked List
4 Best Time to Buy and Sell Stock Easy 20 mins Array
5 Valid Palindrome Easy 15 mins String
6 Invert Binary Tree Easy 15 mins Binary Tree
7 Valid Anagram Easy 15 mins String
8 Binary Search Easy 15 mins Binary Search
9 Flood Fill Easy 20 mins Graph
10 Maximum Subarray Medium 20 mins Dynamic Programming
11 Lowest Common Ancestor of a Binary Search Tree Easy 20 mins Binary Search Tree
12 Insert Interval Medium 25 mins Array
13 01 Matrix Medium 30 mins Graph
14 K Closest Points to Origin Medium 30 mins Heap
15 Balanced Binary Tree Easy 15 mins Binary Tree
Week 2 beginning 28/05/23:
# Problem Name Difficulty Estimated Time Topic
1 Linked List Cycle Easy 20 mins Linked List
2 Implement Queue using Stacks Easy 20 mins Stack
3 First Bad Version Easy 20 mins Binary Search
4 Ransom Note Easy 15 mins Hash Table
5 Longest Substring Without Repeating Characters Medium 30 mins String
6 3Sum Medium 30 mins Array
7 Binary Tree Level Order Traversal Medium 20 mins Binary Tree
8 Clone Graph Medium 25 mins Graph
9 Evaluate Reverse Polish Notation Medium 30 mins Stack
10 Course Schedule Medium 30 mins Graph
11 Implement Trie (Prefix Tree) Medium 35 mins Trie
12 Coin Change Medium 25 mins Dynamic Programming
Week 3 beginning 04/06/23:
# Problem Difficulty Estimated Time Topic
1 Product of Array Except Self Medium 30 mins Array
2 Climbing Stairs Easy 20 mins Dynamic Programming
3 Longest Palindrome Easy 20 mins String
4 Min Stack Medium 20 mins Stack
5 Reverse Linked List Easy 20 mins Linked List
6 Validate Binary Search Tree Medium 20 mins Binary Search Tree
7 Number of Islands Medium 25 mins Graph
8 Rotting Oranges Medium 30 mins Graph
9 Search in Rotated Sorted Array Medium 30 mins Binary Search
10 Combination Sum Medium 30 mins Array
11 Permutations Medium 30 mins Recursion
12 Merge Intervals Medium 30 mins Array
Week 4 beginning 11/06/23:
# Problem Difficulty Estimated Time Topic
1 Lowest Common Ancestor of a Binary Tree Medium 25 mins Binary Tree
2 Time Based Key-Value Store Medium 35 mins Binary Search
3 Minimum Window Substring Hard 30 mins String
4 Serialize and Deserialize Binary Tree Hard 40 mins Binary Tree
5 Trapping Rain Water Hard 35 mins Stack
6 Find Median from Data Stream Hard 30 mins Heap
7 Majority Element Easy 20 mins Array
8 Add Binary Easy 15 mins Binary
9 Diameter of Binary Tree Easy 30 mins Binary Tree
10 Middle of the Linked List Easy 20 mins Linked List
Week 5 beginning 18/06/23:
# Problem Difficulty Estimated Time Topic
1 Accounts Merge Medium 30 mins Graph
2 Sort Colors Medium 25 mins Array
3 Word Break Medium 30 mins Trie
4 Partition Equal Subset Sum Medium 30 mins Dynamic Programming
5 String to Integer (atoi) Medium 25 mins String
6 Spiral Matrix Medium 25 mins Matrix
7 Subsets Medium 30 mins Recursion
8 Binary Tree Right Side View Medium 20 mins Binary Tree
9 Longest Palindromic Substring Medium 25 mins String
10 Word Ladder Hard 45 mins Graph
Week 6 beginning 25/06/23:
# Problem Difficulty Estimated Time Topic
1 Basic Calculator Hard 40 mins Stack
2 Maximum Profit in Job Scheduling Hard 45 mins Binary Search
3 Merge k Sorted Lists Hard 30 mins Heap
4 Largest Rectangle in Histogram Hard 35 mins Stack
5 Maximum Depth of Binary Tree Easy 15 mins Binary Tree
6 Contains Duplicate Easy 15 mins Array
7 Unique Paths Medium 20 mins Dynamic Programming
8 Construct Binary Tree from Preorder and Inorder Traversal Medium 25 mins Binary Tree
9 Container With Most Water Medium 35 mins Array
10 Letter Combinations of a Phone Number Medium 30 mins Recursion
Week 7 beginning 02/07/23:
# Problem Name Difficulty Estimated Time Topic
1 Word Search Medium 30 mins Graph
2 Find All Anagrams in a String Medium 30 mins String
3 Minimum Height Trees Medium 30 mins Graph
4 Task Scheduler Medium 35 mins Heap
5 LRU Cache Medium 30 mins Linked List
6 Kth Smallest Element in a BST Medium 25 mins Binary Search Tree
7 Daily Temperatures Medium 30 mins Stack
8 House Robber Medium 25 mins Dynamic Programming
9 Meeting Rooms Easy 20 mins Array
10 Roman to Integer Easy 20 mins Math
11 Backspace String Compare Easy 15 mins Stack
Week 8 beginning 23/07/23:
# Problem Name Difficulty Estimated Time Topic
1 Gas Station Medium 30 mins Array
2 Next Permutation Medium 30 mins Recursion
3 Valid Sudoku Medium 35 mins Matrix
4 Group Anagrams Medium 25 mins String
5 Maximum Product Subarray Medium 30 mins Dynamic Programming
6 Design Add and Search Words Data Structure Medium 35 mins Trie
7 Pacific Atlantic Water Flow Medium 30 mins Graph
8 Remove Nth Node From End of List Medium 20 mins Linked List
9 Shortest Path to Get Food Medium 30 mins Graph
10 Find the Duplicate Number Medium 20 mins Binary
Week 9 beginning 30/07/23:
# Problem Name Difficulty Estimated Time Topic
1 Top K Frequent Words Medium 30 mins Heap
2 Binary Tree Maximum Path Sum Hard 35 mins Binary Tree
3 Maximum Frequency Stack Hard 40 mins Stack
4 Counting Bits Easy 15 mins Binary
5 Longest Increasing Subsequence Medium 30 mins Dynamic Programming
6 Graph Valid Tree Medium 30 mins Graph
7 Course Schedule II Medium 35 mins Graph
8 Swap Nodes in Pairs Medium 25 mins Linked List
9 Path Sum II Medium 25 mins Binary Tree
10 Longest Consecutive Sequence Medium 30 mins Array
Week 10 beginning 06/08/23:
# Problem Name Difficulty Estimated Time Topic
1 Rotate Array Medium 25 mins Array
2 Odd Even Linked List Medium 25 mins Linked List
3 Decode String Medium 30 mins Stack
4 Contiguous Array Medium 30 mins Array
5 Maximum Width of Binary Tree Medium 20 mins Binary Tree
6 Find K Closest Elements Medium 30 mins Heap
7 Longest Repeating Character Replacement Medium 30 mins String
8 Median of Two Sorted Arrays Hard 40 mins Binary Search
9 Same Tree Easy 20 mins Binary Tree
10 Number of 1 Bits Easy 15 mins Binary
11 Longest Common Prefix Easy 20 mins String
Week 11 beginning 13/08/23:
# Problem Name Difficulty Estimated Time Topic
1 Inorder Successor in BST Medium 30 mins Binary Search Tree
2 Jump Game Medium 20 mins Dynamic Programming
3 Add Two Numbers Medium 25 mins Linked List
4 Generate Parentheses Medium 25 mins Recursion
5 Sort List Medium 25 mins Linked List
6 Number of Connected Components in an Undirected Graph Medium 30 mins Graph
7 Minimum Knight Moves Medium 35 mins Graph
8 Subarray Sum Equals K Medium 35 mins Array
9 Asteroid Collision Medium 30 mins Stack
10 Random Pick with Weight Medium 25 mins Math
Week 12 beginning 20/08/23:
# Problem Name Difficulty Estimated Time Topic
1 Kth Largest Element in an Array Medium 30 mins Heap
2 Longest Increasing Path in a Matrix Hard 40 mins Graph
3 Longest Valid Parentheses Hard 35 mins Stack
4 Design In-Memory File System Hard 40 mins Trie
5 Employee Free Time Hard 35 mins Array
6 Single Number Easy 15 mins Binary
7 Palindrome Linked List Easy 20 mins Linked List
8 Move Zeroes Easy 20 mins Array
9 Maximal Square Medium 30 mins Dynamic Programming
10 Rotate Image Medium 25 mins Matrix
Week 13 beginning 03/09/23:
# Problem Name Difficulty Estimated Time Topic
1 Binary Tree Zigzag Level Order Traversal Medium 25 mins Binary Tree
2 Design Hit Counter Medium 30 mins Queue
3 Path Sum III Medium 35 mins Binary Tree
4 Pow(x, n) Medium 20 mins Math
5 Search a 2D Matrix Medium 30 mins Binary Search
6 Largest Number Medium 20 mins String
7 Word Search II Hard 40 mins Graph
8 Alien Dictionary Hard 45 mins Graph
9 Bus Routes Hard 45 mins Graph
Week 14 beginning 10/09/23:
# Problem Name Difficulty Estimated Time Topic
1 Symmetric Tree Easy 20 mins Binary Tree
2 Missing Number Easy 15 mins Binary
3 Decode Ways Medium 25 mins Dynamic Programming
4 Meeting Rooms II Medium 30 mins Array
5 Reverse Integer Medium 25 mins Math
6 Set Matrix Zeroes Medium 25 mins Matrix
7 Reorder List Medium 25 mins Linked List
8 Encode and Decode Strings Medium 25 mins String
9 Cheapest Flights Within K Stops Medium 45 mins Graph
10 All Nodes Distance K in Binary Tree Medium 25 mins Binary Tree
11 Sliding Window Maximum Hard 35 mins Array
Week 15 beginning 17/09/23:
# Problem Name Difficulty Estimated Time Topic
1 Palindrome Number Easy 15 mins Math
2 Convert Sorted Array to Binary Search Tree Easy 20 mins Binary Search Tree
3 Reverse Bits Easy 15 mins Binary
4 Subtree of Another Tree Easy 20 mins Binary Tree
5 Squares of a Sorted Array Easy 20 mins Array
6 3Sum Closest Medium 30 mins Array
7 Rotate List Medium 25 mins Linked List
8 Find Minimum in Rotated Sorted Array Medium 30 mins Binary Search
9 Basic Calculator II Medium 30 mins Stack
10 Combination Sum IV Medium 35 mins Dynamic Programming
11 Insert Delete GetRandom O(1) Medium 20 mins Hash Table
12 Non-overlapping Intervals Medium 20 mins Array
Week 16 beginning 01/10/23:
# Problem Name Difficulty Estimated Time Topic
1 Palindrome Pairs Hard 40 mins String
2 Reverse Nodes in k-Group Hard 35 mins Linked List
3 Sudoku Solver Hard 40 mins Matrix
4 First Missing Positive Hard 35 mins Hash Table
5 N-Queens Hard 40 mins Recursion
6 Smallest Range Covering Elements from K Lists Hard 40 mins Heap

Background πŸ“š

Plan is based on existing preparation guides:

To stay motivated during preparation:

Overview πŸ‘€

The areas I know:

  • Software Development - Back-end & Front-end
  • SQL - Data Analysis

The areas I need to work on:

  • Algorithms & Data Structures (Stacks, Queues, Graphs, Trees, etc.) - 80% of time
  • Object-Oriented Programming (in Java)
  • System Design (Scalability 😏)
  • Dynamic Programming
  • Computer Architecture (Cache, RAM, etc.) - review the course
  • Operating Systems (Processes and Threads, Scheduling) - review the course
  • Computer Networks (especially TCP/IP) - review the course

Plan πŸ“

I have decided to split my plan into two phases (three months each): summer and autumn phases.

First phase: Summer Time 🏝

Time to dedicate:

  • 10 hrs on weekdays, 2 hours on weekends
  • 8 weeks
  • Total: ( 10 + 4 ) x 8 = 112 hrs

Objective: solve > 200 problems on Leetcode! 😎

Programming language chosen: Java

Areas to work on:

  • Algorithms (e.g. sorting)
  • Data Structures (e.g. lists, stacks, queues, hash-map)
  • Graphs (e.g. BFS, DFS)
  • Trees (e.g. BST)
  • Object-Oriented Programming (in C++)
  • Dynamic Programming
  • Mock Interviews - once a month

Where to study:

  • Programming Challenges by Steven Skiena - first 3 chapters (theory only)
  • LeetCode - start from easy Facebook, LinkedIn, Uber, AirBnb, then focus on middle and hard problems
  • InterviewBit - go for another theory from video lectures and problems
  • HackerRank, Codeforces - if time left for contests (to keep being interested in solving problems)
  • Codefights
  • Algorithm Design Canvas - general guides on how to solve algo problems
  • Exercism - fun practice in own time
  • FreeCodeCamp - open-source codebase and curriculum, learn to code for free.
  • Programming Books - πŸ“š freely available programming books
  • Abdul Bari - 🐐
  • Bro Code - coding bootcamps hate him! See how he can teach you to code with this one weird trick...πŸ˜…
  • Neetcode - Try the problem for 10-15 minutes, watch the first (theory) part of the video solution, try the problem again and either solve it or stop after 30 min, then watch the rest of the video for the implementation, then fix your implementation if needed. If you didn’t get it on your own revisit the problem in a few days. Rinse and repeat.
  • Structy - Data Structures & Algorithms made simple
  • takeuforward - Great place to learn data structures, algorithms, most asked coding interview questions, real interview experiences

Comments:

  • Push solved problems to Github for later usage to refresh memory

Second Phase: Autumn Term πŸ‚

Time to dedicate:

  • TBD but less than previous phase due to other commitments
  • 10 hrs on weekdays, 2 hours on weekends
  • 8 weeks
  • Total: ( 10 + 4 ) x 8 = 112 hrs, total: 224 hours (be realistic, 200 hrs will be good too πŸ˜‰)

Objective: solve 100 more Leetcode problems! 😎

Areas to work on:

  • Computer Architecture (Cache, RAM, etc.)
  • Operating Systems (Processes and Threads, Scheduling)
  • Computer Networks (especially TCP/IP)
  • System Design (Scalability uuh, cool)
  • Mock Interviews - once a week (on weekends)
  • Keep solving LeetCode problems + Cracking the Coding Interview

Where to study:

Extra Time ⏰

Everything listed here is optional. Even though it is not that realistic to dedicate time to all these, I will try doing it during rest time at leisure πŸ˜„

Read Books:

Develop own website/landing page:

Improve existing codes:

Complete started courses:

Open Source projects to contribute:

Physical:

  • Buy a whiteboard/glassboard, put it in front of a mirror - good investment

Show Your Support 🀝

Thank you for taking the time to drop by and check out this revised study plan ☺️

If you've liked or found this helpful, please consider giving it a star 🌟 and supporting me on my journey to improve my programming skills and chase my aspirations. I'd love to hear your feedback on this project, so feel free to leave your thoughts and suggestions πŸ“¬

Every contribution counts and is deeply appreciated as I pursue a path of lifelong learning and aim to share meaningful content that connects with as many people as possible 🌎

Thank you again for your support! πŸ™

About

My personalised coding study plan. Week 16/16 πŸ§‘β€πŸ’»

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages