Sponsored links

Valid XHTML 1.0!
Valid CSS!

Product: Book - Hardcover
Title: Programming Windows with C# (Core Reference)
Publisher: Microsoft Press
Authors: Charles Petzold
Rating: 5/5
Customer opinion - 5 stars out of 5
Great book

Depends on what your looking for. I find this book spend more words talking about what its going to talk about in future chapters than just talking about the topic of the current chapter. It gives a lot of in-depth reference to really how the language works, but if you are looking for an easy to follow tutorial to get up and running quickly, this is probably not the best book.

Product: Book - Paperback
Title: Pragmatic Project Automation: How to Build, Deploy, and Monitor Java Apps
Publisher: The Pragmatic Programmers
Authors: Mike Clark
Rating: 5/5
Customer opinion - 5 stars out of 5
Lava Lamps and Groovy - the hippest software book ever!

Where has this book been all my life?! Mike Clark's clear, concise, and fun style has me on the edge of my seat eager to find out what trick is next. His CruiseControl RSS publisher is already in action on one of my projects, and even more of these gems are working their way into my routine.

Mike didn't just stop when he finished writing the book. He is also running an ongoing site of automation tips/tricks that I encourage everyone to tune into.

Product: Book - Hardcover
Title: Program Development in Java: Abstraction, Specification, and Object-Oriented Design
Publisher: Addison-Wesley Professional
Authors: Barbara Liskov, John Guttag
Rating: 4/5
Customer opinion - 4 stars out of 5
A book more students should use

Barbara Liskov brings name recogntion the text. Respect comes for reasons, though, and this book shows many good reasons for respecting this educator and her co-author.
This would be a good book for a second or third course in comptuer science. Even so, seasoned pros should take this book seriously. The reader is assumed to be familiar with basic programming and data structures. The reader is also assumed to be familiar with Java - "development in Java" means that Java is the vehicle, not the topic being taught.
Techniques in this book are a level above the most concrete. It's premise is that any piece of code must be viewed in many different ways; right and wrong answers are the least of it. The book starts with a simple but rigorous set of commenting conventions - it makes one wish for a truly rigorous programming language. For each method, one specifies its prerequisites or assumptions, the set of objects with state chaged by the method, and the specifics of the change being made. The authors focus clearly on ambiguous specification at this level; explicitly undefined behavior has a valid role in many rigorous designs. This leads naturally to discussion of parameter checking, error handling, and proper use of thrown exceptions.
The authors develop a few unusual but critical ideas, including mutability - the possibility that an objects data content can change after creation. In well-disciplined programs, this property has far-reaching implications. Liskov and Guttag involve mutability in equality testing, object identity vs. data equality, and valid naming or indexing.
Encapsulation and data hiding have long been design staples, but the authors' examination keeps the idea fresh. They discuss, from the standpoint of provable correctness, how data exposure puts programs at risk. They also make clear how, viewed with an eye to maintainability, the risks of even read-only exposure of an object's data content. They stop short of discussing true formal verification or industrial practice, though, a decision I think appropriate to the book's level. Readers with deeper knowledge can still appreciate the discussion at its implicitly deeper levels.
By the time the authors address high-level system specification, it seems almost obvious. Without high-level specification, there would be no way to fill in the more detailed specifications that now come naturally to the reader. The authors also address that tricky moment between specification and implementation: the intuitive process of design.
Only the end of the book disappointed me, a half-hearted presentation of design patterns. It seems almost perfuctory, presenting DPs just because it's the done thing, not because the authors add their usual depth to the topic.
I really wish I had more upper-level students and professional colleagues who had been trained according to these authors' program. Their software designs, as students and as professionals, would be stronger and safer if they had.

Product: Book - Paperback
Title: Code Complete, Second Edition
Publisher: Microsoft Press
Authors: Steve McConnell
Rating: 5/5
Customer opinion - 5 stars out of 5
Top of the shelf!

I have 2 books on the top of my shelf: Code Complete and Windows Server 2003 Inside Out. I consider both books to be the official bibles for programmers, developers, and old IT hack pros like me.

I bought the original edition of "Code Complete" back in 1994. 10 years later I bought the second edition as soon as I thumbed through it. This edition has been completely updated to reflect what's happening in programming. At nearly 1000 pages, there's many examples as well. I like the coding horror examples the best--these show examples of bad code.

Code Complete helps you think more clearly about coding. Then backs this up by providing many techniques and practices.