A curated collection of essential resources, tools, problem sets, and roadmaps to help you master Data Structures & Algorithms ,from beginner to competitive programmer.
Cracking DSA is hard. Finding the right resources shouldn't be.
This is a curated directory of the best resources for every stage of your DSA journey, from understanding Big-O to solving hard LeetCode problems and competitive programming. Whether you're prepping for FAANG interviews or building a solid CS foundation, you'll find roadmaps, courses, problem sheets, books, and tools for every level.
- Students β Building a foundation in computer science
- Job Seekers β Preparing for SWE interviews at top companies
- Competitive Programmers β Leveling up on Codeforces, ICPC, and beyond
- Self-taught Developers β Filling gaps in DS/algo knowledge
- Anyone who wants to think more clearly about problem-solving
- Roadmaps β Step-by-step guides from zero to interview-ready
- Books β Classic textbooks and modern interview prep books
- Courses & Videos β Free and paid learning resources
- Problem Sheets β Curated lists by topic and difficulty
- Practice Platforms β Where to practice and compete
- Cheat Sheets β Quick-reference complexity tables and patterns
- Interview Prep β FAANG-specific guides, behavioral tips, system design
- Tools β Visualizers, editors, and extensions
- Roadmaps
- Core Concepts
- Books
- Courses & Videos
- Problem Sheets & Lists
- Practice Platforms
- Topic-wise Resources
- Competitive Programming
- Interview Preparation
- Cheat Sheets & Quick References
- Visualizers & Tools
- Communities & Forums
- Blogs & Newsletters
- GitHub Repositories
- Language-Specific Resources
- System Design (Post-DSA)
- Key Articles & Advice
- Lets Code
- Roadmap.sh - Computer Science
- NeetCode DSA Roadmap
- Striver's DSA Sheet + Roadmap
- FAANG Interview Roadmap - Yangshun
- CP-Algorithms Roadmap
- CS Dojo Beginner Roadmap
- DSA Learning Path - GeeksforGeeks
- The Blind 75 β NeetCode 150 Path
- InterviewBit Learning Track
- Big-O Cheat Sheet
- MIT OpenCourseware - Introduction to Algorithms
- CS50 Complexity Lecture
- Big-O Notation - Khan Academy
- Asymptotic Analysis - GFG
- Visualgo - Visualize DS & Algorithms
- USFCA DS Visualization
- Data Structure Visualizations - David Galles
- OpenDSA
- Grokking Algorithms - Aditya Bhargava
- Data Structures and Algorithms Made Easy - Narasimha Karumanchi
- A Common Sense Guide to Data Structures & Algorithms - Jay Wengrow
- Problem Solving with Algorithms and Data Structures - Miller & Ranum
- Cracking the Coding Interview - Gayle Laakmann McDowell
- Elements of Programming Interviews - Aziz, Lee, Prakash
- Programming Interviews Exposed - Mongan, Kindler, Giguère
- The Algorithm Design Manual - Steven Skiena
- Introduction to Algorithms (CLRS) - Cormen et al.
- Algorithm Design - Kleinberg & Tardos
- Competitive Programming 3 - Steven Halim
- Algorithms - Sedgewick & Wayne
- The Art of Problem Solving (AOPS)
- Competitive Programmer's Handbook - Antti Laaksonen
- Algorithms in Python - Michael T. Goodrich
- Algorithms in Java - Sedgewick & Wayne
- Effective Java - Joshua Bloch
- Modern C++ for Competitive Programming
- MIT 6.006 Introduction to Algorithms
- MIT 6.046J Design and Analysis of Algorithms
- Stanford Algorithms (Coursera)
- Princeton Algorithms Part I & II (Coursera)
- CS50 - Harvard
- Abdul Bari - Algorithms (YouTube)
- William Fiset - Data Structures (YouTube)
- mycodeschool - DS (YouTube)
- Back to Back SWE (YouTube)
- CS Dojo (YouTube)
- NeetCode.io
- AlgoExpert
- Educative.io - Grokking the Coding Interview
- Udemy - Master the Coding Interview - Andrei Neagoie
- InterviewBit
- Striver's A2Z DSA Course
- NeetCode
- Striver / take U forward
- Errichto
- Colin Galen
- Algorithms Live!
- Tushar Roy - Coding Made Simple
- Kevin Naughton Jr.
- Nick White
- ClΓ©ment Mihailescu
- Rachit Jain
- LeetCode Top 75 (Blind 75)
- NeetCode 150
- GFG Top 100 DSA Problems
- Love Babbar DSA Sheet (450 Problems)
- Fraz Sheet (250 Problems)
- Striver's SDE Sheet (191 Problems)
- CSES Problem Set
- LeetCode 75 Study Plan
- InterviewBit Programming Sheet
- GFG Company-wise Problem Sheets
- Codeforces Ladders
- AtCoder Educational DP Contest
- Kattis Problem Archive
- CSES Competitive Programmer's Handbook Problems
- LeetCode Company-tagged Problem Sets
- Lets code
- LeetCode
- HackerRank
- InterviewBit
- AlgoExpert
- CodeSignal
- Pramp (Mock interviews)
- interviewing.io (Anonymous mock interviews)
- GeeksforGeeks Practice
- Exercism
- Project Euler (Math + programming)
- Advent of Code
- Codewars
- Arrays - GFG
- Sliding Window Pattern - NeetCode
- Two Pointers Technique
- String Problems - LeetCode Tag
- Prefix Sum Explainer
- Kadane's Algorithm Visualization
- Linked List - mycodeschool
- Fast & Slow Pointers
- Linked List Problems - LeetCode
- Reverse a Linked List - All Methods
- Stack - Visualgo
- Monotonic Stack Pattern
- Stack Problems - LeetCode
- Queue Problems - LeetCode
- Stacks & Queues - William Fiset
- Binary Trees - Striver
- Binary Search Tree
- DFS & BFS - William Fiset
- Graph Algorithms - cp-algorithms.com
- Trees - LeetCode Tag
- Graph - LeetCode Tag
- Dijkstra's, Bellman-Ford, Floyd-Warshall
- Topological Sort
- Minimum Spanning Tree (Kruskal + Prim)
- DP Roadmap - Striver
- DP Patterns - Leetcode Discuss
- AtCoder Educational DP Contest
- DP - Errichto (YouTube)
- Dynamic Programming - MIT OCW
- DP - LeetCode Tag
- Grid DP, Knapsack, LCS, LIS - GFG
- DP on Trees
- Recursion - mycodeschool
- Backtracking - LeetCode Patterns
- Recursion Visualizer
- Backtracking - NeetCode
- N-Queens, Sudoku Solver, Permutations - GFG
- Sorting Algorithms Visualizer
- Binary Search - Patterns Guide
- Binary Search - LeetCode Tag
- Sorting Algorithms - GFG
- Merge Sort, Quick Sort, Heap Sort Explained
- Binary Search on Answer Technique
- Greedy - GFG
- Greedy - LeetCode Tag
- Activity Selection, Fractional Knapsack, Huffman
- Greedy vs DP - Difference Explained
- Number Theory - cp-algorithms
- GCD, LCM, Sieve of Eratosthenes
- Modular Arithmetic
- Combinatorics Basics - GFG
- Math - LeetCode Tag
- Segment Tree - cp-algorithms
- Fenwick Tree (BIT) - cp-algorithms
- Segment Tree - Errichto
- Lazy Propagation
- Competitive Programmer's Handbook (Free PDF)
- CP-Algorithms.com
- USACO Guide
- Codeforces - How to Start
- A2OJ Ladders
- Tech Interview Handbook - Yangshun
- Coding Interview University - jwasham
- System Design Primer
- Grokking the Coding Interview - Educative
- 14 Patterns to Ace Any Coding Interview
- STAR Method Guide
- System Design Interview - Alex Xu (Book)
- Grokking System Design Interview
- High Scalability Blog
- ByteByteGo Newsletter
- LeetCode Company Tags
- GFG Company Interview Experiences
- Glassdoor Tech Interview Questions
- Levels.fyi (Compensation data)
- Big-O Cheat Sheet
- LeetCode Patterns Cheat Sheet
- Sorting Algorithms Cheat Sheet
- Graph Algorithms Reference
- DP Patterns Summary
- Sliding Window Template
- Binary Search Template
- String Algorithms Reference
- C++ STL Cheat Sheet
- Python DS Cheat Sheet
- Visualgo (Best overall)
- Algorithm Visualizer
- USFCA Visualization
- Recursion Visualizer
- Graph Editor - CSACADEMY
- Sorting Visualizer
- Pathfinding Visualizer - Clement Mihailescu
- Binary Tree Visualizer
- LeetCode Playground
- Replit
- Programiz Online Compiler
- OnlineGDB
- Compiler Explorer (Godbolt)
- Python Tutor (Step-by-step execution)
- r/leetcode
- r/cscareerquestions
- r/algorithms
- r/compsci
- Codeforces Community
- Blind (Tech)
- LeetCode Discuss
- Stack Overflow
- Discord: CS Career Hub
- Discord: NeetCode Community
- Discord: Competitive Programming
- NeetCode Blog
- Algorithms for Competitive Programming
- Codeforces Blog - Tutorials
- GeeksforGeeks
- Towards Data Science - Algorithms
- The Daily Byte - Newsletter
- Quastor Newsletter
- Byte Tank - System Design Newsletter
- SWE Quizzes - Cassidoo Newsletter
- AlgoDaily
- Coding Interview University - jwasham
- System Design Primer - donnemartin
- Tech Interview Handbook - yangshun
- Awesome Algorithms
- The Algorithms (Multi-language)
- NeetCode Solutions
- LeetCode Patterns
- DSA Bootcamp Java - Kunal Kushwaha
- AlgoDS - iiitv
- JavaScript Algorithms - trekhleb
- Python DS - prabhupant
- Python DS Docs
- Python for Competitive Programming - GFG
- Python heapq module
- Python collections module
- Pythonic Patterns for Competitive Programming
- System Design Primer
- Grokking System Design Interview
- ByteByteGo Blog
- High Scalability Blog
- System Design Interview Book - Alex Xu
- Designing Data-Intensive Applications - Martin Kleppmann
- Distributed Systems - Cambridge Notes
- How to LeetCode - Sean Prashad
- How to Get Good at Competitive Programming - Errichto
- From Zero to Codeforces Expert - Blog
- Don't Practice Until You Get It Right. Practice Until You Can't Get It Wrong
- The XY Problem
- Preparing for Tech Interviews - Yangshun
- How I Got Into FAANG - Multiple Experiences
- 14 Patterns to Ace Any Coding Interview
- Cracking the Coding Interview Tips - Gayle McDowell
- Grinding LeetCode - Is It Enough? (Blind discussion)
- Avoiding Interview Burnout - HN Discussion
- The Long Game: Why Patience Beats Hustle
- Learning to Say No (and Focus)
We welcome contributions from the community! Here's how you can help:
- Add a Resource β Found a useful course, sheet, or tool? Submit a pull request!
- Fix Broken Links β Help keep the list current
- Improve Descriptions β Make resources easier to understand
- Suggest Categories β Help us organize better
- Ensure the resource is relevant to DSA or competitive programming
- Provide a working link
- Add a brief description if needed
- Place it in the appropriate category
- Check for duplicates before submitting
If you find this repository valuable and want to support its growth:
- Sponsor this project to help maintain and expand the collection
- Partner with us to feature high quality tools for founders
- Reach out for collaborations and ecosystem partnerships
For sponsorship or partnership inquiries, connect via X:
Avinash Singh
This project is licensed under the MIT License - see the LICENSE file for details.
This repository is maintained by Avinash Singh Special thanks to all contributors who have helped curate and maintain this collection.
- Star this repo to show your support
- Share it with fellow founders and entrepreneurs
- Follow for updates as we add new resources
- Join the discussion in Issues
Made with β€οΈ by Avinash Singh