The document outlines a 30-day programming study plan covering topics such as time complexity, data structures, algorithms, and system design. It includes learning objectives, practice problems, and resources for each topic, emphasizing daily commitment and revision. Additionally, it suggests engaging in mock contests and seeking help from online forums for better understanding and preparation.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0 ratings0% found this document useful (0 votes)
7 views5 pages
scribd
The document outlines a 30-day programming study plan covering topics such as time complexity, data structures, algorithms, and system design. It includes learning objectives, practice problems, and resources for each topic, emphasizing daily commitment and revision. Additionally, it suggests engaging in mock contests and seeking help from online forums for better understanding and preparation.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 5
Day 1-2: Basics of Programming
Learn
« Time Complexity and Space Complexity
+ Big-O Notation
Practice
+ Analyze the time complexity of simple programs.
Resources
+ “Introduction to Algorithms” by Cormen (Chapter 1 on complexity)
+ Online videos on Big-O
Day 3-4: Arrays and Strings
Topics
+ Basics
+ Sliding window
+ Two-pointer techniques
Problems
+ Find the maximum sum subarray (Kadane's Algorithm)
+ Two Sum Problem
+ Longest Substring Without Repeating Characters
Practice Sites
+ LeetCode
+ HackerRank
+ GeeksforGeeks
Day 5: Sorting Algorithms
Learn
+ Bubble, Selection, Insertion, Merge, Quick Sort
Practice
+ Implement sorting algorithms and understand time complexity.
+ Focus on Merge Sort and Quick Sort.
Day 6-7: Linked Lists
Topics
+ Singly, Doubly, and Circular Linked Lists
Problems
+ Reverse a Linked List
+ Detect a Cycle in a Linked List (Floyd's Algorithm)
« Merge Two Sorted Linked ListsFocus
Explore recursion, stacks, queues, and hashmaps.
Day 8-9: Recursion and Backtracking
Learn
« Basics of recursion, its stack behavior.
Problems
+ Factorial
« Fibonacci numbers
« Subset Sum Problem
« N-Queens Problem
Tip
Write and dry-run recursive calls
Day 10-11: Stacks and Queues
Topics
+ Implement stacks and queues using arrays and linked lists.
Problems
« Next Greater Element
+ Valid Parentheses
* Implement a Queue using Two Stacks
Day 12-13: Hashmaps and Hashing
Leam
+ Use cases, collision handling.
Problems
+ Two Sum (using hashmaps)
+ Subarray Sum Equals K
+ Longest Consecutive Sequence
Day 14: Practice Problems
Solve 5-10 problems covering arrays, strings, and hashmaps.Focus
Trees, graphs, and advanced algorithms.
Day 15-17: Trees
Topics
« Binary Trees
« Binary Search Trees
Problems
« Inorder, Preorder, Postorder Traversals
« Lowest Common Ancestor (LCA)
+ Validate a Binary Search Tree
Resources
Visualize tree problems on whiteboards or use visualization tools
Day 18-19: Graphs
Topics
- BFS
- DFS
+ Adjacency list/matrix representations
Problems
« Detect a Cycle in a Graph
+ Shortest Path in an Unweighted Graph (BFS)
« Connected Components in a Graph
Day 20-21: Greedy Algorithms
Leam
+ Concept and real-world examples
Problems
« Activity Selection Problem
¢ Minimum Number of Platforms
+ Huffman EncodingFocus
Dynamic Programming (DP) and revision.
Day 22-24: Dynamic Programming
Topics
+ Understand memoization and tabulation.
Problems
« Fibonacci (Top-Down and Bottom-Up).
e 0/1 Knapsack Problem.
« Longest Increasing Subsequence.
Day 25-27: Revision and Mock Contests
Revise
Revise all major topics and solve problems from past contests.
Mock Contests
« Attempt 1-2 timed contests on LeetCode or Codeforces.
Day 28-29: System Design Basics (Optional)
If aiming for top companies, study simple system design concepts.
Focus
* Scalability and common design patterns.
Day 30: Final Revision
Revise
- Your notes, formulas, and common patterns.
Practice
Problems that were challenging for you earlier.Tips for Success
Daily Commitment: Spend 6-8 hours daily, splitting time
between learning and practicing.
Track Progress: Maintain a checklist of completed topics
and problems.
Quality Over Quantity: Focus on understanding problems
deeply rather than solving too many superficially.
Ask for Help: Join forums like LeetCode Discuss or Reddit
to resolve doubts.
Mock Interviews: Pair up with a friend or use platforms like
Pramp.