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
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
volume
s 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
volume
s 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
books:
other categories
apparel
baby
beauty
books
camera & photo
cell phones
classical music
computers
dvd
software
kitchen
gourmet food
health & personal care
magazines
musical instruments
office products
outdoor living
pc & video games
popular music
electronics
sporting goods
tools & hardware
toys & games
pet supplies
vhs video
watches & jewelry
german
Bücher
DVD
klassische Musik