mtdvio /every-programmer-should-know

A collection of (mostly) technical things every software developer should know about

★ 100,641⑂ 8,779👁 2,009⑃ 180● 49▤ 0◈ 0
CC-BY-4.0Created 2017-08-24
100,641
stars
+9+37+115
8,779
forks
2,009
watchers
180
prs
49
issues
0
releases
0
discussions

README

Measure your Software Developer level against a cross-industry benchmark in 10 minutes!

Take a FREE quiz and get instant results - no email submission required
Created by this repo author



 Every Programmer Should Know :thinking:
A collection of (mostly) technical things every software developer should know.

These are resources I can recommend to every programmer regardless of their skill level or tech stack

Highly opinionated :bomb:. Not backed by science.
Comes in no particular order :recycle:



 :star: it and share with a friendly developer!  




P.S. You don't need to know all of that by heart to be a programmer.
But knowing the stuff will help you become better! :muscle:

P.P.S. Contributions are welcome!

----

 Introduction
- :movie_camera: Map of Computer Science
- :movie_camera: 40 Key Computer Science Concepts Explained In Layman’s Terms
- :page_facing_up: Computer Science Roadmap
- :page_facing_up: Community-driven Roadmaps for Developers

 Falsehoods
- Awesome Falsehoods
  💊 Curated list of falsehoods programmers believe in.
  Check for things you do not know about Strings, Addresses, Names, Numbers, Emails, Timezones and Dates and more.

 Algorithms
- Big O Cheatsheet
- :book: Computer Science Distilled
- :book: Grokking Algorithms
- :book: Introduction to Algorithms
- Algorithms Visualization
- Algorithms for Competitive Programming

 Data Structures
-  📖 Hello Algo
- :movie_camera: UC Berkeley, Data Structures Course
- Foundations of Data Structures - EDX
- Data Structures - Coursera
- Mathematics for Computer Science - Eric Lehman

 Numbers
- :book: How to Count
- :page_facing_up: Floating Point Guide
- :page_facing_up: What Every Computer Scientist Should Know About Floating-Point Arithmetic
- :page_facing_up: Basic Number Theory Every Programmer Should Know...

 Strings
- :page_facing_up: Unicode and Character Sets
- Homoglyphs
- Unicode Common Locale Data Repository
- :movie_camera: ASCII
- :movie_camera: UTF-8

 Latency
- Interactive Latency Infographics
- :page_facing_up: Latency Numbers Every Programmer Should Know

 Time
- :page_facing_up: Some notes about time
- :movie_camera: The Problem with Timezones

 Memory
- :page_facing_up: What every Programmer should know about memory

 Distributed Systems
- :book: Understanding Distributed Systems
- :book: Designing Data-Intensive Applications
- :scroll: Designs, Lessons and Advice from Building Large Distributed Systems
- :scroll: Time, Clocks and the Ordering of Events in a Distributed System
- :page_facing_up: There is No Now
- :page_facing_up: Jepsen: how different databases behave under partition
- :scroll: Fallacies of Distributed Computing Explained

 Machine Learning
- :school: Andrew NG Machine Learning Specification Class

 RegExp
- :link: RegexHQ
- :link: Learn regex the easy way
- :link: Regex Crossword

 Security
- :book: Security Programming
- :page_facing_up: Rolling Your Own Crypto
- :page_facing_up: Cryptographic Right Answers
- :page_facing_up: An Open Le

Top issues

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON