Sponsored links

Valid XHTML 1.0!
Valid CSS!

Product: Book - Paperback
Title: Assembly Language Step-by-step: Programming with DOS and Linux (with CD-ROM)
Publisher: Wiley
Authors: Jeff Duntemann
Rating: 4/5
Customer opinion - 4 stars out of 5
A Great Starter for Assembly Language

Learning assembly language for the first time is often a harrowing experience. It can be greatly worse if you are trying to learn it on your own. For those of you who are trying to do just that with x86 assembler, this is a great starting point. This text opens by covering the basics of arcitecture as well as binary and hexadecimal, giving the future assembly programmer a background in the all-important workings of the computer. While far from a thorough approach of x86 assembly, this book is one of the best introductions possible for independently learning low-level programming.
For beginners in low-level programming, I give this 5 stars. For those with previous (non-x86) low-level programming experience, I give this 3 stars (due to its treatment of rudimentary subjects with which they would already be familiar). This text is not recommended for individuals who have had x86 programming experience unless it is to be used as a quick "refresher" on the basics. A suggested follow-up text for this is Peter Abel's IBM PC Assembly Language and Programming (5th Edition).

Product: Book - Paperback
Title: Inside C#, Second Edition
Publisher: Microsoft Press
Rating: 3/5
Customer opinion - 3 stars out of 5
Inside C++

With a name like Inside C++ and coming from Microsoft Press I was suprised at the lack of depth for some of the topics I consider fundamental. For example, there is very little information on the differences between overloading in C++ and C#. For example, there are no examples of how overloading spans classes which is not possible in C++ due to the dominance rule. Another example is the use of the sealed keyword. The language specification says it is useful for stopping overrides at a certain point in the hierarchy, but there is no mention of that in the book. Indexers were skimmed over, there is not one example of an indexer with multiple arguments, nor one with an argument of type other than int. The System.String class is hardly covered, I would have expected at least a table of the methods. Doing input from the System.Console class is non-existent. To be fair the chapter on multithreaded programming is quite good as is the chapter on attributes. I was expecting a level of detail more in line with the language specification only with many more examples.

Product: Book - Hardcover
Title: Advanced Programming in the UNIX(R) Environment
Publisher: Addison-Wesley Professional
Authors: W. Richard Stevens
Rating: 5/5
Customer opinion - 5 stars out of 5
_THE_ book of UNIX programming

You need to know something about UNIX programming? It's probably in this book. You need to know about Pipes and file IO? It's in this book. You need to know about processes? It's in this book. It doesn't contain the kitchen sink, but almost everything else you can think of needing.

Product: Book - Paperback
Title: Mastering Algorithms with C (Mastering)
Publisher: O'Reilly
Authors: Kyle Loudon
Rating: 2/5
Customer opinion - 2 stars out of 5
A small collection of over-commented code

I hoped to find a broad overview of existing algorithms. Instead I got a small collection of over-commented code. It is true that this book contains some algorithms not discussed in similar books, but it also doesn't contain many algorithms that I consider a part of a programmer's standard toolbox. For example, there is no mention of string matching and searching. The author discusses an implementation of the LZ77 compression algorithm, but doesn't even give a hint as to the workings of related (better) algorithms. There is an implementation of the RSA public key encription, but no mention on how the private encription/public decription counterpart works. The discussion on hash tables only covers hash tables with linked lists, and not the easier to implement double hashing. And I could go on and on.
But the most annoying thing about the book is the author's commenting style, which render the code itself unreadable. Almost every instruction is commented by a 5-line high, 80-column wide comment block, exactly in the way that Rob Pike makes fun of in his "Notes on Programming in C" article, where he says: "Don't laugh now, wait until you see it in real life."
In short, I would only recommend this book to people wanting to learn some basic algorithms, but already have a strong sense of correct programming style.