Skip to content

Repository files navigation

The CS Compendium

Technical interviews are hard. When I started my preparations for them, I was immediately overwhelmed by the sheer breadth of information required. I started documenting everything I was learning and relearning as a quick reference guide. The following is a coverage of topics that one might reasonably expect to encounter in an interview. Please note that this document is geared towards a mid-level to senior backend role.

Much of what is written here is content from across the web. There are many areas that are my own summaries of readings simplified, but ultimately this is more of a compilation of others' writings. I've done my best to retroactively link to sources both for credit and further reading, but this is really just a document for myself and I don't wish to advertise it as anything more. If I got something wrong, tell me about it or submit a pull request.

This is a live document and periodically receives minor updates that add or remove information.

Contents

  1. Data Structures
  2. Algorithms
    • Complexity
    • Algorithm Concepts (Recursion, Memoization)
    • Sliding Window, Prefix Sum, Pattern Matching
    • Divide & Conquer
    • Dynamic Programming
    • Backtracking
    • Greedy
    • Searches (Linear, Binary, Two Pointer, BFS, DFS)
    • Sorts (comparison and non-comparison)
  3. Object Oriented Programming
  4. Multithreading
  5. System Design
    • Methodology & clarification questions
    • Back-of-the-envelope calculations
    • Scaling, caching, load balancing, databases
    • Trade-off comparisons
  6. Design Patterns
  7. Web Design
  8. Database Design
  9. Concepts
  10. Coding Methodology
  11. Problem Takeaways
  12. Additional Links

About

A summary of general information for programming technical interviews.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors