Programming Books C Java PHP Python Learn more Browse Programming Books
Write Great Code: Volume I: Understanding the Machine: 1 and over one million other books are available for Amazon Kindle. Learn more
Trade in your item
Get a $2.37
Gift Card.
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

Write Great Code: Volume 1: Understanding the Machine Paperback – October 25, 2004


See all 2 formats and editions Hide other formats and editions
Amazon Price New from Used from
Kindle
"Please retry"
Paperback
"Please retry"
$25.94 $6.12

NO_CONTENT_IN_FEATURE

Shop the new tech.book(store)
New! Introducing the tech.book(store), a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Product Details

  • Paperback: 440 pages
  • Publisher: No Starch Press; 1st edition (October 25, 2004)
  • Language: English
  • ISBN-10: 1593270038
  • ISBN-13: 978-1593270032
  • Product Dimensions: 9.2 x 7.1 x 1.1 inches
  • Shipping Weight: 1.9 pounds
  • Average Customer Review: 4.8 out of 5 stars  See all reviews (19 customer reviews)
  • Amazon Best Sellers Rank: #377,032 in Books (See Top 100 in Books)

Editorial Reviews

Review

5/5 stars, "you will have a greater understanding and appreciation for code that is written efficiently" -- MacCompanion, January 2005, http://www.maccompanion.com/documents/freeissues/2004/january2005.pdf

About the Author

Randall Hyde is the author of Write Great Code Volumes 1 and 2 (No Starch Press) and the co-author of MASM 6.0 Bible (The Waite Group). He has written for Dr. Dobb ™s Journal, Byte, and various professional journals. Hyde taught assembly language at the University of California, Riverside for over a decade.


More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

4.8 out of 5 stars
5 star
16
4 star
2
3 star
1
2 star
0
1 star
0
See all 19 customer reviews
Write Great Code: Understanding the Machine by Randall Hyde is a great book.
Eric Kent
As I said before, the casual tone makes the material easy to follow, as well as Hyde's very clear explanations.
Lance C. Hibbeler
If you want to learn about computers at a low level, then this is a great book to start with!
Barry

Most Helpful Customer Reviews

73 of 81 people found the following review helpful By W Boudville HALL OF FAMETOP 1000 REVIEWERVINE VOICE on October 31, 2004
Format: Paperback
As new computer languages arise that have more power, like Java and C#, have you noticed something? Often, someone might learn programming without ever having to know about the architecture of a von Neumann machine. Yet most computers since World War 2 have this design at their very core.

Hyde fills in this gap in the education. At one level, you should read it for "culture". It explains the basis of programming. Granted, for most of us, there is often no direct need for understanding how binary arithmetic is implemented. Or why registers can speed up performance. And what is cache memory, really? We finesse our ignorance by invoking libraries that subsume these details.

The material that Hyde explains may occasionally be of use. What if you need to write some of these low level procedures in assembler, to reduce a bottleneck? After using a profiler on your runtime code to find the key routines, do you have any idea how to improve matters?

Even out of pure intellectual curiosity, you should know what happens at the silicon. Or are you just a wage slave? Programming because you have to? A good programmer who loves to program should know this material. Also, out of pure self interest, you should always burnish your programming skills. To separate you from your peers.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
24 of 25 people found the following review helpful By Thomas Duff HALL OF FAMETOP 500 REVIEWERVINE VOICE on December 5, 2004
Format: Paperback
As computers have gotten smaller and faster, developers have become more and more removed from the lowest levels of programming. Randall Hyde's new book Write Great Code - Volume 1: Understanding The Machine (No Starch Press) will help you get back to the basic levels of how computers work and how that affects your programming.

Chapter List: What You Need To Know To Write Great Code; Numeric Representation; Binary Arithmetic And Bit Operation; Floating-Point Representation; Character Representation; Memory Organization And Access; Composite Data Types And Memory Objects; Boolean Logic And Digital Design; CPU Architecture; Instruction Set Architecture; Memory Architecture And Organization; Input And Output (I/O); Thinking Low-Level, Writing High-Level; ASCII Character Set; Index

It used to be you couldn't program at all without knowing this material. The design of a program was tied closely to the machine architecture, and it drove the instruction set and the overall programming decisions. But now the higher-level programs have made it easier for mere mortals to write a program and be completely oblivious to how a CPU executes an instruction or loads data from memory. Hyde goes into great detail on all the instructional design and theory, and I'd venture to guess that a very small number of programmers (and I'm not one of them) know most of this information. The assumption is that you'll know at least one procedural language (like C, C++, BASIC, or assembly). He rotates examples among C, C++, Pascal, BASIC, and assembly so as to keep the examples as language-neutral as possible.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
28 of 30 people found the following review helpful By Barry on October 25, 2006
Format: Paperback Verified Purchase
This is a great book but I have to disagree with the overall viewpoint. I've been doing embedded programming for a while and if that's all I'd ever done I would totally agree that understanding low level concepts helps write better code. However, I also write a lot of code in C#. People who normally use high level languages such as C#, VB.Net, or JAVA are probably not going to benefit much from this book. These languages are so far abstracted from the hardware level that the concepts are hard to apply anywhere. On the other hand, if you still use malloc on a daily basis, you need to read the book :) Anyway, the book is easy to read and I never caught any errors. If you want to learn about computers at a low level, then this is a great book to start with!
1 Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
23 of 26 people found the following review helpful By Jack D. Herrington on November 6, 2004
Format: Paperback
A great programmer has both a compiler and a CPU in his head. You have to understand how a machine operates to understand how you can get yourself out of trouble if you have a problem that you don't understand. Particularly when you are using a systems language like C, C++ or assembler.

This book provides an in-depth understanding of the working of a CPU. And it does it in a well written and organized way with very effective use of illustrations. This is not the assembler book you remember. This book is targeted at systems level programmers who need to understand the machine in order to make the best use of it.

Given that many programmers start by learning Java, and learn C as their low level language, I can see there being a good market for this book. If you are working on a large C or C++ application, or are writing C libraries for Java, and you don't understand the basics (memory management, stacks, bit shifting, assembler opcodes, etc.) you should get this book.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
14 of 16 people found the following review helpful By Brian Will on February 7, 2005
Format: Paperback
I can't wait for the final 3 volumes of the series (hope they come out soon).

Hyde is too conservative in his advisement: though the book contains snippets of assembly and C/C++ code (and oddly some Pascal and Delphi), you can still read this book by skipping over the code (the book wouldn't be much harder to understand than if you did know one of these languages).

The only criticism I have of the book is the ordering. Basic memory and CPU chapters should go up front because the first 4 chapters about integer, float, and character representation in memory are too dull coming one after the other the way they do. Besides, most of the chapters of this book can be read independently of the others (a nice feature), so they could be rearranged in any order. Hyde at least needs to include a note mentioning this up front.

This book should be read early in the learning of programming. The only caveat is that Hyde overstates the benefits of the optimizations he describes; that is, rather, he gives the wrong impression to programming initiates: worrying about such optimizations are just not worth it these days unless you are writing a system level process (like a driver), writing a portion of code that will execute repeatedly, or writing for a non-PC device.

But whether you incorporate such optimizations into your code, knowing what the machine and compiler do is always to your advantage; one day, it may save your code.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Most Recent Customer Reviews