Code: The Hidden Language of Computer Hardware and Software
by Charles Petzold
On This Page
Description
Computers are everywhere, most obviously in our laptops and smartphones, but also our cars, televisions, microwave ovens, alarm clocks, robot vacuum cleaners, and other smart appliances. Have you ever wondered what goes on inside these devices to make our lives easier but occasionally more infuriating? For more than 20 years, readers have delighted in Charles Petzold's illuminating story of the secret inner life of computers, and now he has revised it for this new age of computing. Cleverly show more illustrated and easy to understand, this is the book that cracks the mystery. You'll discover what flashlights, black cats, seesaws, and the ride of Paul Revere can teach you about computing, and how human ingenuity and our compulsion to communicate have shaped every electronic device we use. This new expanded edition explores more deeply the bit-by-bit and gate-by-gate construction of the heart of every smart device, the central processing unit that combines the simplest of basic operations to perform the most complex of feats. Along with new chapters, Petzold created a new website, CodeHiddenLanguage.com, that uses animated interactive graphics to make computers even easier to comprehend. From the simple ticking of clocks to the worldwide hum of the internet, Code reveals the essence of the digital revolution. -- Provided by publisher. show lessTags
Recommendations
Member Reviews
I am always interested in learning new ways to teach my students the fundamentals of digital logic, not to mention I also teach a follow-up class on microcontrollers, and sometimes teaching students how they go from the digital logic they learned last semester to something that computes can be challenging. So I'll always happily grab a book aimed for laypeople to see if I can grab a few nuggets from it.
There were things I liked about this book, and things I didn't like about this book. I enjoyed the chapters on different types of code (Morse and Braille really), and, although dated, I did appreciate the discussion on microprocessors, (4004 and 8080, 68000), etc. Some discussions of memory I thought were good (although I teach and work show more with Harvard architecture microcontrollers).
I skipped over the chapters about flip-flops (which, non-clocked, are actually latches, which the author took a couple chapters to state in the book) and computing hardware as that's all review for me. I agree with other commenters in that learning about every single opCode of a non-RISC-architecture microprocessor was just way too much, so I skimmed that part.
Personally, if I were going to write a book like this, I probably would have used a RISC-architecture instruction set to explain assembly. I only know RISC-type instructions, being that I do not program or write assembly for computers, only 8-bit micocontrollers, and reading a thousand different memory addressing mode instructions for AND just made my eyes water. If it was inaccessible to me, who writes assembly for fun, then I can't imagine an average Joe reading this at the airport (not that people go to airports and travel lately, but I digress) is going to have a fun time with these instructions either. The author brings up the concept of RISC very briefly. I'm just guessing the author spends more time with complex architectures and that's probably just what he's more familiar and comfortable with.
I guess I didn't not like the chapters I skipped, I just thought they were either way TMI, or not super interesting because I already knew the content. I suppose I appreciated how the author went from modulating a flash light beam to digital logic. But I know it's not exactly that easy to teach students binary and Boolean algebra, regardless of the analogies you use. Being that I literally teach this stuff and already have a very firm grasp on the concepts, I have no idea how understandable and relatable it is with people who are not already familiar with the concepts.
Another thing to note, is that this book suffers somewhat from being 20 years old, but not a lot. When the author talks about memory and storage and clock speeds (and also how things like CD-ROMS are in "nearly every computer"), the book seriously betrays its age. I mean, back in 1999 I never thought I'd need much more than a floppy disk to store things, CDs were for playing Sim Tower and listening to the Foo Fighter's first album on my dad's really expensive portable CD player that I always "borrowed", and we finally had a 56K modem, although in the middle of rural CDNY, we couldn't actually achieve such blazingly fast speeds in practice. I never would have guessed that 20 years later, everybody would stream music, store files on "the Cloud", spend more time on phones and tablets than computers (which certainly don't have CRT monitors anymore), and all of the other things we take for granted now. I would say the worst anachronism was the focus on single processor computers, but again, back in 1999 we just figured processors would always get faster, smaller, and more powerful, and didn't really know that the future (which is only true writing this in 2020, who knows what another 20 years will bring) was more on parallelizing operations and creating multi-core processors.
But really, other than the anachronism here and there, this book does not suffer from age. Boolean logic is all still relevant, learning how you jump from a "dumb" finite state machine to a stored program computer kind of requires that you learn about the first stored program computers, regardless of how outdated they are.
Usually the end of my reviews is where I recommend the book and to whom. I have a hard time deciding whom I'd recommend this to. See, anybody who has no idea about digital logic may enjoy the chapters on how logic gates are built but might not appreciate the later chapters in the book. Anybody who already has a grasp on Boolean logic and the basics of computer hardware is going to want to skip over almost the entire first half of the book. I guess, read this book if you're interested in how computers went from taking up an entire room to merely fitting onto a large desk, and don't be the type of person who has to read every page, open yourself up to the possibility that you'll want to skim or skip some parts. show less
There were things I liked about this book, and things I didn't like about this book. I enjoyed the chapters on different types of code (Morse and Braille really), and, although dated, I did appreciate the discussion on microprocessors, (4004 and 8080, 68000), etc. Some discussions of memory I thought were good (although I teach and work show more with Harvard architecture microcontrollers).
I skipped over the chapters about flip-flops (which, non-clocked, are actually latches, which the author took a couple chapters to state in the book) and computing hardware as that's all review for me. I agree with other commenters in that learning about every single opCode of a non-RISC-architecture microprocessor was just way too much, so I skimmed that part.
Personally, if I were going to write a book like this, I probably would have used a RISC-architecture instruction set to explain assembly. I only know RISC-type instructions, being that I do not program or write assembly for computers, only 8-bit micocontrollers, and reading a thousand different memory addressing mode instructions for AND just made my eyes water. If it was inaccessible to me, who writes assembly for fun, then I can't imagine an average Joe reading this at the airport (not that people go to airports and travel lately, but I digress) is going to have a fun time with these instructions either. The author brings up the concept of RISC very briefly. I'm just guessing the author spends more time with complex architectures and that's probably just what he's more familiar and comfortable with.
I guess I didn't not like the chapters I skipped, I just thought they were either way TMI, or not super interesting because I already knew the content. I suppose I appreciated how the author went from modulating a flash light beam to digital logic. But I know it's not exactly that easy to teach students binary and Boolean algebra, regardless of the analogies you use. Being that I literally teach this stuff and already have a very firm grasp on the concepts, I have no idea how understandable and relatable it is with people who are not already familiar with the concepts.
Another thing to note, is that this book suffers somewhat from being 20 years old, but not a lot. When the author talks about memory and storage and clock speeds (and also how things like CD-ROMS are in "nearly every computer"), the book seriously betrays its age. I mean, back in 1999 I never thought I'd need much more than a floppy disk to store things, CDs were for playing Sim Tower and listening to the Foo Fighter's first album on my dad's really expensive portable CD player that I always "borrowed", and we finally had a 56K modem, although in the middle of rural CDNY, we couldn't actually achieve such blazingly fast speeds in practice. I never would have guessed that 20 years later, everybody would stream music, store files on "the Cloud", spend more time on phones and tablets than computers (which certainly don't have CRT monitors anymore), and all of the other things we take for granted now. I would say the worst anachronism was the focus on single processor computers, but again, back in 1999 we just figured processors would always get faster, smaller, and more powerful, and didn't really know that the future (which is only true writing this in 2020, who knows what another 20 years will bring) was more on parallelizing operations and creating multi-core processors.
But really, other than the anachronism here and there, this book does not suffer from age. Boolean logic is all still relevant, learning how you jump from a "dumb" finite state machine to a stored program computer kind of requires that you learn about the first stored program computers, regardless of how outdated they are.
Usually the end of my reviews is where I recommend the book and to whom. I have a hard time deciding whom I'd recommend this to. See, anybody who has no idea about digital logic may enjoy the chapters on how logic gates are built but might not appreciate the later chapters in the book. Anybody who already has a grasp on Boolean logic and the basics of computer hardware is going to want to skip over almost the entire first half of the book. I guess, read this book if you're interested in how computers went from taking up an entire room to merely fitting onto a large desk, and don't be the type of person who has to read every page, open yourself up to the possibility that you'll want to skim or skip some parts. show less
In order to explain how modern computers work on a technical level, Petzold runs through the history of code and signalling systems while also showing how they work. This isn't what I'd initially expected the book to be, but it was a pleasure to stroll through a neatly ordered, naturally progressing series of genuinely intuitive explanations. I'm not sure what Petzold's background is, but he would sure make an excellent teacher, and I learned a lot from this book that I'd struggled to pick up from other sources.
This is a wonderful book for those interested in how computers function but lacking formal education in the subject. The beauty of "Code" is that it goes back to the very beginnings of computing and builds on these bit by bit (pun intended) eventually arriving at the modern architecture of personal computers. The reader is spared the overly technical complexities, however this text is quite full-on and does not make for particularly light reading. As such I feel it is better to take one's time reading through it, as the ideas contained are quite profound and require time to sink in. It covers electrical circuitry, number systems (including binary and decimal), bits, logic, bytes, RAM, the invention of microprocessors and an introduction show more to operating systems and programming languages.
A must read for those enthusiastic about computers who are seeking an in-depth introduction to how modern computing architecture functions.
This is a book I will be re-reading in the future as the information contained here is densely packed and I am hoping to take in more of the finer details the next time I read it. show less
A must read for those enthusiastic about computers who are seeking an in-depth introduction to how modern computing architecture functions.
This is a book I will be re-reading in the future as the information contained here is densely packed and I am hoping to take in more of the finer details the next time I read it. show less
Better than all the 'Introduction to this... whole... IT thing' classes I took in school and university (and I'm practically a CS major).
It starts with the basics to which a 10-year-old can relate, and then takes a very clear, full, and consistent path to fill in all the blanks you may have on the 'but how exactly do 1s and 0s do this?' subject.
I'd say it's an excellent book for anyone, and the sooner you read it, the better. I wish my grandma could read it and never be embarrassed because of a computer again.
It starts with the basics to which a 10-year-old can relate, and then takes a very clear, full, and consistent path to fill in all the blanks you may have on the 'but how exactly do 1s and 0s do this?' subject.
I'd say it's an excellent book for anyone, and the sooner you read it, the better. I wish my grandma could read it and never be embarrassed because of a computer again.
Brilliant. Starts slowly, but the more you already know, the faster you can whiz through the early chapters, and there can't be too many people who won't eventually hit on material that is new to them. Or, at least, explained more clearly and put into context more thoroughly than when previously encountered. Petzold somehow strikes the perfect balance between rigour, clarity and fun -- the book is occasionally an effort but never a chore or a slog.
I *think* this is a wonderful explanation of how computer hardware and software work, but I could be wrong. I'm not certain that it's really understandable for someone who, unlike me, doesn't already have a strong grounding in a lot of the material.
The book has held up remarkably well over the years. I feel like 95% of the content is still relevant. This is all of the fundamentals of how the hardware and software work. Only a little bit of the detail of how computers are used, (and, of course, what 'typical' sizes and speeds are) has become dated.
When I first read it, eight years ago, I was disappointed by chapter 17, Automation, because he glossed over the CPU control signals. This time around I discovered that he has a "technical show more addendum" on his website that goes into more detail on the control signals. Also, this time, I see that perhaps it's not such a great leap to think that, based on what has come before, readers can fill in the blanks for themselves. show less
The book has held up remarkably well over the years. I feel like 95% of the content is still relevant. This is all of the fundamentals of how the hardware and software work. Only a little bit of the detail of how computers are used, (and, of course, what 'typical' sizes and speeds are) has become dated.
When I first read it, eight years ago, I was disappointed by chapter 17, Automation, because he glossed over the CPU control signals. This time around I discovered that he has a "technical show more addendum" on his website that goes into more detail on the control signals. Also, this time, I see that perhaps it's not such a great leap to think that, based on what has come before, readers can fill in the blanks for themselves. show less
This is a highly influential book in the subject of how Computers work from ground up. They author deals with the subject and introduces computers as if they were a natural evolution of inventions that had already taken effect and had proved useful to the society.
After introducing the various needs for communication, the author explains how it can achieved using bulbs, and then chips, and then how it is stored and done at the higher scale using Computers. He goes both in the Hardware as well as Software section of how computers work, and why we need operating systems and programming languages.
The section on float point arithmetic caught my attention and imagination completely. This was a lucid explanation on storing decimal valued show more numbers using binary digits.
I throughly enjoyed this, and is already helping me appreciate some of the basic concepts used in Computers and Computer Science. show less
After introducing the various needs for communication, the author explains how it can achieved using bulbs, and then chips, and then how it is stored and done at the higher scale using Computers. He goes both in the Hardware as well as Software section of how computers work, and why we need operating systems and programming languages.
The section on float point arithmetic caught my attention and imagination completely. This was a lucid explanation on storing decimal valued show more numbers using binary digits.
I throughly enjoyed this, and is already helping me appreciate some of the basic concepts used in Computers and Computer Science. show less
Members
- Recently Added By
Lists
Top Five Books of 2013
1,562 works; 715 members
KayStJ's to-read list
1,616 works; 11 members
Pleasant Surprises: Books That Exceeded Our Expectations
418 works; 143 members
Author Information
Common Knowledge
- Original publication date
- 1999
Classifications
- Genres
- Technology, Nonfiction, General Nonfiction, Science & Nature
- DDC/MDS
- 005.72 — Computer science, information & general works Computer science, knowledge & systems Artificial Intelligence/Virtual Reality Data in computer systems Preparation and Representation
- LCC
- QA76.6 .P495 — Science Mathematics Mathematics Instruments and machines Calculating machines Electronic computers. Computer science
- BISAC
Statistics
- Members
- 1,877
- Popularity
- 11,437
- Reviews
- 19
- Rating
- (4.19)
- Languages
- 8 — English, Finnish, French, German, Italian, Japanese, Korean, Swedish
- Media
- Paper, Ebook
- ISBNs
- 21
- UPCs
- 2
- ASINs
- 7





















































