The Foundational Joke of Computer Science
Why is this CS Fundamentals meme funny?
Level 1: Two Kinds of People
Imagine you have a friend who speaks in a secret number code. When he says “ten,” he actually means the number two! 🤔 Sounds crazy, right? It’s as if he has only two fingers to count on instead of ten. So one day he announces, “There are 10 types of people in the world.” Everyone else hears, “There are ten types of people,” and thinks he’s about to list a lot of categories. But what he really meant was, “There are two types of people in the world.” Why two? Because in his special way of counting (using only 0s and 1s), the symbols “1-0” represent the quantity 2. So what are these two types of people? According to him, the first group is just normal people who don’t use the secret code. The second group is him – the person who thinks everything should be counted in this funny binary way. It’s like a little prank or puzzle: if you understand his secret counting language, you giggle because you get the joke. If you don’t, you’re left scratching your head until someone explains it. In simple terms, the meme is saying: there are two kinds of people, those who get nerdy number jokes and those who don’t! And the humor comes from how the friend fooled everyone for a moment by saying “10” when he really meant “2.” It’s a playful reminder that sometimes our techie friends literally count things differently, and that can turn an ordinary sentence into a funny surprise.
Level 2: Binary vs Decimal
Let’s break down the nerdiness: binary vs decimal. The meme hinges on the fact that “10” can mean two completely different numbers depending on the number base you use. A number base (or radix) is the number of unique digits, including zero, that a positional numeral system uses to represent values. Decimal is base-10, the system most people use daily, with ten possible digits (0 through 9). Binary is base-2, the system computers use internally, with just two digits (0 and 1). In a positional system, the place of each digit represents powers of the base. So in decimal “10” means (1 \times 10^1 + 0 \times 10^0 = 10). But in binary, “10” means (1 \times 2^1 + 0 \times 2^0 = 2). The string “10” looks the same to the eye, but its value changes dramatically with context!
That’s the entire trick behind the joke. The meme’s text starts like a common saying, “There are 10 types of people in the world…”, which any new programmer might read as “ten types of people.” But someone with a bit of CS fundamentals knowledge will suspect a trap: what if that “10” is actually binary? If so, “10” isn’t ten at all — it’s two! And indeed, the next lines confirm it humorously: “...9 are normal” and “...1 thinks that everything is binary.” In plain terms, it’s saying there are two types of people: (1) normal folks, and (2) the quirky person who insists on thinking in binary. The meme relies on you knowing that 10 (base-2) = 2 (base-10). This is a quintessential programmer_inside_joke because without knowledge of binary numbers, it falls flat. It’s like a secret handshake among developers — “I speak binary, do you?”. The popular original version goes: “There are 10 types of people in the world: those who understand binary and those who don’t.” That one spells out the punchline (binary-literate vs not), whereas our meme here leaves it implicit, only implying the two groups by using 9 and 1 as the count. Either way, the joke is a proud nerd moment.
For a junior developer or a student, encountering this meme is actually a mini pop quiz in disguise. Do you remember that chapter on binary in your computer science class? Here it is, sneaking into a joke! It’s a lighthearted test of whether you’ve learned to read numbers in different bases. If you’re just learning: binary (base-2) means each digit represents powers of 2. For example, binary 10 has a 1 in the “2^1” place (which is 2) and 0 in the “2^0” place (which is 1), totaling 2. In contrast, decimal (base-10) gives 10 a 1 in the “10^1” place (10) and 0 in the “10^0” place (1), totaling 10. In coding, we often explicitly mark a binary number with a prefix (like 0b). For instance:
# Using a binary literal vs a decimal literal in Python:
num_decimal = 10 # This is 10 in decimal (the usual way to write ten)
num_binary = 0b10 # This is 10 in binary (0b prefix means base-2)
print(num_decimal) # Outputs: 10
print(num_binary) # Outputs: 2
As you can see, 0b10 in code equals 2, whereas plain 10 equals 10. The meme assumes you understand this little quirk of binary_vs_decimal representation. Once you do, it’s hilarious because the phrase “there_are_10_types_of_people” suddenly has a double meaning. It’s a geeky twist on the common expression “there are two types of people in the world.” The joke basically says: if you thought “10” was ten, you’re normal (one of the oblivious folks). If you straightaway think “10” means two, you’re the quirky binary thinker. This kind of number_base_humor is a rite of passage in programming circles – a friendly initiation into the world of thinking a bit differently about numbers. Don’t worry if you had to read the explanation first; pretty soon you’ll be the one dropping binary puns and enjoying the puzzled looks!
Level 3: Counting Off Base
This meme taps into classic programmer lore: the infamous binary people joke. The line “There are 10 types of people in the world…” is a programmer_inside_joke so old that it’s printed on T-shirts, coffee mugs, and countless forum signatures. Why does it endure? Because it perfectly highlights a fundamental CS_Fundamentals concept—number bases—in one witty punch. In everyday life we count in decimal (base-10), so “10” means ten. But in a programmer’s world, especially one steeped in ComputerScienceHumor, “10” might mean binary "one-zero", which equals 2 in decimal. The humor comes from this dual interpretation: to most people “10” is ten, but to a coder “10” can instantly read as two. It’s a geeky litmus test that splits the room into (ironically) two groups: those who get the joke and those who don’t.
What makes experienced devs smirk is the inside reference to how our brains toggle between bases. We’ve spent so many late nights dealing with bits and bytes that seeing “10” as 2 feels almost natural. This meme exaggerates that mindset: “9 are normal, 1 thinks everything is binary.” In other words, out of the world’s population, one peculiar friend is treating every number as binary code while the other nine scratch their heads. It’s poking fun at how a hardcore coder can’t help but see patterns of 0s and 1s everywhere. We chuckle because we’ve either been that person or worked with that person—the one who answers “I’ll be ready in 10 minutes” with a deadpan “10 in binary or decimal?” 🤓. The HumorInTech here is in the binary_vs_decimal bait-and-switch: a simple string “10” becomes a tiny puzzle.
From a senior perspective, this joke also nods to a real communication gap. In code, context is everything—just like specifying a number’s base. A seasoned developer knows the pain of misinterpreting values because of implicit bases (remember how "09" as an octal literal blows up in some languages?). This meme riffs on that concept in human terms: one uber-nerd friend miscommunicating with normal folks because they assume everyone reads “10” as base-2. It’s funny because it contains a kernel of truth about developer life: we swim in abstractions that can sound absurd to outsiders. The phrase “thinks that everything is binary” playfully mocks the all-or-nothing, 0/1 mindset we fall into after too much time with computers. In reality, we know not everything is binary – but try explaining that to someone mid-joke. Ultimately, the meme is self-referential perfection: if you laugh, you just proved you’re one of the “10 types” (the type that understands binary_jokes). And if you didn’t? Well, you’re in the other camp… and exactly why the joke exists! It’s a little celebration of that aha! moment every dev has when they first realize “10” means 2 (in base two). This enduring CodingHumor gem pops up again and again because it lets us proudly pun on our esoteric knowledge, bonding over the very thing that makes us seem a bit “off base” to everyone else.
Description
The image displays a classic computer science joke presented as simple white text on a solid dark gray background. The text is broken into three lines. The first line sets up the premise: 'There are 10 types of people in the world...'. The next two lines deliver the punchline, separated by ellipses: '... 9 are normal' and '... 1 thinks that everything is binary'. The humor is derived from interpreting the number '10' not as the decimal number ten, but as the binary number '10', which is equivalent to the decimal number 2. Therefore, the statement is actually 'There are 2 types of people'. The joke is a well-known shibboleth within the tech and developer communities, testing one's basic understanding of the binary number system, which is fundamental to all modern computing. The secondary joke is the internal inconsistency, as the numbers '9' and '1' are presented in decimal, adding a layer of charmingly flawed logic
Comments
7Comment deleted
A senior dev sees this and thinks, 'False dichotomy. Where's the person who has to maintain the legacy system that uses octal?'
There are 10 types of people: those who laugh, those who don’t, and the SRE explaining why the YAML parser treated “010” as octal and quietly chmod-bombed production
After 20 years of explaining the '10 types of people' joke at parties, I've realized there actually ARE 10 types: those who understand binary, those who don't, and the 8 types who've automated the explanation with a chatbot because they're tired of context-switching from discussing distributed consensus algorithms
This joke perfectly encapsulates the developer experience: you spend years learning to think in multiple number systems, only to realize the real binary in life is those who get this joke instantly and those who need it explained - though ironically, that's still 10 types of people depending on your preferred base
There are 10 types of engineers: the ones who think everything is binary, and the ones who’ve shipped distributed systems and know “true” and “false” are just two points on a spectrum of eventually consistent rumor
The dev who reads “10” as two is the same one who ships is_enterprise and spends Q3 migrating it into a 17‑state entitlement system
Everything *is* binary - at the transistor level; the 9 just hide behind decades of leaky abstractions