Every Programmer Should Know: A Developer Reading List
every-programmer-should-know is a curated link collection spanning CS fundamentals, distributed systems, security, and career advice, described by its author as highly opinionated and not backed by science. Reach for it when you want a broad, unranked reading list to raid by topic; skip it if you want a sequenced curriculum instead of pointers to other people's books and talks.
What This Collection Offers
Every Programmer Should Know is a GitHub repository maintained by mtdvio that links out to books, talks, papers, and articles organized into categories like Algorithms, Distributed Systems, Security, Architecture, and Career. The README calls it a personal, opinionated selection rather than a vetted curriculum, and it comes in no particular order.
Key Topics Covered
- ✓A CS-fundamentals cluster: Algorithms, Data Structures, Numbers, Strings, Latency, Time, and Memory, each pointing to books, courses, or reference pages rather than original write-ups.
- ✓A Distributed Systems section linking Designing Data-Intensive Applications, Understanding Distributed Systems, and Lamport's foundational paper on logical clocks and event ordering in distributed systems.
- ✓A Security section built around OWASP Top 10, Portswigger Academy, and cryptography reading like Cryptographic Right Answers and Rolling Your Own Crypto.
- ✓Architecture and Engineering Philosophy sections mixing talks like Simple Made Easy with essays such as No Silver Bullet and Out of the Tar Pit.
- ✓Career, Soft Skills, Remote Work, and Mental Health sections, an unusual mix for a technical list, covering salary data via Levels FYI, negotiation advice, and Awesome Mental Health.
- ✓A Coding Practice Sites section listing platforms including LeetCode, Codeforces, HackerRank, Codewars, and CodeSignal for interview prep.
- ✓A Platform Engineering section, which the README frames as a newer discipline growing out of DevOps and SRE practices to cut cognitive load for developers via self-service tooling.
- ✓A Falsehoods section pointing to Awesome Falsehoods, covering wrong assumptions programmers make about strings, addresses, names, numbers, emails, and timezones.
Who Benefits from This Guide
Every Programmer Should Know suits developers who want a wide net to fish topics out of, someone brushing up on distributed systems one week and reading about salary negotiation the next. Skip it if you want a single, sequenced curriculum: the README's own 'no particular order' means you supply the structure, this collection just supplies the links.
Strengths
- ✓Breadth: one collection spans technical fundamentals (algorithms, distributed systems, security, memory) through career, soft skills, and mental health, categories most technical lists skip.
- ✓Grouped into clear, named sections rather than a flat link dump, so scanning for a topic like Latency or Falsehoods is fast.
- ✓Mixes formats: books, video talks, papers, and interactive tools like Algorithms Visualization and Regex Crossword, not just articles.
- ✓Reusable under CC-BY-4.0, so you can adapt or republish the list itself with attribution.
- ✓Open to community contributions through CONTRIBUTING.md and has attracted significant interest on GitHub.
Considerations Before Diving In
- △No suggested order or difficulty tagging: the README says it 'comes in no particular order,' so beginners have to self-triage what to read first.
- △Self-described as 'highly opinionated' and 'not backed by science': one contributor's judgment call, not a peer-reviewed curriculum.
- △Most entries are a bracketed title and a URL with little to no annotation; only a handful carry a one-line note explaining why the link is there.
- △No tooling to track progress: there's no checklist, tracker, or code in the repo itself, just links, so marking what you've covered is on you.
- △A sponsor plug for the author's own quiz product sits at the top of the README, ahead of the actual collection.
- △Nearly every linked resource is third-party (Goodreads pages, YouTube talks, Medium posts, PDFs), so link rot is a structural risk for a list this size.
Similar Curated Learning Resources
Common Questions
Every Programmer Should Know welcomes beginners but doesn't rank entries by difficulty. The README notes you don't need to memorize everything to be a programmer, so treat it as a wide reference to dip into rather than a first-day curriculum.
Every Programmer Should Know links out to books, talks, papers, articles, and interactive tools like Regex Crossword and Algorithms Visualization, organized into categories from Algorithms and Security to Career and Mental Health.
Every Programmer Should Know does accept contributions, documented through its CONTRIBUTING.md file referenced in the README.
Every Programmer Should Know is licensed under CC-BY-4.0, per its GitHub repository listing, meaning reuse is allowed with attribution to the source.
Every Programmer Should Know is explicitly not ordered by importance; the README states it 'comes in no particular order,' so category placement doesn't indicate priority.
Every Programmer Should Know stays mostly language-agnostic, though it links to language-comparison resources like Learn X in Y Minutes and Hyperpolyglot rather than focusing on one language's syntax.
Best use cases
- •Building a self-study reading list across CS fundamentals by pulling from the Algorithms, Data Structures, Distributed Systems, and Security sections instead of hunting each topic down separately.
- •Prepping for interviews using the Coding Practice Sites section, which puts dozens of judges side by side without you needing to search for each one.
- •Looking up a specific gap, like jumping straight to the Time or Numbers sections when a timezone or floating-point bug hits and you want the canonical explainer.
- •Reading up on career and negotiation topics (salary data, equity basics, job-offer negotiation) in the same place as the technical material.
- •Handing a junior developer the Falsehoods and Practices sections as reading homework instead of writing new onboarding guidance from scratch.
Related repositories
Still deciding about every-programmer-should-know?
One click hands the question to an AI along with this page — see what it says about every-programmer-should-know.
