Code: The Hidden Language of Computer Hardware and Software

Category: Computer Science
Author: Charles Petzold
4.7
All Stack Overflow 20
This Year Reddit 69
This Month Reddit 8

About This Book

In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.

Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of computers and other smart machines.

It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.

Comments

by [deleted]   2019-11-17

This might not be exactly what you're looking for.Code: The Hidden Language of Computer Hardware and Software is basically a crash course history of Computer Science. It's not overly technical, it's the kind of mass production piece you'd find in a Barnes and Noble.

by shhh-quiet   2019-11-17

I've seen this recommended before.

Keep in mind that a computer is a collection of abstractions, from the very high level of programming languages and the actual products built with them, down to the very low level of circuits and logic gates and even the physics of electromagnetism... with people devoting sometimes their entire lives to individual slices of that stack of abstractions.

by Mydrax   2019-11-17

The short answer is no.

If you're planning to actually learn the things you say you want to learn, then no book would allow you to do so without you being close to a computer.

Why? Because the technologies you mention revolve around practically being capable of implementing them to solve problems and there is absolutely no way you would be capable of grasping something like for example closures in JS, flexbox in CSS or designing a responsive and neat grid in bootstrap without actually implementing them. Suppose you did read about them for 2 weeks, you come back home, get on your computer, I'd bet anything you won't be able to make sense of what you've read or worse you've forgotten about it.

So let me make you a suggestion, do some theoritical study based on some other field that would help you to understand programming as a whole, or just abandon this fiasco and don't read books, it's your vacation after all. If you're dead set however, read books like this, this, this or this (one of the first books I've read, golden to say the least). You'd come back home ready with a warmed up mindset to begin programming.

I apologize if I sounded aggressive, but when it comes to certain things there's the right and wrong way to do it and reading a book to learn programming is one of the wrong ways to learn programming.

by reddilada   2019-11-17

Give Code a look.

by mcscottmc   2019-11-17

https://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319/ref=mp_s_a_1_1

This book explains how computers work from first principles (electricity and switches on up). Very easy to read. I am surprised it hasn’t been mentioned yet.

by Cyphierre   2019-11-17

I Highly Recommend for that purpose.

by rcyost   2019-08-24

https://www.amazon.com/gp/product/0735611319/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1

by Spasnof   2019-08-24

Awesome book Code , really helps you understand from a bottom up perspective. Super approachable without a CS background and does not need a computer in front of you to appreciate. Highly recommended.

by serimachi   2019-08-24

It's so great you're being so proactive with your learning! It will definitely pay off for you.

I like other's suggestion of Clean Code, but I fear as a first year that it may have mostly flew over my head--not that it would at all hurt to read. For a first year student specifically, I'd recommend either of two books.

Structure & Interpretation of Computer Programs, also known as The Wizard Book and free on the link I just sent you, is a famous textbook formerly used in MIT's Intro to Computer Science course. However, it's conceptually useful to programmers on any level. If you really, seriously read it and do the exercises, it's gonna give you a rock-solid foundation and shoot you ahead of your peers.

It uses Scheme, a quote-on-quote "useless" programming language for any real-world purpose. That's arguable, but the important thing about the book is that it's really edifying for a programmer. The skill it helps you develop is not the kind that will directly show on your resume, it's nothing you can point to, but it's the kind of skill that will show in your code and how you think and approach problems in general. That said, the book has exercises and the MIT site I linked you to has labs that you could potentially show off on your github.

Code: The Hidden Language of Hardware and Software is much more approachable, is not marketed specifically for programmers, and does not contain any exercises. Read it, though, and you'll find you have a huge boost in understanding the low-level computing classes that your classmates will struggle with. What is basically does is show the reader how one can build a computer, step by step, from the very basics of logic and switches. It's readable and written for a casual audience, so you may find it easier to motivate yourself to finish it.

