Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DS&A Notes

An Obsidian vault covering classical data structures, algorithms, and the recurring problem-solving patterns behind most interview / LeetCode-style questions. 42 concept notes, 42 spaced-repetition decks, 380 cards.

The notes are the underlying knowledge, not problem write-ups — LeetCode already owns problem-solving. This is the layer that makes the problems easy.

Open it

  1. Install Obsidian.
  2. Open folder as vault → pick this repo's root.
  3. Obsidian will ask whether to enable community plugins. Say yes.

The two plugins it needs ship with the repo, already configured — nothing to install:

Plugin Why it's needed
Spaced Repetition Turns the decks into a reviewable flashcard queue.
Dataview Powers the auto-generated note lists in the Maps.

Without them the notes still read fine as plain markdown; you just lose the review queue and the Map indexes.

How it's laid out

Two parallel halves, plus an index.

Maps/                     ← start here
  DSA.md                  ← domain root hub
  Data-Structures.md
  Algorithms.md
  Problem-Solving-Patterns.md

Knowledge/DSA/            ← the knowledge (read these)
  Data-Structures/
  Algorithms/
  Problem-Solving-Patterns/

Review/DSA/               ← the flashcards (review these)
  ...one -Deck.md per concept note

Read from Knowledge/, review from Review/. Every concept note has a matching deck, and each deck's frontmatter carries a source: field pointing back at the note it was distilled from. Learn the concept first, then let the cards stop it decaying.

If you're starting from scratch, open Maps/Study-Order.md. It sequences all 42 notes so that each one is readable by the time you reach it — the Maps are a filing system, not a curriculum, and reading them top-to-bottom lands you on Dijkstra before you've met a heap or a graph.

Otherwise start at Maps/DSA.md and navigate down — the Maps carry the full membership list for each cluster.

DSA is a domain. Both trees are keyed by domain at their first level (Knowledge/<Domain>/, Review/<Domain>/), so further domains — System Design, ML Systems, ML — slot in alongside it without anything moving.

Reviewing

With Spaced Repetition enabled, the cards are tagged #flashcards/computer-science/.... Command palette (Ctrl/Cmd-P) → "Spaced Repetition: Review flashcards". It builds a queue and reschedules each card as you grade yourself.

The queue starts empty — no scheduling history is baked in, so every card is fresh for you.

Card format is the plugin's multiline style: question, a lone ? on its own line, then the answer.

Optional: keep your review history out of git

As you review, the plugin writes scheduling comments (<!--SR:...-->) straight into the deck files. If you're tracking this repo in git, that means every review session shows up as dozens of modified files.

Run this once, and git will quietly strip those comments from commits while leaving them on disk, so reviewing never dirties your working tree:

git config filter.stripSR.clean "sed -e '/^[[:space:]]*<!--SR:/d'"

The .gitattributes already points the deck files at this filter; git just won't run a filter it hasn't been told the definition of (clean filters can run arbitrary code, so they deliberately don't survive a clone). Skip it and nothing breaks — your review history simply gets committed along with everything else.

Adding to it

Conventions live in CLAUDE.md — read that before writing notes, especially the -Deck suffix rule, which is load-bearing and not obvious.

A new domain (System Design, ML Systems, …) is three things and no restructuring: a Knowledge/<Domain>/ tree, a mirrored Review/<Domain>/ tree, and a Maps/<Domain>.md root hub. Create them when the first note exists, not before.

Future updates

DS&A is the first domain, not the only one. The layout is deliberately domain-keyed so these can land as peers beside it, with nothing moving:

  • System Design — the classic interview surface: caching, sharding, replication and consistency, queues, rate limiting, the CAP trade-offs. Same shape as here: concept notes that teach the why, decks that stop it decaying.
  • ML System Design — the applied layer. Serving and inference, feature stores, training/serving skew, evaluation and drift. Systems questions that happen to be about models — not ML theory.

Nothing is scaffolded ahead of time; there are no empty folders waiting to be filled. A domain appears the day its first note is written. The recipe is the three steps above, plus an entry in Maps/Study-Order.md once it has enough notes to need a path of its own.

About

Obsidian notes for DSA practice using the SRS plugin

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors