explaingit

mtdvio/every-programmer-should-know

Analysis updated 2026-06-20

98,886Audience · developerComplexity · 1/5LicenseSetup · easy

TLDR

A curated list of books, articles, videos, and courses on topics every software developer should know, from algorithms and data structures to distributed systems, security, and architecture.

Mindmap

mindmap
  root((every-programmer))
    Topics covered
      Algorithms
      Distributed systems
      Security
      Architecture
    Resource formats
      Books
      Articles
      Videos
      Courses
    Use cases
      Self-study
      Team onboarding
      Interview prep
    Audience
      Junior devs
      Senior devs
      CS students
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Discover well-regarded books and articles to fill a specific knowledge gap, like distributed systems or floating-point arithmetic.

USE CASE 2

Share a curated set of starting-point resources with a junior team member who wants to level up their fundamentals.

USE CASE 3

Use as a self-study checklist to identify which foundational CS topics you haven't explored yet.

How does it compare?

mtdvio/every-programmer-should-knowopenai/whisperneovim/neovim
Stars98,88699,00699,406
LanguagePythonVim Script
Setup difficultyeasymoderatemoderate
Complexity1/53/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min
Creative Commons attribution licence, free to share and adapt as long as you credit the original author.

In plain English

This is a curated reading list aimed at software developers of any experience level. It collects books, articles, videos, and online courses on topics that the author considers worth knowing for anyone who writes code, organized into broad categories such as algorithms, data structures, distributed systems, security, regular expressions, memory, latency, time, machine learning, architecture, and user experience. The repository itself is not software you install or run, it is a long markdown document of links to external resources, each tagged with an icon indicating whether it is a book, video, article, or paper. The idea is to use it as a reference shelf rather than a course you follow start to finish. The README is highly opinionated and the author notes it is not backed by science, ordered randomly, and that you do not need to know everything on the list to be a programmer. Someone might browse it when they want to fill a gap, find a respected resource on a topic like floating-point arithmetic or distributed-system fallacies, or share starting points with a teammate. Because the project is a collection of links rather than code, there is no traditional tech stack, it is distributed under a Creative Commons attribution licence and accepts contributions through pull requests.

Copy-paste prompts

Prompt 1
I'm a self-taught developer and want to deepen my understanding of how computers handle memory and latency. Which resources from every-programmer-should-know should I start with?
Prompt 2
I'm preparing for a senior engineering interview. Which books and articles in this list cover system design and distributed systems best?
Prompt 3
Which resources in every-programmer-should-know would help me understand floating-point arithmetic and why my decimal calculations are wrong?
Prompt 4
I want to learn about security fundamentals as a developer. What does every-programmer-should-know recommend I read first?

Frequently asked questions

What is every-programmer-should-know?

A curated list of books, articles, videos, and courses on topics every software developer should know, from algorithms and data structures to distributed systems, security, and architecture.

What license does every-programmer-should-know use?

Creative Commons attribution licence, free to share and adapt as long as you credit the original author.

How hard is every-programmer-should-know to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is every-programmer-should-know for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub mtdvio on gitmyhub

Verify against the repo before relying on details.