As a computer science student (Informatik over here), I have to say that my university program was heavy on theoretical CS and maths, but there was extremely little in terms of hardware or low level engineering. The one networking class I took diving into the internet stack was probably the closest to it.
Obviously everyone's experience will be different but I think of a CS education more of treating computers like an abstract machine, not a physical one.
Don't oversell it. Speaking as someone who has done VLSI layout of a 32-bit processor in my student days, Petzold's book is a solid popularization but it doesn't cover a tenth of what a computer engineering degree does.
Depends on the school, for sure. My CS education included a course on Computer Architecture, for which the final project was to implement your unique architecture on an FPGA and demonstrate it running a (simple) algorithm. I liked that course so much, I went back for Computer Architecture II and learned about pipelining, hazards, etc.
"I'm speaking about MY computer science degree". Fixed that for you.
My computer science degree included courses on microprocessors, circuit design, logic, system architecture, etc. and I think that most rigorous CS programs would also include these.
I can't tell whether I had an unusually good CS education, or if I'm missing something, but everything I see discussed in this thread as crucial insights taken from this book are things I recall being covered at least once in university, yeah. Perhaps it's just especially effective in its organization and ordering of fundamentals. Still, the praise it's getting makes me want to pick up a copy just to see if it can fill in any gaps I've missed in truly grokking those concepts.
> Perhaps it's just especially effective in its organization and ordering of fundamentals.
This is it. It’s not going to tell you some deep technical details about how modern processors work, but it’s an extremely well-written introduction to low-level computer concepts that any moderately intelligent person can follow with no prior specialist knowledge, which is rare among nonfiction books. But still, it’s a popular science book, not a thorough technical treatise.
Also, probably a lot of people read it before university. I read it at age 16 or so and learned basically my entire framework for understanding what a computer is and does. I doubt someone with a rigorous computer engineering degree under their belt would learn anything specific, but it’s still a fantastic piece of writing and you might enjoy seeing a good explanation from first principles of how everything fits together.
I think the difference is that this book in about 200 pages or so, starts from two boys using flashlights to attempt to "communicate" with each and goes through simple circuits to logic gates to CPU, ALU, volatile memory, rudiments of assembly language to a high level language. That's the difference, hand holding you through the explanations with the emphasis on pedagogy rather than being a dry theory book.
Yes, it consolidates a ton of information very well. I think it can appeal both to the beginner/layperson as introductory, or to those with more experience to put lots of pieces together. I didn’t learn much new information but it tied together many things, and just reviewing and recalling old theory felt like a good exercise.
Maybe where you went, but that definitely wasn’t the case in my CS degree. Code is really great and he’s a better teacher than most of the professors I had.