The provided Anki flashcard decks use spaced repetition to help you retain key system design concepts.
Available flashcard decks
System design deck
Core system design concepts, patterns, and principlesDownload System Design.apkg
System design exercises deck
Practice exercises for common system design interview questionsDownload System Design Exercises.apkg
Object oriented design exercises deck
OO design patterns and practice problemsDownload OO Design.apkg
What is Anki?
Anki is a powerful, intelligent flashcard program that uses spaced repetition to optimize your learning. Instead of cramming information, Anki shows you cards at strategically increasing intervals to help move knowledge from short-term to long-term memory.Benefits of spaced repetition
- Efficient learning: Focus on cards you’re about to forget
- Long-term retention: Move knowledge into long-term memory
- Customizable: Adjust intervals based on how well you know each card
- Mobile friendly: Study anywhere with the Anki mobile apps
How to use the flashcard decks
- Download Anki: Get the free Anki app from apps.ankiweb.net
- Download the decks: Click the links above to download the
.apkgfiles - Import into Anki: Double-click the downloaded files or import them through Anki’s File menu
- Study daily: Spend 15-30 minutes each day reviewing cards
- Be honest: Rate your knowledge honestly to get the most out of spaced repetition
What’s covered in each deck?
System design deck
This deck covers fundamental concepts including:- Scalability principles
- Performance vs scalability
- Latency vs throughput
- Availability vs consistency
- CAP theorem
- Consistency patterns
- Availability patterns
- CDNs and caching strategies
- Load balancing
- Database concepts (SQL, NoSQL, sharding, replication)
- Asynchronism and message queues
- Communication protocols
System design exercises deck
Practice questions for designing systems like:- URL shortening service (Bit.ly, Pastebin)
- Social media feeds (Twitter, Facebook)
- Web crawler
- Key-value stores
- Sales ranking systems
- Scalable web applications
Object oriented design exercises deck
Common OO design problems:- Hash maps
- LRU cache
- Call center
- Deck of cards
- Parking lot
- Chat server
Additional coding resources
Interactive Coding Challenges
Looking for resources to help you prep for the coding interview? Check out the sister repo Interactive Coding Challenges, which contains an additional Anki deck:
Tips for effective studying
- Study daily: Even 15 minutes a day is more effective than hour-long sessions once a week
- Focus on understanding: Don’t just memorize - understand the concepts and trade-offs
- Apply what you learn: Try to implement or sketch out systems as you study
- Review regularly: The spaced repetition algorithm works best with consistent daily practice
- Customize your decks: Add your own cards for concepts you find challenging
