30-Day Python Algorithms Learning Plan
Week 1: Fundamentals & Data Structures
Goal: Build a strong base with Python syntax and core data structures.
● Day 1-2: Python basics recap (variables, loops, functions, conditionals)
● Day 3-4: Lists & arrays – slicing, sorting, searching
● Day 5: Dictionaries & sets – use cases and basic operations
● Day 6: Tuples, stacks, queues (implement with lists and `deque`)
● Day 7: Practice 5 beginner problems (HackerRank or LeetCode “Easy”)
Week 2: Basic Algorithms
Goal: Understand simple and classic algorithm types.
● Day 8: Sorting – bubble, selection, insertion
● Day 9: Sorting – merge sort, quick sort (with visualization)
● Day 10: Searching – linear and binary search
● Day 11: Recursion intro – factorial, Fibonacci
● Day 12: Practice 5 problems involving recursion and searching
● Day 13: Use Python Tutor to visualize recursion
● Day 14: Review and mini quiz (make flashcards or quiz yourself)
Week 3: Intermediate Algorithms
Goal: Learn slightly advanced ideas and real problem solving.
● Day 15: Hashing and frequency counting
● Day 16: Two-pointer technique & sliding window
● Day 17: Backtracking (n-queens, permutations)
● Day 18: Intro to Dynamic Programming (Fibonacci with memoization)
● Day 19: DP – Climbing stairs, coin change
● Day 20: Practice 5 problems (LeetCode Easy-Medium)
● Day 21: Review and create summary notes
Week 4: Applications & Practice
Goal: Solidify understanding through application and review.
● Day 22: Trees and traversal (inorder, preorder, postorder)
● Day 23: Graphs – BFS and DFS (with examples)
● Day 24: Pathfinding (shortest path in a maze using BFS)
● Day 25: Sorting algorithm comparisons (which to use when)
● Day 26-27: Build a mini project (e.g., Sudoku solver, maze pathfinder)
● Day 28: Timed quiz/practice session (simulate coding interview)
● Day 29: Review weak spots & revisit difficult problems
● Day 30: Celebrate! Summarize what you’ve learned & plan next goals
Tips for Success
● Daily Time: Just 1–1.5 hours daily is enough if consistent.
● Tools: Use LeetCode, PythonTutor.com, and a notebook for handwritten tracing.
● Mindset: Focus on understanding _why_ each step works, not just copying code.