The Developer's Essential Knowledge Base: Every Programmer Should Know
As developers, we're constantly learning. The tech landscape shifts, new paradigms emerge, and it's a challenge to keep up with both the fundamentals and the cutting edge. You often find yourself wondering, "What should I actually know about this?" or "Am I missing a crucial piece of the puzzle?"
That's where the "Every Programmer Should Know" GitHub repository comes in. It’s not a new framework or a library to install. Instead, it's a massive, community-driven index of essential topics—a curated map of the concepts that form the bedrock of modern software development.
What It Does
This repository is a structured collection of links and resources covering a vast array of computer science and software engineering topics. It's organized into clear sections, acting as a high-level syllabus for a well-rounded developer education. You won't find deep dives or tutorials here; instead, you'll find a categorized list of what you need to learn, with links to Wikipedia articles, seminal papers, and authoritative blogs to get you started on each subject.
The categories are comprehensive, including:
- Low-Level Concepts: Number representations, endianness, memory management.
- Hardware: How CPUs actually work, CPU caches, and the memory hierarchy.
- Software Engineering: API design, licensing, and semantic versioning.
- Theory: Algorithms, data structures, and computational complexity.
- Architecture: Scaling, microservices, and system design.
- Prose: Writing good documentation and commit messages.
- ...and many more, from networking and security to real-time systems.
Why It's Cool
The brilliance of this project is in its simplicity and scope. It’s a giant checklist and a compass. For a junior developer, it's an invaluable guide on what to learn next, demystifying the path to seniority. For experienced devs, it's a fantastic spot-check to identify and fill gaps in your knowledge—we all have them.
It's also completely agnostic. The resources aren't tied to a specific programming language or tech stack. The concepts listed are the universal truths of our craft, whether you're writing JavaScript, Rust, or Go. The maintainer and contributors have done the hard work of sifting through the noise to find the most important and foundational resources on each topic.
How to Dive In
Trying it out requires no installation. You don't run it; you read it and explore.
- Head over to the repository: github.com/mtdvio/every-programmer-should-know
- Scroll through the README and the table of contents.
- Find a section that piques your interest or one you've always felt shaky on (for me, it's always been
Floating Point Math & Precision
). - Click the links provided and start reading. That's it.
Treat it like a personal syllabus. Bookmark it and chip away at one topic a week. Use it to build a study group with colleagues. The value comes from the journey of learning, not from the list itself.
Final Thoughts
This isn't a list you need to master from top to bottom. That would be a lifetime's work. Instead, see it as the ultimate reference for the things we often mean to look up but never do. It gives names to concepts you might already understand intuitively and provides a direct path to understanding those you don't. In a world of endless tutorials and hype-driven development, this repo is a refreshingly solid anchor to the core knowledge that truly makes a great software engineer. It's a project you'll keep coming back to, not to see what's new, but to see what's important.
Follow us for more cool projects: @githubprojects