Suche books:   





Write Great Code: Volume 1: Understanding the Machine
Randall Hyde

No Starch Press, 2004 - 440 pages

average customer review:based on 17 reviews
view larger image
 for more information click here

   highly recommended  highly recommended






Great!

Write Great Code: Understanding the Machine by Randall Hyde is a great book.

Hyde is able to take very dry material and integrate it with security.

Not an easy feat, and this book succeeds!



Learn how computers really work

This book argues that in order to write efficient (high level) code, you must first understand how the low-level system operates. If you have a better understanding of how your computer performs mathematical computations, it might change how you write code for certain algorithms. In any case, this book is one of the most comprehensive volumes in computer architecture that I have seen.

Proceeding from most simple to most complex, the book begins by discussing how numbers are stored, and eventually moves (in the final chapter) to how I/O works. I found the initial chapters most interesting, which included information on binary and hexadecimal numbers, how characters are stored in memory, how the computer handles various floating-point precisions, and how you would go about designing your own character types. It's all basic computer science stuff, but fun to read either as a refresher or for the first time (in case you skipped that day of class).

Each chapter takes on a more complex aspect of the computer, moving from memory representations to CPU architecture. Naturally a discussion about the CPU leads to information on CPU instruction sets. Finally, the author wraps up the book with a discussion on I/O, which includes not just disk access, but the keyboard, USB, optical drives, and the file allocation table.

My only complaint with this book is that I wish that with the impending move to 64-bit architecture, there was more information included in this regard. However, in spite of that small omission, this is a really fascinating book to read. As you write your next bit of code, if you think about what the computer is really doing under the covers, then I think this book has achieved its goal.



 for more information click here









 for more information click here


Positioned Between the Software and the CPU DataBook

This is a most interesting book. It's positioned kind of halfway between the book on a programming language and the data book for the CPU. It contains a lot of information that the computer science classes don't bother to include. On the whole it is rather machine independent (hard to do in today's world where the Pentium class machines are so prevalent), so if you are working on a Power PC or an ARM chip the material here would still have value.

Having said that, the majority of people in the computer business today would waste their time reading this book. Today's "computer professional" works in Excel or Access, perhaps doing just a bit of programming to create a macro, or a little VBA to do something special. That a Hex 41 represents an A is of no value to them. Indeed most wouldn't even know what Hex means.

Those who want to go a deeper however, will find this book to be a great help. There are still a lot of programmers out there who are doing some kind of hardware driver to make a peripheral work with a system. Or they may be doing an embedded system of some kind, and here's the way to get started.

There is one minor complaint. In the definition of great code, it seems clear that Mr. Hyde like tight fast running code. With today's processors running at gigahertz speeds with scads of memory, an argument can be made that the size of the code or the number of cycles it takes is almost insignificant. But if your job is to run something in real time....


 for more information click here






Getting down to the core of software development...

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. The goal when you finish the reading is that you should understand exactly how the architecture of a CPU affects your program, and how to make programming decisions that will lead to efficient programs. This volume will be followed up by another book titled Think Low-Level, Write High-Level. For me, I think this is where a lot of this information will come together.

Foundational information presented in great detail, and a book that all serious developers should take the time to read and understand.


 for more information click here


very clear; not even necessary to know any programming

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.


 for more information click here


reviews: 1, 2, page 3, 4



hot or not?    What's your opinion?     Write a review and share your thoughts!



recommendations

C#/.NET Books for Windows Forms Developers
Some language neutral programming books
Some beginning/intermediate c++ books
Virtual Machine Design




search for books
write great, code, great, machine, understanding, volume, write


Impressum / about us


Suche books: