Open-source project
mtdvio/every-programmer-should-know avatar
mtdvio/every-programmer-should-know

Every Programmer Should Know: a link list with no order and no code

GitHub describes it as A collection of (mostly) technical things every software developer should know about. The metadata lists the CC-BY-4.0 license. This article stays within the project description and details documented in the GitHub repository README.

100,494 stars8,766 forksUnknownCC-BY-4.0

At a glance

What is it?
The repository holds one README, a licence file and a contribution guide, and the README is a categorised set of links to other people's articles, courses and papers. The author labels it highly opinionated and not backed by science, and the last commit to master landed on 2025-12-29.
Who is it for?
Use this list as a directory when you already know the topic you want to read about, and read its coverage as one person's judgement rather than a syllabus: the author says outright that it is opinionated and not backed by science, and no heading carries a ranking. Two things to check before you rely on it.
Can I use it commercially?
Yes, with credit. CC-BY-4.0 allows commercial use as long as you credit the authors and indicate what you changed. It is written for creative content, so check how it applies to any code.
Is it still maintained?
Activity is slowing. The repository last received commits 9 months ago.
What is it written in?
GitHub does not report a main language for this repository.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The repository is one README, a licence file and a contribution guide

Four entries sit at the top level: .github/, CONTRIBUTING.md, LICENSE and README.md. There is no package manifest, no build script, no test suite and no source directory, and the project publishes no GitHub releases. Everything a reader gets is the text of a single README, under CC-BY-4.0, on the master branch.

Consequence for a reader is that there is nothing to install and nothing that breaks in a way you would notice. A repository of links has exactly one failure mode, a destination that stops resolving, and nothing in the tree checks for it. The last commit to master landed on 2025-12-29, and no entry carries a date saying when its link was last confirmed.

The author calls the list highly opinionated and not backed by science

Those two lines sit directly under the title, ahead of any category, and they are the honest framing for everything below them. The collection is offered as resources the author can recommend to every programmer regardless of skill level or tech stack. Nothing claims consensus, nothing claims coverage, and the file says the entries come in no particular order.

Consequence: a heading you have never heard of is a gap in one person's reading rather than an oversight you can report. A contributor answering the invitation at the bottom of the file is adding something they found useful, which is a different filter from editorial coverage, and the file sets out no rule for when an entry does not belong.

Eighteen headings, no order, and a note that you need none of it by heart

The headings run from Introduction through Falsehoods, Algorithms, Data Structures, Numbers, Strings, Latency, Time, Memory, Distributed Systems, Machine Learning, RegExp, Security, UX/Usability and SEO. Introduction holds four orientation links: a Map of Computer Science video, a computer science explainer in layman's terms, a Computer Science Roadmap, and a community-driven roadmaps repository. Falsehoods holds one entry, Awesome Falsehoods, described there as a curated list covering Strings, Addresses, Names, Numbers, Emails, Timezones and Dates.

Consequence: the collection cannot be walked. The file says the entries come in no particular order and adds that you do not need to know all of it by heart to be a programmer, which is friendly and also removes any starting point. You pick topics from the bug in front of you, not from a position in the document.

Security carries nine links and machine learning carries one

Security is the thickest section. It holds Secure Programming, an essay on rolling your own crypto, Cryptographic Right Answers, Paragon's open letter to developers about cryptography, Foundations of Security, the OWASP Top 10 described in the file as the gold standard for web application vulnerabilities, Portswigger Academy for practical labs, Google Gruyere for web application exploits and defenses, and a post on hashing, encryption and encoding. Machine Learning holds a single line, Andrew Ng's machine learning specialisation on Coursera.

Consequence: the ratio is the signal worth reading. Someone arriving with a web application gets labs and a vulnerability list to work through, while someone starting a model gets one course and no book, no paper and no repository. Treat the section sizes as a picture of what the author has actually used rather than as a verdict on how much each topic deserves.

Distributed systems leans on two PDFs, two books and one Queue essay

Six entries carry that heading. Two are books, Understanding Distributed Systems and Designing Data-Intensive Applications. Two arrive as PDF: a keynote on designs, lessons and advice from building large distributed systems, and Fallacies of Distributed Computing Explained. One is the work on time, clocks and the ordering of events in a distributed system, reached through a Microsoft research page. The last is There is No Now in ACM Queue, and Jepsen is offered as a tag page to follow rather than as one write-up.

Consequence: the strongest entries in the section are the least convenient ones. Three of the six are long documents written for readers who already have the vocabulary, so a first meeting with partial failure or ordering means reading past terminology before the argument even starts.

Latency is two links, and neither one carries a date

That section is deliberately short. One link is the interactive latency research page hosted at Berkeley, the other is the Latency Numbers Every Programmer Should Know gist. Neither is annotated in the file, and no revision, publication date or refresh note appears beside either of them.

Consequence: a table of human perception thresholds and hardware latencies is only useful while it is current, and nothing in the list tells you how old the numbers in front of you are. The same gap runs through Memory and Time, where the entries are a LWN article, a set of notes on time from unix4lyfe.org and a video on the problem with timezones, all undated here. Read the list as a set of starting points and check the date on whatever you land on.

The first thing in the file is a quiz advertisement, not a resource

Above the title sits a banner linking to mylevel.dev, with utm_source, utm_medium and utm_campaign on the URL, the line offering to measure your software developer level against a cross-industry benchmark in ten minutes, a call to take a free quiz for instant results with no email submission required, and a note that it was created by the repo author. Everything below that banner is the reading list itself.

Consequence: any mirror, PDF export or slide that copies the top of this README carries a marketing link with tracking parameters attached. That is a small thing for a reader and a real one for anyone republishing the list, and it is also the only element in the file that is not about the subject matter.

Editorial conclusion

Use this list as a directory when you already know the topic you want to read about, and read its coverage as one person's judgement rather than a syllabus: the author says outright that it is opinionated and not backed by science, and no heading carries a ranking. Two things to check before you rely on it. A link to a course, a gist or a paper can rot without the repository noticing, since there is no code here whose failure would show up. And the machine learning section holds a single course link while security holds nine, so anyone starting in machine learning finds far less to work through. For anything you intend to build on, follow the link and read the source.

Frequently asked questions

What is every-programmer-should-know about?

It is a collection of mostly technical things every software developer should know, offered as resources the author can recommend regardless of skill level or tech stack. The entries are grouped under headings from Algorithms and Strings through Latency, Memory, Distributed Systems and Security, and the file says they come in no particular order.

What does the every-programmer-should-know repository actually contain?

Four entries at the top level: a .github directory, CONTRIBUTING.md, LICENSE and README.md. The README is the whole project, a categorised list of links to other people's material, and the file states that it is highly opinionated and not backed by science.

Is the every-programmer-should-know list still being updated?

The last commit to the master branch landed on 2025-12-29, the project is not archived, and it publishes no GitHub releases. Since no code lives here, no build or test would tell you when one of the linked pages has moved.

Does every-programmer-should-know tell me what order to learn things in?

No, and the file is upfront about it. The entries come in no particular order, and a note at the top says you do not need to know all of it by heart to be a programmer. Contributions are invited through CONTRIBUTING.md.

Official sources

  1. Official README
  2. Project repository