Back to the bookshelf

Typographic jacket · original cover not fetched

FROM THE SHARED SHELF · 2006–2026 SAMPLE

Digital Design and Computer Architecture

David Money Harris and Sarah L. Harris

2 readers recommend it across 3 discussions

Topics are model-inferred labels.

Keep it on your reading list

THE WORD OF MOUTH

What made it worth passing on?

Original Hacker News comments, in the readers’ own words.

Kenji
Digital Design and Computer Architecture (Harris & Harris) Why? Because we software engineers can learn a lot from the hardware guys. Almost every piece of software I write these days contains some finite state machines (technically, every program is a finite state machine, where the binary string that makes up all your variables at a given point in time is one state, that insight alone is valuable, but I mean with explicit states in the code) - in fact, they often make up the core structure and uphold some strong invariants that make reasoning about the code simpler. And if one finite state machine does not do it, then you can nest them and keep all the benefits.
Kenji
>Surely You're Joking, Mr. Feynman!: An excellent book with autobiographic content about Richard Feynman, contains many funny stories and interesting insights of this brilliant man. >J. Hromkovic: Theoretical Computer Science: An excellent introduction to complexity theory, kolmogorov complexity, automata and turing machine, language and grammar theory >Harris & Harris: Digital Design and Computer Architecture: Introduction to electrical engineering, graudally builds your knowledge until you could implement a simple little CPU in e.g. Verilog.
saurabhsharan
Two suggestions: Elements of Programming (by Alexander Stepanov and Paul McJones) takes a mathematical approach to programming. Since its only prerequisite is a basic understanding of high school algebra, the book is very accessible and easy to follow. Digital Design and Computer Architecture (by David Harris and Sarah Harris) is a great book on computer architecture that starts with digital logic design (i.e. gates and transistors) and ends with a subset of the MIPS instruction set. Though, it probably won't help you much in 'daily work'.

Also recommended in this reply