An approachable, hands-on guide to understanding how computers work, from low-level circuits to high-level code.
How Computers Really Work is a hands-on guide to the computing ecosystem: everything from circuits to memory and clock signals, machine code, programming languages, operating systems, and the internet.
But you won’t just read about these concepts, you’ll test your knowledge with exercises, and practice what you learn with 41 optional hands-on projects. Build digital circuits, craft a guessing game, convert decimal numbers to binary, examine virtual memory usage, run your own web server, and more.
Explore concepts like how to:
- Think like a software engineer as you use data to describe a real world concept
- Use Ohm’s and Kirchhoff’s laws to analyze an electrical circuit
- Think like a computer as you practice binary addition and execute a program in your mind, step-by-step
The book’s projects will have you translate your learning into action, as you:
- Learn how to use a multimeter to measure resistance, current, and voltage
- Build a half adder to see how logical operations in hardware can be combined to perform useful functions
- Write a program in assembly language, then examine the resulting machine code
- Learn to use a debugger, disassemble code, and hack a program to change its behavior without changing the source code
- Use a port scanner to see which internet ports your computer has open
- Run your own server and get a solid crash course on how the web works
And since a picture is worth a thousand bytes, chapters are filled with detailed diagrams and illustrations to help clarify technical complexities.
Requirements: The projects require a variety of hardware – electronics projects need a breadboard, power supply, and various circuit components; software projects are performed on a Raspberry Pi. Appendix B contains a complete list. Even if you skip the projects, the book’s major concepts are clearly presented in the main text.
PhillyMusicLover –
A book I would have DREAMED to have when getting started..
I’m currently a software entrepreneur and i love reading about anything computers, especially 1st principles…This book lays it all out on a silver platter for anyone trying to connect the dots on how a computer fundamentally works (obviously not nitty gritty details, that would be thousands of pages).If i had this book getting started i would be decades ahead of where i started from 20 years ago.The author really created a masterpiece, thank you for your time and how much thought you put into it.
One person found this helpful
Thomas –
A clearly written book that covers important concepts without glossing over the details.
I enjoyed this book and learnt a lot from it. Matthew writes clearly, includes real-world examples, gets into the technical details, and provides interesting stories of his time working on software engineering at Microsoft. The equipment to complete the practical exercises will cost about $100.Here is a summary of each chapter:Chapter 1: explains decimal number system (which we use in everyday life) and the binary and hexadecimal number systems used in computing.Chapter 2: encoding: now that you know about binary numbers, how do we represent the alphabets of the world in binary numbers? Logical operators (AND, OR, NOT, NAND, NOR, XOR) are also explained.Chapter 3: fundamentals of electric circuits. Voltage, current, and resistance. How these three relate to each other, described in Ohm’s law.Chapter 4: how to build logical operators in the form of electrical circuits. Transistors explained. Integrated circuits explained.Chapter 5: arithmetic of binary numbers. How binary arithmetic can be carried out by electrical circuits built with logical operators.Chapter 6: how a bit can be stored in an electrical circuit called an SR Latch. Sequential logic circuits. How clock signals advance a sequential logic circuit.Chapter 7: the primary hardware components of a computer and how they work together to perform instructions provided by software.Chapter 8: how hardware must receive instructions in the form of machine code. Different examples of machine code and what instructions they convey. Assembly language is a more human-readable form of machine code.Chapter 9: how high-level programming languages (C, Python, etc.) are based on machine code. The advantages of writing in a high-level programming language as opposed to machine code. Various other concepts important in high-level programming.Chapter 10: on operating systems. How an operating system manages the computer’s hardware, allowing multiple applications and programs to run at the same time. The major OSs, the types of hardware they typically manage, and their history and common origins.Chapter 11: the internet. A description of the physical components of the internet and the protocols they use to communicate.Chapter 12: how people use the infrastructure provided by the internet to create web pages and web services. The markup languages, programming languages, and data structures that are most frequently used to create web pages and web services.Chapter 13: a brief description of emerging computer technologies: Apps, Bitcoin, cloud computing, virtual reality and augmented reality.
2 people found this helpful
Stephane –
Great for beginners
I whimsically developed a desire to learn about computers and this book has been great. It starts at the barebones fundamentals and explains things clearly for beginners. Love the hands on experiments as well.
Hanner-Gurumi –
Very good book!
This book is very informative and lays out the information very well. Starting with basic electronics and teaching the basics of computers was very useful. I am a software developer and found this book very useful for an overview of computers.
2 people found this helpful
Dimitri –
Best introductory and comprehensive book on Computer topics.
This is the most clear, concise, objective, yet comprehensive book on computer basics that I have encountered so far. Additionally, the hands on projects and exercises are very well balanced in terms of difficulty.
MR CHI Y PANG –
Must Read for Computer 101
One of the most enlightening book I have ever read. The author incredibly blends electronics and computing concepts (CPU, programming, operating system etc) that truly (with its easy and straight forward layout) helps you understand what’s going on in a computer.
8 people found this helpful
Dr. L. –
Finally, a book that gets it
As a non-computer person, I’ve always wanted to know what goes on under the hood, i.e. what wiring exists to make electrons dance the right way so as to do all the things computers do. I’ve looked at many books on this subject. All I’ve encountered are either too simplistic (spending most of the book on gates and binary numbers) or assume you have a working knowledge of C or Java.Justice nails it. He gives a concise–but extremely lucid–explanation of electronics, binary numbers, and gates–and then goes on to explain how a computer really works! It is the best explanation of the CPU, memory arrays, buses, etc that I’ve ever encountered–and all without any prerequisite knowledge of a computer language.I cannot recommend this book too highly
11 people found this helpful
Zhishuai Zhang –
Very helpful
It is a very helpful and compact book. Love it.
2 people found this helpful
yoshimasa soma –
This is kind and helpful !
I’m a beginner in computer electronics. This book provides me good resourses to keep going forward in deep computer world. Very concise , easy to understand. It’s worth it.I’m not a native English-speaker, but it’s fun to read it, beyond language barrior. Thank you author. Thank you USA.
One person found this helpful
JRod –
CARVE IT IN STONE!
Here is my quick review about this AWESOME book, but first here’s a caveat:You have to be interested in learning the material. I mean, that’s why you are thinking about purchasing this book, right?Here is what I have to say about this book… “IT DESERVES TO BE CARVED IN STONE OK, OK; IN THIS DAY AND AGE IT CAN BE LASER ENGRAVED ON METAL PLATES.”enough said?Buy the book, you’ll love it.It’s in my Top 10 favorite books of all time.An enormous thank you to the author Mathew, Justice for undertaking the task of writing this very comprehensive book.A huge thank you to his parents, wife and his daughters for the support they provided him.And also a big thank you to the entire team at No Starch Press for supporting the publication of this book for it has literally changed my life! 🙂
16 people found this helpful
H.P.J.M. –
I have been a software developer/engineer for the last 3-4 years. I didn’t study computer science at university, but I always had a nagging feeling that I needed to learn more about the fundamentals of computers and computer science. I’ve read textbooks, did the Harvard CS course, and picked up pieces here and there. But it was only after reading this book that that feeling went away, and in its place is more confidence and a continued desire to learn more (because it’s an enormous and fascinating field).I cannot recommend this book highly enough for someone who wants to see how the various aspects of computers “glue” (not literally) together. Justice starts from binary/hexadecimal, binary math and Boolean logic, showing how these can be represented in electrical circuits. There is a section on computer organisation before it turns to software, programming, operating systems, and networking. There is a chapter on the web and then one on various other interesting developments.The explanations are fantastic, with clear examples. It is also chock-a-block with exercises and projects, which are well worth doing (buying the electronics etc will cost 100-200 quid but are a great investment), ranging from building circuits to doing port scans on a Raspberry Pi. They help you really see what is happening.After finishing this book I feel far more prepared to do a deep dive on some of the topics covered. Great job, Matthew Justice.
11 people found this helpful
Trey Roberts –
Wonderful!!
Great read! I’m 32 and had zero understanding of the wizardry behind computers, phones, wifi, internet, etc. But I could carry a conversation about them now. You will definitely know more than most people around you after reading this book!
Robert Varde –
I love this book!
I’m new to this whole cyber security and learning how computers work and love just how easy it easy to understand but one thing I love about this book is the writers sense of humor. Like the part was talking about AC DC the current of electricity not the rock band and bread boards having anything to do with breads. ( ͡° ͜ʖ ͡°)
One person found this helpful
Amazon Customer –
An Impressive Book – One of the best one I’ve read so far
It is really encompass most basics technical knowledges of how computer works. Very good read! One of the best book helping me with my job yet. Absolute loving it. The lingo that the author used are easy to read and understand with illustrations is the cherry on top. Must buy
2 people found this helpful
Ronald –
Very nice book which goes ,not too little or too much, sufficiently into detail on the topics inside
This is a really good book that I would recommend to anyone that fits the description ,which the author provided, for those that should read this book in the beginning. It has just enough depth and breadth to encourage someone to go deeper in a particular topic if it’s of interest to them.I thoroughly enjoyed the projects as well.I think I had some static discharge break one of my logic gates or maybe I had an incorrect setup on my breadboard but I noticed that I would have some issues on these hardware-focused projects as opposed to the ones dealing with software. So I found myself skipping some of the former. I think the author should go a bit more in detail for noobs like myself on these projects with perhaps a couple of additional photos.
One person found this helpful