Skip to content

Learning Roadmap

Your journey from Python novice to algorithm master!

Overview

Phase 1    Phase 2    Phase 3    Phase 4    Phase 5    Phase 6    Phase 7    Phase 8
FOUNDATIONS → DS → ALGORITHMS → ADV DS → PATTERNS → ADV ALGO → CHALLENGES → MASTERY
   2wk        4wk       3wk        3wk       4wk        4wk       ongoing     ongoing

Phase 1: Foundations (2 weeks)

Week 1: Python Basics

  • Variables and data types
  • Strings and string manipulation
  • Lists, tuples, and sets
  • Dictionaries

Week 2: Control Flow & Functions

  • Conditionals (if/elif/else)
  • Loops (for, while)
  • Functions and parameters
  • Error handling

Phase 2: Data Structures (4 weeks)

  • Arrays and Lists
  • Strings
  • Hash Tables
  • Linked Lists
  • Stacks and Queues
  • Trees (Binary, BST, AVL)
  • Graphs (DFS, BFS)

Phase 3: Basic Algorithms (3 weeks)

  • Linear Search
  • Binary Search
  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • Merge Sort
  • Quick Sort
  • Recursion basics

Phase 4: Advanced Data Structures (3 weeks)

  • Heaps (Min/Max)
  • Trie
  • Segment Trees
  • Disjoint Sets (Union-Find)
  • Balanced Trees

Phase 5: Coding Patterns (4 weeks)

  • Sliding Window
  • Two Pointers
  • Fast & Slow Pointers
  • Merge Intervals
  • Cyclic Sort
  • Tree BFS/DFS
  • Subsets
  • Modified Binary Search

Phase 6: Advanced Algorithms (4 weeks)

  • Dynamic Programming
  • Graph Algorithms
  • Greedy Algorithms
  • Backtracking
  • String Algorithms

Phase 7: Challenges (Ongoing)

LeetCode Problems

  • 50+ Easy problems
  • 50+ Medium problems
  • 20+ Hard problems

System Design

  • URL Shortener
  • Rate Limiter
  • LRU Cache

Phase 8: Mastery (Ongoing)

  • Optimize existing solutions
  • Mock interviews
  • Real-world projects
  • Contributing to open source

Progress Tracking

Use PROGRESS.md to track your XP and achievements:

python -m pylab.track

Tips for Success

  1. Consistency over intensity - Code every day, even if just 30 minutes
  2. Understand before memorizing - Focus on concepts, not just solutions
  3. Practice actively - Write code, don't just read it
  4. Review regularly - Revisit topics you've learned
  5. Teach others - Explaining concepts solidifies understanding