My experience with them was less than favorable. We started our book journey with them but had to abandon them because their editorial team & processes were so bad. Their insistence on artificially inflating the book's thickness with larger fonts was just the final straw.
We were fortunate to work with Manning & O’Reilly to complete our book. The quality, professionalism, and integrity we saw with them and the contrast with Packt was night and day.
No, we tried escalating the issues on those practices to the exec team, explicitly requesting a change in policies to enhance the quality of our book. The middle managers we were dealing with simply threw in the towel after that.
PS: This was several years ago, and the policies may have degraded even further since then.
Same here. Packt's business model is quantity over quality. Some of the books are a copy paste of the official documentation with minimal changes. And there is no depth at all. I stay away from Packt books, but if there is a recommendation, can read this one.
I was an (unpaid) technical reviewer for a Packt book on Arduino back in 2012. After a couple of chapters I realized that the book made little sense and was mostly plagiarized. It took more effort and conflict than I liked to convince Packt that this was a problem and couldn't merely be fixed by editing. I definitely would not be a Packt reviewer again.
+1 for staying away from Packt. I was once part of the review process for a draft. It was poorly written by someone who clearly wasn’t a domain expert. The published version was just as bad as the draft, irrespective of the feedback given by all the reviewers.
+1 on the questionable quality of content by Packt.
It's generally not the highest quality content from whatever little experience I have. Most of the books that I read had outright wrong examples, that did not even compile. Content always seemed rushed and superfluous with no real thought given to coherency.
I got asked to write a book by Packt as a lead author with two years experience in a junior position. This was a (badly) paid role of like 800 GBP or something. Take from that what you will...
Haven't heard of him before, but did get a little giggle from the website's almost 'bizspeak' description of a tool they have. It's so vague I have to give it credit.
from what I gathered, pakt tends to be a free for all. manning offers a similar subscription service and I've found that while the selection is smaller, the quality is much better.
IMO, the best textbooks for computer architecture and organisation are Computer Organisation and Design and Computer Architecture: A Quantitative Approach, both by Patterson and Hennessy.
The former book even comes in a variety of assembly languages, including MIPS, ARMv8 (or a subset, called LEGv8, heh), and RISC-V.
Also a good option for those whose main interests are on the software side is "Computer Systems: A Programmer's Perspective" by Randal Bryant and others.
The former of the books is introductory material which is taught at the Bachelors Level while the other book is more rigours and suited as a masters/research level book.
I feel lucky then that I had to take both a comp org and comp arch course when I did my bachelors, the first course used the first book and the second course used the second book.
Our final project in the first class was to develop a software simulator in Unix for a MIPS processor and get it to run software that was created by the assembler we had to write in our system tools class.
Our final project in the last class was to develop a synthesizable Verilog implementation of a basic MIPS processor (with bonus credit for making it superscalar). It was really cool to see a computer system created by me from the ground up including an assembler, loader, and linker and using the simulator we wrote previously to check the Verilog implementation against.
Fantastic material, was a good read, and I still have my copies of both books 20 years after starting my undergrad.
Now I kind of want to implement a MIPS processor in software, write a machine monitor, assembler, loader, and linker for it and see if I can get that working on an FPGA....
If you're interested in ARM and hardware design, "Digital Design and Computer Architecture: ARM Edition" by Sarah Harris and David Harris is available in the ACM Digital Library as a free PDF: https://dl.acm.org/doi/book/10.5555/2815529
Better option: Computer Organization and Design by Patterson and Hennessy, ISBN 978-0124077263. Comes in MIPS (original version now in its 5th edition), ARM and RISC-V focused flavors, covers "instructions unique to architecture X" as part of its discussion.
I could not agree more with this recommendation. For folks who don't yet have this book but are interested, there is a set of online companion materials[0] that are freely available and contain a good bit of useful information.
I had no idea they did RISC-V and ARM versions! Very cool.
This was the book for the "weed-out" class I took my first semester in college. Nearly failed that class, but it opened my eyes to so much more of computing, beyond just "coding".
The struggle make your knowledge crystallize even better, on top of overcoming the failure. I almost wish anyone to fail one important class in university.
Does anyone have an idea how bad is the ARM version? The reviews online say they did not fully adapt it from MIPS, and that the instruction set is partially made up instead of using the real one, which means listings won't work on real hardware.
The ISA doesn't really matter (at least, not between MIPS, ARMv8, and RISC-V) when you're first diving into computer organisation. That's why one book can be sold with three different ISAs. The overarching concepts are mostly the same: you have digital logic, IEEE-754, basic assembly (add, sub, and, not, xor, load, store, shift), pipelining and hazards, caches.
Only afterwards do the differences between the ISAs come to play, when you have complex vector and ISA-specific instructions, superscalar pipelines, atomic instructions, etc.
I agree it's bad phrasing, but isn't the only real error here using "with fractions" rather than "with fractional digits"? Perhaps this is an idiomatic difference between different English dialects, such as American vs British? I'm not sure. If you read fractions as meaning fractional digits, the inaccuracy goes away completely, I think.
I would also use "real number" instead of "real", but that may be more of a stylistic choice rather than idiomatic.
Good point! I’m not a mathematician so the pedagogy here doesn’t really irk me. But, I do also believe that teachers should be held to a higher standard, especially when writing out educational text. Thanks for the clarification!
Also, I bet the authors weren’t intentionally trying to lead readers astray with that statement. Most books have a preface with some point of contact if you find errors. I’m sure if you wrote in the authors would be happy to fix this up :)
I wouldn't say it's a nitpick. Rationals are fractions of integers, not just any fractions at all. Rationals are _examples_ of reals, but it's bad pedagogy to say "fractions, which are called reals" because it sounds like the authors are giving a definition of reals. While they technically did not say this was a definition, it is sloppy.
Fractions = rational numbers, which are an infinitely small subset of the real numbers. The rest of the reals are irrational numbers, of which pi and e are examples.
This book is the reason I was able to pass my computer architecture exams in grad school. Just lugged the 800 page monstrosity around an entire semester and read it every chance I could. A really wonderful book ... I should get a recent copy and re-read it again.
God this book fucking rules! Used this in school and was the only textbook I found myself just working through outside of class for my own personal enrichment and entertainment. Can't recommend it enough
I managed to get my hands on a really old version of this book (maybe 20 yrs old - no ARM I don't think). Do you think that is still good? Or should I just get the new one?
It depends what you mean or want by way of introduction. Are you interested at all in how your CPU does what it does and why, or were you interested in the "learn x86, ARM and RISC-V" tag-line that was originally on the book title. Do you imagine you will read this book and be writing all your software in assembler straight after? That won't happen, most likely - if you want that and insist you do, I'd suggest the flatassembler forums.
The COD book I recommended was recommended to me by an EE undergrad who took it on one of their courses, and I think it is suitable as an introduction to how computers actually work, with plenty of real-world examples and mentions of architecture features that indicate specific tradeoffs. Of course, whether that is suitable is really going to depend on the person reading it.
The Packt book looks like it might be attempting to do the same thing - except I am slightly worried it likely digresses a bit into virtualization, self driving cars and quantum computers (based on the Packt TOC and github repo). I'm going to say this is scope creep - I don't know how deep it goes into virtualization, but personally I think understanding how x86 does virtualization is much less useful than understanding the wider problem of how to partition hardware. If it doesn't say LPAR somewhere in there or discuss mainframes, I'd be disappointed. Self-driving cars do not, in my opinion, belong in a book on how modern computers work, and I'm not sure the author's experiments with IBM's quantum computer cloud thingabob are really what I want out of such a book either.
That said, I've not read the Packt book and I can't say anything about the earlier content. I have read the COD book - but I wish I'd come across it earlier than I did. Still, I got something out of it.
Some graduate textbooks are highly specialized and for niche fields - my formal education is in mathematics and I can definitely say this about some graduate maths books - but this is not one of them. I think it is widely applicable to anyone who a) wants an introduction to how computers do their stuff or b) already broadly knows, but has some gaps and wants to fill them in.
And FWIW the book you recommended is for undergrads and is a much more accessible read, according to the authors. I saw "Computer Architecture: A Quantitative Approach" and got confused.
Can anyone recommend a book like "Modern Processor Design: Fundamentals of Superscalar Processors" but more recent? I'd like to know the details of how current processors are implemented. Something like the next level after "Computer Architecture: A Quantitative Approach."
No they have not. There is the odd book and author that are quality but it seems to be the exception. You can almost always guarantee:
The formatting is atrocious. You will regularly get blurry and illegible images for things like terminal screen shots or else just regular text on a white page that is supposed to be terminal output.
Books often to appear to have not been proof read.
There are regularly pages that have one or two sentences on them. Presumably this is done in order to pad the book length.
As a company they are pure garbage. There is probably no way any independent publisher can put out that volume of books and maintain any level of quality. I believe their business model is simply to flood search results with their titles. In a given year they will put many titles on the exact same subject or tech stack.
Because I can't keep up with all of tech, I usually get books from publishers I trust. First on that list is O'Reilly's. These guys are not on the list. Also if I buy through Amazon, I buy used. Cuts down on a lot of crap.
I always find computer architecture a strange/tricky topic to cover in a tech book, its either too vague, or too specific, often forgetting about using the right tool for the job. From the index, this looks like the latter but if I get a chance I'll check it out.
The only one I've found so far that hit the right notes for me personally was Software Architecture Patterns (9781098134273), Mark Richards.
This topic list looks interesting, if not a bit too 'distracted'.
> Software Architecture Patterns (9781098134273), Mark Richards.
It's interesting that you compare this with a book about computer architecture because "Software Architecture Patterns" doesn't seem to be concerned with computer architecture at all but more about ... software architecture with concepts such as Event-driven architecture and microservices.
Software architecture and computer architecture are two completely different topics. They have very little overlap; the two disciplines only come together when writing compilers.
Sometimes I feel Packt books are not the highest quality. Happy for anyone to disagree and tell me a different impression.
I was reached out by Packt a few times on LinkedIn with something like: "hey, if you want to write about stuff, let us know".