Back to Blog
Learning

Data Structures & Algorithms: My Learning Journey

View Repository on GitHub

Why This Repository Exists

Every developer reaches a point where they realize that knowing a framework isn't enough. The fundamentals — data structures and algorithms — are what separate someone who builds things from someone who builds things well. This repo is my study journal.

What's Inside

Data Structures

  • Arrays & Strings — manipulation, sliding window, two-pointer techniques
  • Linked Lists — singly linked, doubly linked, cycle detection
  • Stacks & Queues — balanced parentheses, min stack, queue using stacks
  • Trees — binary search trees, traversals (inorder, preorder, postorder), tree balancing
  • Graphs — adjacency lists, BFS, DFS, shortest path algorithms
  • Hash Maps — collision handling, frequency counting, two-sum patterns

Algorithms

  • Sorting — bubble, merge, quick, heap sort with Big-O comparisons
  • Searching — binary search, search in rotated array
  • Dynamic Programming — memoization patterns, coin change, longest subsequence
  • Recursion — backtracking, permutations, subsets

How I Organized It

Each topic gets its own directory with:

  1. A README explaining the concept
  2. Implementation files with commented code
  3. Test cases covering edge cases
  4. Complexity analysis (time and space)

My Study Approach

I followed a structured path:

  1. Understand the theory — read about the data structure, draw diagrams
  2. Implement from scratch — no libraries, just raw implementation
  3. Solve 5–10 problems — LeetCode/HackerRank problems using that structure
  4. Write notes — what patterns did I notice? What tripped me up?

Key Insight

The biggest revelation was that most interview problems are variations of the same ~15 patterns. Once you internalize patterns like sliding window, two pointers, BFS/DFS, and dynamic programming, you can decompose almost any problem.

Who This Is For

If you're a self-taught developer (like me) preparing for technical interviews, this repo might help. It's not a textbook — it's a working journal with real code and honest notes about what was confusing.

View on GitHub →