Code Complete
Steve McConnell
A Practical Handbook of Software Construction
ISBN 1-55615-484-4
This book changed the way I write code! Witty and well written, Code Complete gives tons of practical advice on the basics of writing clean code which will be less prone to bugs, easy to read, maintain, and debug. If I only had one book on my computer books shelf, this would be the one.
Database Design for Mere Mortals
Michael J. Hernandez
A Hands on Guide to Relational Database Design
ISBN 0-201-69471-9
If you don't have formal database design training read this book! If you are new to SQL, read this book before reading any books on SQL. I sure wish I'd read this book before I wrote my first Omnis Studio application.
I used this book as a manual when creating an application for a new client. Michael's step by step approach forced me to take extra time talking with the client in detail about the information they use. That extra time at the front end more than paid for itself when I wrote the application.
Database Design for Mere Mortals gives a software independent approach to database design.
Mastering SQL
Martin Gruber
Covers SQL92, SQL99, and SQLJ
ISBN 0-7821-2538-7
I purchased numerous books on SQL. Some of them were easy to read but lacked depth. (i.e. They didn't cover RESTRICT or CASCADE.) "Mastering SQL" has lots of depth, loads of SQL examples, and can be understood by developers who are beginning SQL.
What Every Programmer Should Know About Object-Oriented Design
This book has been replaced by:
Fundamentals of Object-Oriented Design in UML
ISBN: 020169946X
The first two chapters of this book were worth the price! This book opened my eyes to seeing that "everything in Omnis Studio" is an object. The author uses some very nice illustrations to help readers "see" and understand object-oriented programming. (OO programming is a paradigm shift, and the learning never stops.) I recommend this as the first book you read on object-oriented programming.
Fundamentals of Object-Oriented Design in UML apparently replaces the outdated OODN (Object-Oriented Design Notation) with UML. That fixes the one criticism I had about this book.
The Object Primer
Scott W. Ambler
ISBN 0-521-78519-7
This book gets deeper into object-oriented program design and ties it together with UML. The author avoids getting program language specific, which is good for Omnis Studio developers. Scott Ambler takes a very detailed step by step approach. This book is my primary reference for object-oriented programming. I plan to read it again.
Design Patterns
Gamma, Helm, Johnston, and Vlissides
Elements of Reusable Object-Oriented Software
ISBN 0-201-63361-2
This book is heavy reading. Do not attempt this book until you've been doing object-oriented (OO) code for one or two years. The first time I read this book I had no idea what the authors were talking about! Another Omnis developer told me it took him several reads to understand the book. After reading other OO books and making the paradigm shift to OO programming I was able to comprehend the concepts and material in this book. The "Observer Design Pattern" demo library in the downloads section of this website was created using this book.
UML Distilled
Martin Fowler
A brief guide to the Standard Object Modeling Language
ISBN 0-201-657838
If you are working with object-oriented (OO) programming, sooner or later you will find yourself looking at UML diagrams. This book is quick to read and gives a good overview of UML. In the process of reading the book you also pick up helpful OO programming concepts and tips.
A memorable quote from the book: "Object languages allow advantages but don't provide them. To use these advantages, you have to make the infamous paradigm shift."