books 7 min read

Reading Petzold's CODE as a book club, one Saturday at a time

Six months of Saturday sessions reading Petzold's CODE together, from flashlights and Morse code to operating systems. Over 120 started. 4 of us finished.

This weekend we finished reading Code: The Hidden Language of Computer Hardware and Software by Charles Petzold. “We” is a reading cohort on the Team Shiksha Discord that met every Saturday, starting on 29 November. So a little over six months, one session at a time.

It was my second time through the book. The first was about seven years ago.

How it started

Back in July a friend was talking about understanding the core basics of computers, and I replied recommending CODE. My advice at the end: get it from your library!

In November the same friend and I got talking about hosting a reading cohort of the book on Team Shiksha’s Discord. Read the chapters together, with some side chat on the breadth and depth of how software and hardware evolved. I was planning to reread it anyway, and doing it with a group sounded like fun. It was free. No course, no charges, just bring interesting questions and curiosity.

I put out a quick survey on X to see if people wanted in. In one of the replies I said that even the most basic stuff can hide a lot of detail, like an onion you peel layer by layer. Honestly, that’s the book.

I ran the sessions. My friend took care of the recordings and the community side.

The Discord event for the reading cohort: Saturday, one hour, 13 people interested at the time, with a description of the cohort The event a few days before the first session. The call link is blurred.

The slot was every Saturday at 08:30 AM PST, which is 10:00 PM IST. One hour, a US morning and an Indian night.

We read the original 2000 Microsoft Press edition, from the scan on the Internet Archive, with the book up on screen during the call. There’s a second edition from 2022 that reorganises the chapters, so the chapter numbers in this post are from the original.

The book, a chapter a week (mostly)

Session 1 covered the preface and Chapter 1. It starts with two friends blinking flashlights at each other across the street and gets to Morse code, and from there we went on to ASCII, UTF-8 and how all of computing comes down to tiny on/off decisions. I shared some real world encoding stories from my startup days too. By the end, a few folks were motivated to memorize Morse code.

Session 2 went from everyday signalling systems to thinking like a computer from first principles. Watching people make that jump was genuinely special.

Session 4 was about counting. Chapter 8 is why we use base 10 (thanks, fingers) and why computers need base 2. Chapter 9 defines the bit, the simplest form of information. Everything in your digital life turns out to be a series of yes/no questions.

Session 6 was Chapter 11, “Gates”, the point in the book where electricity turns into logic. Wire relays in series and you get AND. Wire them in parallel and you get OR. Add an inverter and you can build NAND and NOR, and any digital circuit can be built out of those. One participant posted afterwards that it brought back memories of studying Digital Logic Design in college.

An infographic for Chapter 11: switches and relays make AND and OR, an inverter flips the input, and NAND and NOR are universal gates The cheat sheet I shared for the Gates session.

Session 7 moved from logic to arithmetic. Chapter 12 wires up a binary adding machine out of full adders, and Chapter 13 pulls off subtraction with two’s complement. You never need a “subtractor” circuit: flip the bits, add one, and reuse the adder you already have. Hardware efficiency is an art form. Seeing that bridge between physical relays and math was the highlight of my week.

Session 9 was about efficiency. Chapter 15 makes the case for hexadecimal as the Goldilocks base for humans, less tedious than binary and lined up perfectly with how bytes are structured. Chapter 16 goes from simple flip-flops to an assemblage of memory, where you can jump to any address and read what’s there.

Petzold's diagram of an 8x1 RAM array: a 3-to-8 decoder picks one of eight latches to write, and an 8-to-1 selector picks one to read Random access memory out of latches, a decoder and a selector. Figure from the book.

Sessions 10 and 11 were Chapter 17, “Automation”. With random access to memory you can store, reuse and manipulate data at will, which is the foundation of an instruction set and of modern CPU architecture (hint: Von Neumann). Then the real aha moment: the jump instruction. Change the instruction pointer and you get loops and conditional logic, and a calculator becomes a programmable computer. That’s where machine language starts.

A short machine code program from the book that adds numbers in a loop and uses JNZ to jump back to the beginning JNZ BEGIN, the line where a calculator becomes a computer. Figure from the book.

Sessions 12 and 13 were Chapter 18, “From Abaci to Chips”: the abacus, then transistors, then integrated circuits. All the room-sized logic and memory we had been “building” for weeks ends up etched onto a tiny piece of silicon. It’s mind bending how far we’ve come in under 100 years.

Sessions 14 and 15 were Chapter 19, “Two Classic Microprocessors”. The 1970s showdown: Intel 8080 against Motorola 6800. The 8080 is register-heavy, and the 6800 makes elegant use of index registers and the stack pointer. Putting them side by side makes you appreciate the engineering trade-offs that still define computing.

Session 16 was Chapter 20, “ASCII and a Cast of Characters”. After weeks of building a processor that only understands math, we finally taught it to read and write text. Seeing a simple 7-bit standard bridge binary numbers and human language was a big lightbulb moment for the group.

In late April we did Chapter 21, the system bus. If you wired every component directly to every other component, you’d end up with a tangled web of millions of wires. Instead there’s a shared set of wires everything connects to. The address bus is where the CPU wants to read or write (pointing at a house). The data bus carries what’s being moved (the people going to the house). The control bus says read or write and keeps everything in step with the clock. The coolest part was a section of memory mapped straight to a video display: write to those addresses and you get graphics on a screen.

The final chapters went from bare metal up to operating systems, high-level languages and the graphical revolution, and then we were done.

I posted after most sessions. Here they all are, in order:

Reading it again

Back in November I said I hoped to read it again with a new perspective. Last month, about a completely different book, I tweeted that revisiting your old favorites is a good benchmark for how much you’ve changed. The book stays the same and means something different now.

With CODE, a lot of it now connects straight to the day job. The loops and if statements we write all compile down to the conditional jumps from Chapter 17. The bus chapter is a small lesson in shared infrastructure: one set of wires, many components, and rules so they don’t talk over each other. And the 8080 against 6800 sessions were really about trade-offs, which is most of engineering anyway.

The biggest takeaway wasn’t about computers

We started with over 120 people. On the last day, exactly 4 of us crossed the finish line.

That’s the intention-behavior gap in one number. Motivation is the burst of dopamine that makes you start. Consistency is the system that makes you finish. Seth Godin calls the long middle “The Dip”, the quiet stretch where the initial excitement fades and the real work begins.

A hand-drawn chart of returns against effort: a dashed naive line, and a real curve that rises, falls into "the dip", then climbs, with a good quit point early and a bad quit point at the bottom of the dip The chart I posted with the wrap-up.

Sustained perseverance pays off out of proportion, simply because something like 97% of people drop out on their own once the friction gets high enough.

What kept it going

I’ve written before about how I get through books on my own. A group runs differently. A few things that worked for this one:

  • Same slot every week. Saturday, same time, one hour.
  • The chapter set the pace, not the calendar. Chapters 17, 18 and 19 got two sessions each.
  • A public recap on X after most sessions, usually with a diagram, a figure from the book or a cheat sheet. Circuits are hard to talk about without pictures.
  • Recordings. My friend and I recorded the sessions and put them up week by week in a YouTube playlist.
  • Joining late was easy. When someone asked in December how to get in, I told them to catch up till page 82 on their own and join the next session.
  • Free and informal. No course, no fee.

And expect the drop-off. Over 120 at the start, 4 at the end. That’s the dip.

To the other 3 who stayed consistent week after week: the compound interest is yours to take.

And a big shout-out to Team Shiksha for giving the cohort a home on their Discord. Go follow them!

Session 1

Kicked off Session 1 of our reading cohort for Code: The Hidden Language of Computer Hardware and Software by @PetzoldCharles today. We read the preface and Chapter 1, starting from two friends blinking flashlights at each other and ending with Morse code, ASCII, UTF-8, and how…

@jatinkrmalik, 29 November 2025

Session 2

Loving how this cohort is shaping up. We just wrapped Session 2 and the discussions have been fantastic, watching everyone go from everyday signaling systems to thinking like a computer from first principles is genuinely special. 🧠 We start Chapter 5 next week. If you’ve ever…