SICP and Code, despite both being extremely popular, can be a bit difficult conceptually. If you don't fully understand something, try reading it again, and if you still don't understand it, it's fine. Everyone experiences that sometimes. It's okay to move forward as long as you feel like you mostly get the topic. Don't let the perfect be the enemy of the good.

Best of luck to you, and be excited! It's thrilling stuff.

by codeificus   2019-07-21

The 86 stands for the instruction set for the cpu. Basically, every chip designed in the world accepts input and output, but in different ways (different numbers of connections, ordering). All of those chips have more or less backwards compatibility with regard to that, so it makes it easier for others to develop around that.

So there is a meaning conveyed, though it probably isn't important to you if you aren't developing hardware or writing assembly.

I strongly recommend Code by Charles Petzold which explains the origins of these chipsets. Basically Intel put out the 8080 in 1974 which was an 8-bit processor, then the 8086 in 1978 was a 16-bit processor, so they just ran with the number scheme (6 for 16 bit). The "80" from 8080 probably came from IBM punchcards which were used for the US census (since the 1920s!), which is actually how IBM started, basically as the child of Herman Hollerith who built automated tabulating machines in the late 19th century. Also this is to blame for the 80-character terminal convention. Blame IBM.

by Lesabotsy   2019-07-21

This should answer the question: Code: The Hidden Language of Computer Hardware and Software.

by ahiddenmessi2   2019-07-21

https://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319/ref=nodl_ This book says about everything

by pixel_sharmana   2019-07-21

Code: The Hidden Language of Computer Hardware and Software by Charles Petzold

The book starts with very simple binary logic, then how to create your own transistor out of bent wire and batteries, building logic gates out of transistors, creating your own assembly language, then implementing BASIC on top of that, and finally screens and pixels

by ChickeNES   2019-07-21

https://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319

https://www.amazon.com/dp/0226458121

https://www.amazon.com/dp/0226750213

https://www.amazon.com/dp/0201835959

https://www.amazon.com/dp/0393306763

https://www.amazon.com/dp/039331152X

https://www.amazon.com/dp/0393061329

by anonymous   2019-07-21

CODE: The Hidden Language of Computer Hardware and Software

By Charles Petzold

This is a good book for conceptual hardware design. Petzold may be the best computer tech writer around.

http://www.charlespetzold.com/code/

http://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319

by anonymous   2019-07-21

Stackoverflow is not the appropriate venue for this kind of question, but if you'll just read this book it explains exactly what you're asking: http://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319

by okozmey   2019-07-21

Hi! 1.For you as a human. And the first advice is not give up! We all meet with problems. Problems are our part of life.

  1. For you as a future Software Engineer.

You can start with these books:

  1. Code The Hidden Language of Computer Hardware and Software (https://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319)
  2. Computer Science: An Overview(https://www.amazon.com/Computer-Science-Overview-Glenn-Brookshear/dp/0133760065)
  3. Introduction to Computing Systems(https://www.amazon.com/Introduction-Computing-Systems-Gates-Beyond/dp/0072467509)

These books should give you a good fundamental knowledge about CS(History of Computing, Computer Architecture, etc).

IF YOU NEED SOME ADDITIONAL ADVICE JUST LET ME KNOW. I'LL BE HAPPY TO HELP YOU!

by WishboneTheDog   2019-07-21

It has a pretty wide scope, but it's awesome, especially if you are interested in the history:

Code: The Hidden Language of Computer Hardware and Software

by Bizkitgto   2019-07-21

You need to read the book Code by Charles Petzold. All your answers are there. This book is truly fascinating!

by PintSizedCat   2019-07-21

It's not strictly a development book and I believe that I've mentioned it in another answer somewhere but it's a book I really believe all developers should read, from php to Java to assembly developers.

Code

It really brings together what's under the hood in a computer, why memory shouldn't be wasted and some of the more interesting parts of the history of computing. It's an introduction to the computer and what it is. It gave me my ultimate passion for low level programming and helped me understand pointers and memory more than any other computer.