
After a long day at school, Leo finally made it back to Elias’ place. As he stepped through the door, he found Elias lounging on the couch, flipping through a book.
Without looking up, Elias asked, “What do you want to eat tonight?”
Leo thought for a moment. He hadn’t really considered it, but before he could answer—
“Noodles!” Elias declared.
Leo blinked. “Uh… okay?”
Elias smirked. “Not just any noodles. Chinatown.”
A second later, Leo’s phone buzzed. A message from Elias—an address.
Leo frowned, looking at the location. “Alright… when are we leaving?”
Elias leaned back, stretching his arms behind his head. “We? You are going alone.”
Leo hesitated. “Why?”
Elias grinned. “I already know these noodles.”
Leo didn’t know what to make of that, but Elias’ smirk told him there was something more to this than just dinner.
Leo followed the directions Elias sent him, navigating through narrow alleyways until he reached a small shop tucked between towering buildings. A simple wooden sign hung above the entrance, decorated with faded red paint.
The inside was even smaller—just a counter with stools, no tables, no extra space. Behind the counter was an open kitchen, where the scent of fresh broth and sizzling oil filled the air. A few customers sat hunched over their bowls, slurping noodles.
A woman behind the counter spotted him immediately.
“Come in, come in!” she called, smiling warmly. “Best handmade noodles in Chinatown!”
Leo stepped forward, but before he could say anything, the man working next to her turned around, wiping his hands on a towel. He was older, with sharp eyes and a knowing smile.
“You must be Leo.”
Leo stiffened. “Uh… yeah?”
The man’s smile widened. “Follow me.”
Without waiting for a response, he pushed open a small door behind the counter and gestured for Leo to step through.
The back room was tiny, just a small kitchen table and shelves stacked with spices and dried ingredients.
The man sat down, motioning for Leo to do the same. “I’m Mr. Lee. And I’m here to teach you about numbers.”
Leo raised an eyebrow. “Numbers?”
Before Mr. Lee could answer, the woman from the counter poked her head into the room, her face full of irritation.
“The restaurant is busy! Enough with numbers!” she snapped.
She disappeared before Leo could react, but her voice echoed from the kitchen.
“No more numbers!”
A second later—
“And no more beer!”
Leo turned back to Mr. Lee, confused. “Beer?”
Mr. Lee grinned, standing up and gesturing toward a large metal box in the corner, bubbling faintly. “An ancient drink, long forgotten by humans.”
Leo squinted at the box. “You’re making it?”
Mr. Lee nodded proudly. “Of course. A nectar from the gods. Unfortunately, my wife cannot stand the smell.”
Leo didn’t know what to say.
Mr. Lee chuckled and sat back down, crossing his arms.
“But beer is not for kids anyway, let’s talk about numbers.”
Mr. Lee leaned back in his chair, staring at Leo with the same amused smile. He tapped the table once, then again, his fingers moving in an almost rhythmic pattern.
“You know why I love numbers, Leo?”
Leo hesitated. “Because… they help you cook?”
Mr. Lee chuckled. “Well, yes. But it’s much more than that.”
He gestured around the small kitchen, then beyond, as if pointing past the walls, past the city, past everything.
“Numbers are the only thing that is truly real.”
Leo frowned. “What do you mean?”
Mr. Lee placed a single chopstick on the table. “Look at this. It exists here, in this room, in this moment. But take it outside, burn it, break it, and it no longer exists. The same goes for this restaurant, this city, even this planet.” He paused, then tapped his head. “Even your thoughts, your memories, they are fragile. They change. They fade.”
He leaned forward, his voice lowering as if revealing some great truth.
“But numbers, Leo… numbers never change.”
Leo was silent.
Mr. Lee picked up a small piece of paper and wrote something down.
“2 + 2 = 4.”
He slid the paper toward Leo.
“Here, in this kitchen, this is true. Walk outside? Still true. Go to another country? Still true. Go to the moon, to the farthest galaxy, across the whole universe?”
He tapped the numbers with his finger.
“Still true.”
Leo stared at the paper.
“No matter where you are, no matter what language you speak, no matter what planet you stand on—numbers remain the same. They are the fabric of reality itself.”
He suddenly grinned.
“Take prime numbers, for example. A prime is a number that cannot be divided by anything except one and itself. Three is prime. Five is prime. Seven, eleven, thirteen—all prime. Do you think aliens, if they exist, would have different primes?”
Leo slowly shook his head.
“Exactly,” Mr. Lee said, satisfied. “Because they are not ours. They belong to the universe. You and I, we were born into a world shaped by machines, rules, history. But numbers? They don’t belong to anyone. No one owns them. No one controls them. They simply are.”
Leo let the words sink in.
He had never thought about numbers that way.
Mr. Lee smirked and leaned back again.
“That’s why I love them, Leo. They are the only thing that is real.”
Mr. Lee let his last words settle in before leaning forward, resting his elbows on the table.
“Now, here’s where things get interesting.”
Leo looked up from the sheet of numbers, still processing everything Mr. Lee had said about their universal nature.
“Even if numbers are the same for everyone, the way we write them isn’t,” Mr. Lee continued. “The one thing that changes between civilizations—whether human or machine—is the encoding we use to represent numbers.”
Leo frowned. “Encoding?”
Mr. Lee nodded. “Think about it. Machines don’t write numbers like we do. They don’t use the symbols ‘1, 2, 3’ like we do. Their language is different. And that, Leo, is where your training has to start.”
Leo was about to ask another question, but Mr. Lee held up a hand.
“But before we talk about machines, let’s talk about you.” He leaned in slightly. “Have you ever wondered why numbers are written the way they are? Why ‘12’ is written ‘12’ and not, say… ‘42’?”
Leo opened his mouth—then closed it.
He had never thought about that before. Numbers were just… numbers. They had always been written the same way for as long as he had known them.
Mr. Lee smirked, reading his silence. “Didn’t think so.”
“That’s okay,” Mr. Lee said, waving off the hesitation. “It doesn’t really matter. What matters is understanding how we got here. So let’s try something different—let’s make up our own system. Let’s say numbers, as you know them, don’t exist. And you and I have to invent a way to write them down.”
Leo raised an eyebrow. “Invent numbers?”
Mr. Lee grinned. “Exactly. We need a way to represent numbers on paper, but we have no rules, no existing system. So, let’s start from scratch. First, we need a symbol for zero.”
He grabbed a pen and scribbled a strange-looking character onto a piece of paper.
“That’s zero: Ϟ.”
Leo watched as Mr. Lee pushed the pen toward him.
“Now you choose. Pick a symbol for one.”
Leo hesitated, then drew something simple—just a unique mark, different from Mr. Lee’s.
“Alright, that’s one: 𐊋.”
Mr. Lee nodded approvingly. “Good. Now, what about two?”
This time, Mr. Lee took the pen back and added another symbol.
“And there’s two: ✶.”
Leo glanced at them, realizing how arbitrary they were. They could be anything.
- Ϟ (zero)
- 𐊋 (one)
- ✶ (two)
“You see where this is going, right?” Mr. Lee asked. “We needed symbols to represent numbers, but we can’t just keep inventing new symbols forever. Nobody would remember them all.”
Leo nodded.
“So what do we do when we run out of symbols?” Mr. Lee asked.
Leo thought for a moment. He wasn’t sure.
Mr. Lee smirked. “We recycle them. By shifting the numbers to the left.”
He took the paper again and wrote down 𐊋Ϟ.
“Here you go—this is our number three. We didn’t make a new symbol for it. Instead, we used what we already had, just in a different position.”
Leo’s eyes widened slightly.
“And now,” Mr. Lee continued, “we can keep counting. If we add one, we get 𐊋𐊋. If we add another, we get 𐊋✶.” He paused and looked at Leo expectantly. “See the pattern?”
Leo’s brain was firing all at once.
“So… just by using three symbols, we can represent every number?”
Mr. Lee grinned. “Exactly. With just these three symbols, we can encode all numbers. Pretty neat, huh?”
Leo nodded slowly, staring at the sheet of paper.
It was so simple—and yet, it changed everything. Mr. Lee leaned back, stretching his arms. “What we just did, Leo, was create a number system in base 3.”
Leo tilted his head. “Base?”
Mr. Lee nodded. “The number of symbols in your encoding is called the base of the system. In our case, we had three symbols—Ϟ, 𐊋, and ✶—so we were working in base 3.”
He tapped the paper. “And the symbols themselves? Those are called digits. But you probably knew that.”
Leo nodded slightly.
“Now, in practice, we don’t usually invent new symbols like we just did,” Mr. Lee continued. “It’s hard to remember too many strange characters, so it’s tradition to reuse well-known digits as much as possible. We start with 0, 1, 2… and when we run out of numbers, we use letters.”
Leo raised an eyebrow. “Letters?”
“Yes. Let’s say we had a base bigger than 10. We’d use 0 through 9 as usual, but once we run out, we start using letters. So, in base 11, the number after 9 would be ‘A’, in base 12 it would be ‘B’, and so on.”
Leo frowned. “Wait… greater than 10? People actually use bases bigger than 10?”
Mr. Lee smirked. “Oh yes. And one in particular is going to be very important to you: base 16.”
Leo repeated the words in his head. Base 16.
“Any programmer has to know it,” Mr. Lee continued. “It’s called hexadecimal. And trust me, you’ll get very familiar with it soon enough.”
Leo was still trying to process this when another question popped into his head. “But why would anyone use a different base? I mean, 10 works fine, doesn’t it?”
Mr. Lee leaned forward. “Machines don’t use base 10, Leo. They don’t count like we do.”
Leo narrowed his eyes. “Then how do they count?”
“With electricity,” Mr. Lee said simply. “Think about it. A machine doesn’t have fingers. It doesn’t have a brain like ours. What it does have is electricity—signals turning on and off. And the simplest way to count using electricity is to represent numbers with just two states: no signal and signal. Off and on. Zero and one.”
He tapped the table.
“And that, Leo, is why everything in a computer is binary.”
Leo sat in silence, digesting the idea.
“Now, you might be wondering—if machines count in binary, why do programmers care about hexadecimal?”
Leo nodded. That was exactly what he was wondering.
Mr. Lee pulled out another sheet of paper.
“Binary numbers are long, and they’re hard for humans to read. Look at this:”
He wrote:
1111111111111111
“It’s difficult to tell at a glance what this number is, right?”
Leo squinted. It was just a long mess of ones.
Mr. Lee continued. “But what if we regroup the digits into groups of four?”
He added spaces, separating them into chunks:
1111 1111 1111 1111
“Better?”
Leo nodded. It was starting to look more structured.
“Now,” Mr. Lee said, “instead of writing these four-digit chunks in binary, we write them in hexadecimal. Each group of four binary digits can be represented by just one hexadecimal digit.”
He quickly scribbled below the binary:
FFFF
Leo’s eyebrows lifted.
“Now tell me, which one is easier to read—1111111111111111, or FFFF?”
Leo exhaled. “FFFF, obviously.”
Mr. Lee grinned. “And that’s why programmers use hexadecimal. It’s a shortcut for writing binary. Machines still use binary underneath, but for humans, FFFF is a lot easier to read and write than a long string of ones and zeroes.”
Leo nodded slowly, staring at the paper.
Mr. Lee continued, his voice calm but firm. “The first thing you need to do is become comfortable with these numbers. Because when you program, you’ll need to understand the encoding used. Otherwise, you’ll never truly know what your code is doing.”
Leo exhaled. “So I have to learn how to think in base 2?”
Mr. Lee smiled. “Exactly. And once you do, you’ll see the world differently.”
Mr. Lee stood up and walked over to a small drawer in the corner of the room. He rummaged through it for a moment before pulling out a small, black stick, about the size of a pen. He turned back to Leo and handed it to him.
Leo took it cautiously. It was smooth and metallic, but there was a tiny button on the side.
“Go ahead, press it,” Mr. Lee said with a smirk.
Leo hesitated, then pressed the button.
Immediately, a holographic menu popped up above the stick, displaying a list of steaming bowls of noodles with descriptions and prices.
Leo blinked. “Uh… thanks?”
Mr. Lee chuckled. “It’s not what it looks like.”
Leo looked at him, confused. “It’s not a menu?”
“Oh, it is. A very convincing one,” Mr. Lee said. “But hidden inside… is something much more important.”
Leo frowned.
Mr. Lee leaned against the table. “This, Leo, is a computer—from an ancient time.”
Leo’s eyes widened. “A computer?”
“Not just any computer. A Raspberry Pi.”
Leo had never heard that name before.
Mr. Lee tapped the stick. “A type of computer that hasn’t existed for centuries. Back when humans still built their own machines.”
Leo turned the stick over in his hands, suddenly looking at it with a new kind of reverence.
“With this, you’ll be able to access the Companions’ network,” Mr. Lee continued.
Leo looked up. “The network?”
Mr. Lee grabbed a scrap piece of paper and scribbled something down. Then, he slid it across the table.
http://closedsourcebook.com/binary.html
Leo stared at it. “What’s this?”
“A gateway,” Mr. Lee said. “An entrance into our world.”
Leo frowned. “But… isn’t the internet monitored? Wouldn’t the machines see me if I visit this site?”
Mr. Lee grinned. “Ah, good question. That’s why we don’t use normal internet protocols. This is HTTP—an old protocol, one the resistance revived. We hacked into the machines’ routers so that any traffic sent through HTTP gets disguised as something mundane—pictures, conversations, background noise. To the machines, this request will look like any other harmless communication.”
Leo looked at the small slip of paper again. “So when I use this stick to visit this link… the machines won’t see a thing?”
Mr. Lee nodded. “Exactly. Elias helped set it up. Smart guy, that one.”
Leo raised an eyebrow. “Elias did that?”
Mr. Lee smirked. “Surprised?”
Leo thought about it for a moment, then shook his head. No. He wasn’t.
“Good old Elias prefers books for everything,” Mr. Lee added, “but sometimes, getting your hands on a computer can actually help you learn programming.”
He pointed at the stick in Leo’s hand. “That’s what this is for. Your training doesn’t stop when you leave here.”
Leo nodded, gripping the stick a little tighter.
“Now, your first task.” Mr. Lee tapped the paper again. “Go to this link. Practice your numbers. Write them down, and see what they look like in binary and hexadecimal.”
Leo nodded.
“And,” Mr. Lee added, “memorize the powers of two. At least up to 1024.”
“Powers of two?”
“Yes. 2, 4, 8, 16, 32, 64, 128… Keep going until 1024. You need to know them by heart.”
Leo sighed. “Sounds fun.”
Mr. Lee grinned. “It is. You just don’t know it yet.”
He pushed another slip of paper toward Leo. “You should come back tomorrow, but this time, you’ll meet me at my place. Here’s the address.”
Leo looked at the address.
Mr. Lee crossed his arms. “You’re learning quickly, Leo. Don’t slow down.”
Leo nodded, slipping the stick and both pieces of paper into his pocket. Tomorrow, his training would continue.
The next day, Leo arrived at the address Mr. Lee had given him. It was a small house, tucked between larger buildings, nothing that stood out. He rang the bell and waited.
Before long, a voice called out—not from inside the house, but from somewhere nearby.
“In here! In the garage!”
Leo turned his head and walked toward the garage door. He pushed it open and stepped inside.
The first thing he noticed was the mess.
Wires, circuit boards, old screens, strange-looking components—hardware was everywhere. Unlike Elias, who seemed to live in a world of books, Mr. Lee was clearly a builder.
At the center of the clutter, Mr. Lee was holding a soldering iron, carefully adjusting something on a circuit board. He looked up when he saw Leo.
“Ah, there you are.” He set the tool down and dusted off his hands. “Tell me, what’s 2 to the power of 8?”
Leo didn’t even have to think. “256!”
Mr. Lee nodded, satisfied. “Good. I was just checking that you did your homework.”
Leo smirked slightly.
“Now,” Mr. Lee continued, “how much do you know about logic?”
Leo hesitated. “Not much. My mother taught me the basics—AND, OR, and NOT operators.”
Mr. Lee grinned. “Perfect. That’s exactly what we need to get started.”
Mr. Lee leaned against the workbench, crossing his arms. “Let’s start with something interesting—do you know the difference between OR and XOR?”
Leo blinked. “XOR?”
Mr. Lee smirked. “Yeah, XOR. The OR you use at a restaurant.”
Leo frowned. “The OR you use at a restaurant?”
Mr. Lee grabbed a wrench from the table and spun it in his hands. “Okay, imagine you’re at a restaurant. The waiter asks, Do you want ice cream or cake for dessert? What do they mean?”
Leo thought for a second. “That I have to pick one. I can’t have both.”
“Exactly!” Mr. Lee pointed at him. “That’s XOR—exclusive OR. One or the other, but not both.”
Leo nodded slowly.
“Now,” Mr. Lee continued, “compare that to when someone says, We can go to school either by car or by walking. They don’t mean you can only do one. You could drive part of the way, then walk the rest. That’s regular OR. It means one, the other, or both.”
Leo raised an eyebrow. “So in spoken language, the difference depends on context?”
Mr. Lee snapped his fingers. “Exactly. But machines don’t work with context. With machines, OR and XOR are completely separate operations with different behaviors. And because we’re dealing with machines, we have to be precise.”
Leo nodded, starting to understand. “So XOR is an OR that doesn’t allow both options?”
“Bingo,” Mr. Lee said, reaching for a circuit board. “And now that you know that, let’s start putting it to use.”
He grabbed a thin wire from the table and held it up.
“You see this? This is one bit. When there’s electricity in this wire, we call it ‘1’. When there’s none, we call it ‘0’. That’s all a bit is—on or off, electricity or no electricity.”
Leo nodded.
Mr. Lee picked up a second wire and plugged both into a small component with a third wire coming out of it.
“Now, let’s add another bit. Two wires, two bits. I just plugged them into this component here—this is an AND gate.” He pointed at the output wire.
“This wire will only have electricity if both inputs are 1. Otherwise, it stays 0.”
Leo leaned in. “So if both wires have electricity, the output wire also has electricity, but if either one is missing, the output is 0?”
Mr. Lee nodded approvingly. “Exactly.”
Mr. Lee set down the AND gate and turned to Leo.
“This is how we encode operations in a computer. Of course, everything inside an actual computer is much, much smaller—wires so tiny you can’t see them with your eyes. But the principles remain the same.”
He rummaged through a drawer and pulled out a handful of small logic gates. He handed them to Leo.
“Let’s try building something.”
Leo took the components, examining them.
“What are we building?”
“An incrementer,” Mr. Lee said. “Something that adds one to a number. You have four wires as input—how would you go about building a circuit that adds one?”
Leo scratched his head.
After a moment, he said, “Probably bit by bit?”
Mr. Lee’s eyebrows lifted. “Exactly!” He pointed to the rightmost bit. “You always start with the bit that’s furthest to the right. But before we move forward, let me introduce you to something important—something called a half adder.”
Leo tilted his head. “A half adder?”
Mr. Lee nodded. “Yes. A half adder is the simplest kind of addition circuit. It takes in two bits and produces two outputs—one for the sum and one for the carry. The reason it’s called a half adder is that it doesn’t handle carry input from a previous addition—it only works with two bits at a time.”
Leo thought about that. “So it can add single bits, but it doesn’t handle carrying over?”
“Exactly. Let me show you.”
Mr. Lee grabbed a small board with logic gates wired onto it. He pointed to two inputs.
“Here, we have two bits. Let’s call them A and B. The sum of A and B is just like in normal addition—0 + 0 is 0, 0 + 1 is 1, 1 + 0 is 1, but when we add 1 + 1, we get…?”
“Two.”
“Right. But in binary, there is no ‘2’—instead, we write it as ‘10’, which means ‘0 with a carry of 1.’ So we need two outputs: one for the sum and one for the carry.”
Mr. Lee pointed at the first gate.
“The sum is simple—it follows the XOR rule. If one of the inputs is 1 but not both, the sum is 1. Otherwise, it’s 0.”
He connected the wires through an XOR gate, leading to the sum output.
Then, he pointed at another wire.
“The carry bit is even simpler—it follows the AND rule. It’s 1 only when both inputs are 1.”
He connected the same two inputs through an AND gate, leading to the carry output.
Mr. Lee tapped the board. “And that’s a half adder.”
Leo examined the circuit. “So this adds two bits together, but it doesn’t take in any carry from a previous addition?”
“Exactly. That’s why it’s called a half adder. To do full addition, you need to handle an incoming carry as well. That’s where a full adder comes in.”
Mr. Lee set the circuit board aside and turned to Leo. “Before we move forward, it’s time to use the stick I gave you.”
Leo pulled the small, metallic device from his pocket and looked at it.
Mr. Lee pointed to an old computer on the workbench. “Plug it in, and go to this address.”
He grabbed a scrap of paper and wrote:
http://closedsourcebook.com/half_adder.html
Leo inserted the stick into the dusty but functional machine. The screen flickered, and a terminal window opened automatically.
Leo typed in the address and hit Enter.
A new page loaded, showing a simple digital circuit simulation of a half adder, complete with input toggles for 1s and 0s.
Leo clicked on the inputs, flipping them between 0 and 1. The sum and carry outputs updated in real time.
“Whoa.”
Mr. Lee smirked. “Now you can see how it works, not just hear me explain it. Play with it for a minute. Then we move on.”
Leo experimented for a moment, watching the outputs change. It was simple, but it felt real in a way nothing from school ever had.
Mr. Lee grabbed another identical half-adder circuit and placed it next to the first one.
“Now, let’s think about how to increment a number. Remember, you have four wires as input, representing a four-bit number. What happens when you add 1?”
Leo thought for a moment. “The rightmost bit flips. But if it was already 1, that carry needs to move to the next bit.”
Mr. Lee nodded. “Exactly. So what happens if we take the carry output from our first half adder and feed it into another half adder connected to the next bit?”
Leo’s eyes widened as the idea clicked.
“Oh! The second half adder will handle the carry for the second bit! And if that bit is also 1, it will send a carry to the third bit!”
Mr. Lee grinned. “Now you’re getting it. You keep chaining half adders like this—one per bit. Each one takes the result of the previous carry and adds it to the next bit. And that, my friend, is how we build an incrementer.”
Leo looked at the logic gates in front of him, his mind racing.
Mr. Lee added another link to the scrap of paper:
http://closedsourcebook.com/circuit.html
“Have a look! Of course, this is a not how a real circuit would be represented, but it will help you understand”.
Mr. Lee handed him some additional gates. “Now, let’s wire it up and see if it works.”
Leo took the components and got to work, his fingers moving with a new sense of purpose.
Leo connected the final gate, double-checked his wiring, and powered up the circuit. The small board came to life.
He pressed a switch, setting the input to a number. Then, he triggered the increment operation.
The output flipped exactly as expected. The carry moved through the circuit, adding one, just like they had planned.
Leo watched the lights blink on and off, fascinated.
“It works!”
Mr. Lee grinned. “Of course it does.”
Leo sat back, staring at the tiny network of wires and logic gates. “So… this is how computers work?”
Mr. Lee nodded. “Yup. At the core, all computation is just electricity moving through circuits like this. But…” He leaned forward, a twinkle in his eye. “We’re still missing a key piece. Something that changed the world as we know it.”
Leo’s curiosity spiked. “What is it?”
Mr. Lee smirked. “A transistor.”
Leo blinked. “A… transistor?”
Mr. Lee grabbed a tiny black component from a box and handed it to Leo.
“This,” he said, “is the reason machines exist.”
Leo held it up, examining the small, three-legged object between his fingers.
“What does it do?”
Mr. Lee crossed his arms. “The circuits we built today have no memory. When you change an input, the whole circuit updates immediately. That’s great, but you can’t store anything. You can’t save a result to use in another calculation later. That’s a problem.”
Leo thought about it. “Right… because we can’t prewire all possible operations into a single circuit. There would be too many.”
Mr. Lee pointed at him. “Exactly. If we want something programmable, we need a way to store bits and then move on to the next operation.”
He gestured toward the transistor in Leo’s hand.
“That’s what these little things do. They’re tiny switches that can turn a signal on or off—just like a logic gate—but more importantly, they can also store information.”
Leo turned the transistor over in his fingers, suddenly aware that he was holding something world-changing.
“So… without transistors, none of this would work?”
Mr. Lee shook his head. “No computers. No networks. No machines running the world. Nothing. These tiny little things changed the face of the earth.”
Leo stared at it, fascinated.
Mr. Lee smirked. “But that’s enough for today.” He waved toward the door. “Go back to Elias and tell him I said hi.”
Leo looked up, still holding the transistor. He pocketed it carefully, nodded, and made his way toward the door.
There was still so much to learn.
But for today, this was enough.