@jatinkrmalik, 6 December 2025

Session 4

Session 4 of our 'CODE' book club @TeamShiksha was a deep dive into how computers count! 🧮 We explored Chapter 8: Why we use Base 10 (thanks, fingers! 👋) vs. why computers need Base 2. Then started Chapter 9 to define the "Bit" the simplest form of information. Turns out,…

@jatinkrmalik, 20 December 2025

Session 6

Session 6 of our 'C-O-D-E' by Charles Petzold book club @TeamShiksha is a wrap! 📚 We tackled Chapter 11: "Gates." It’s the pivotal moment where electricity turns into logic. We explored how wiring relays in series or parallel creates AND, OR, and NAND gates, the true building…

@jatinkrmalik, 3 January 2026

Session 7

Session 7 of the 'CODE' book club @TeamShiksha! 🛠️ We’ve officially graduated from logic gates to Arithmetic. Chapter 12 showed us how to wire a Binary Adding Machine using Full Adders, and Chapter 13 revealed the ultimate "hack": Subtraction via 2’s Complement. It’s wild that…

@jatinkrmalik, 17 January 2026

Session 9

Today’s CODE book reading session #9 @TeamShiksha was all about efficiency! Chapter 15 showed us why Hexadecimal is the "Goldilocks" base for humans, not too simple like binary, but perfectly aligned with how bytes are structured. Then, in Chapter 16, we looked at the…

@jatinkrmalik, 31 January 2026

Session 10

We’ve officially hit the "Automation" phase in Session 10 of C-O-D-E book reading club @TeamShiksha!📚 The most exciting part of today’s reading was figuring out how to bypass the limitations of sequential steps. By implementing random access to memory, we can now store, reuse,…

@jatinkrmalik, 7 February 2026

Session 11

Just finished reading Ch. 17 of Petzold’s 'CODE' for Session 11 with our book club @TeamShiksha! The "aha!" moment today was seeing how a "jump" instruction is the secret sauce for everything we do in tech. By manipulating the instruction pointer, we get loops and conditional…

@jatinkrmalik, 21 February 2026

Session 12

Session 12 of our "CODE" by Charles Petzold book club @TeamShiksha was a journey through time. We started Chapter 18, moving from the physical history of the abacus to the era of integrated circuits. It is incredible to realize that the complex logic gates and memory…

@jatinkrmalik, 28 February 2026

Session 13

Just wrapped up Session 13 of our "C-O-D-E" by Charles Petzold @TeamShiksha book club. We officially finished Chapter 18 moving from abaci to chips, tracing the incredible journey from the first transistors to the microprocessors that power our world today. It’s wild to see…

@jatinkrmalik, 14 March 2026

Sessions 14 and 15

We spent Sessions 14 and 15 of our 'C O D E' book club @TeamShiksha diving deep into the Chapter 19 - Two Classic Processors! It’s the ultimate 1970s showdown: the Intel 8080 vs. the Motorola 6800. Comparing the 8080’s register-heavy design to the 6800’s elegant use of index…

@jatinkrmalik, 30 March 2026

Session 16

Session 16 of our 'CODE' book club @TeamShiksha is a wrap! We just finished Chapter 20: "ASCII and a Cast of Characters." After weeks of building processors that only understand pure math, we finally taught our machine how to read and write text. Seeing how a simple 7-bit…

@jatinkrmalik, 4 April 2026

Chapter 21

Just wrapped up Chapter 21 of Charles Petzold’s "CODE" with our @TeamShiksha bookclub. Today was all about the system bus. We explored how the CPU, memory, and I/O devices share the same address, data, and control lines to communicate efficiently. The absolute coolest part?…

@jatinkrmalik, 25 April 2026

The last session

We officially finished 'CODE' by Charles Petzold in our @TeamShiksha bookclub! The final chapters took us from bare metal all the way up to Operating Systems, High-Level Languages, and the Graphical Revolution! But the biggest takeaway wasn't about computers. We started this…

@jatinkrmalik, 7 June 2026
1 / 14
My posts on X after the sessions, in order.

Leave a comment

Keep reading