There are probably thousands of books out there for programmers covering all the different hardware platforms, operating systems, languages, and problem domains. Some are more useful than others, and it is difficult to figure out whether or not a given book will fit your needs. One of the most frequently asked questions in the programmer newsgroups is "What is the best book for topic X?" The following list may help to steer you towards a worthwhile purchase or read.
NOTE: Some of the books listed here may have newer editions. Please check with your preferred book seller.
If you can recommend any other good books for programmers, please e-mail us.
If you wish, you can order any of these books directly from this page through our association with
Cocoa Programming for Mac OS X by Aaron Hillegass
Cocoa Programming by Scott Anguish, Erik M. Buck, and Donald A. Yacktman
AppleScript: The Definitive Guide by Matt Neuburg
Danny Goodman's AppleScript Handbook (Mac OS X Edition)
AppleScript in a Nutshell by Bruce W. Perry
Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
Scientific and Engineering C++ by John J. Barton and Lee R. Nackman
Effective C++ and More Effective C++ by Scott Meyers
Java in a Nutshell and Java Examples in a Nutshell by David Flanagan
Java Algorithms by Scott Robert Ladd
Mac OS X The Missing Manual by David Pogue
Mac OS X Unleashed, 2nd Edition by John Ray & William C. Ray
Cocoa Programming for Mac OS X by Aaron Hillegass
Publisher: Addison-Wesley
This book is suitable for anyone with a little C, C++, or Java programming experience who wants to create software for Mac OS X using the Cocoa frameworks inherited by Apple from NeXT Computing. The book is well organized and approachable and provides a great vehicle for coming up to speed with Cocoa. The author runs the "Big Nerd Ranch", a computer training facility, and his years of experience teaching the predecessors of the Cocoa frameworks, NeXTStep and OpenStep, show in the structure of the book and in the easy-to-understand sample code. The chapters of the book systematically take you through the essential features you will need to produce professional looking applications, starting with the basics and leading up to more advanced features such and Drag and Drop, timers, and custom interface elements.
Especially useful is the book's accompanying web site, where you can follow along with the comments of other readers progressing through the book and add comments and questions of your own. (Each page of the book has its own web page.) The site also provides links to solutions to the sample code, solutions for the end of chapter challenges, and links to further reading on the various topics. The second edition has been published in 2004.
Click here to order Cocoa Programming for Mac OS X.
Cocoa Programming by Scott Anguish, Erik M. Buck, and Donald A. Yacktman
Publisher: Sams
This tome is a good complement to the Hillegass book described above. It is definitely not for beginners; they should start with Hillegass. Over 1100 pages in length, it is meant to be a comprehensive reference text for programming in Cocoa, covering many advanced topics not discussed in Hillegass, such as Networking, Sub Processes and Threads, and Application Distribution.
Click here to order Cocoa Programming by Anguish et al.
AppleScript: The Definitive Guide by Matt Neuburg (2nd Edition)
Publisher: O'Reilly and Associates, 2006
This is one of the newest book on AppleScript, and maybe not the best for beginners. However, more experienced users should find it very useful. It covers how the language works and how it can be used in a variety of areas, from process automation to CGI scripting, and how it can be combined with perl and ruby. I have found it extremely useful.
Click here to order AppleScript: The Definitive Guide
Danny Goodman's AppleScript Handbook (Mac OS X Edition) by Danny Goodman
One of the most recommended AppleScript books ever published, this definitive guide has been completely rewritten for Mac OS X by scripting guru Danny Goodman. This Third Edition includes all new Mac OS X examples.
Available at the Lulu print on demand web site.
AppleScript in a Nutshell by Bruce W. Perry
Publisher: O'Reilly
Like all of O'Reilly's Nutshell book, this is a concise and clear summary of AppleScript, Apple computer's much underrated (and probably underused) English-like scripting language. Published in 2001, it covers all aspects of AppleScript for both Mac OS 9 and earlier versions of OS X, using code snippets to illustrate each feature. Beginners might have some difficulty with its terse style, but experienced programmers and scripters will love it. (Danny Goodman's AppleScript Handbook is still probably the best bet for beginners.)
Click here to order AppleScript in a Nutshell
Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
Publisher: Addison-Wesley
This book identifies 23 design patterns - (reoccurring problem structures) and proposes object-oriented coding solutions for each. Once you have read this book you will begin to see these patterns everywhere, including in object-oriented programming frameworks.
Gamma et al. will appeal to both theorists and persons looking for practical solutions. The solutions are clearly developed with easy to follow examples in C++ and Smalltalk. The problem we are currently working on has one of these patterns - the Composite Pattern - and we have found their proposed solution very effective.
Click here to order Design Patterns
Scientific and Engineering C++ by John J. Barton and Lee R. Nackman
Publisher: Addison-Wesley
The title says it all. This book shows how to use the power of object-oriented programming in C++ to tackle many common problems encountered by professional engineers and scientists. It assumes only knowledge of FORTRAN, the traditional language used in science and engineering. It combines immediately usable examples for those most interested in application with abstract discussions that will appeal to scientists and engineers wanting to expand their knowledge and expertise in modern programming techniques. The topics in each chapter become more sophisticated, with later chapters containing some eye opening uses of C++ templates.
Click here to order Scientific and Engineering C++
Effective C++ and More Effective C++ by Scott Meyers
Publisher: Addison-Wesley
These two books are essential reading for the beginning to intermediate C++ programmer. A basic knowledge of C++ is assumed. The books are divided into self-contained units, 50 for the first book and 35 for the second. Each unit demonstrates the effective use of some feature of C++ with easy to follow examples. Topics include templates, polymorphism, private inheritance, exceptions, efficiencies, and double dispatch.
Click here to order Effective C++
Click here to order More Effective C++
Java in a Nutshell and Java Examples in a Nutshell by David Flanagan
Publisher: O'Reilly
There are many, many books covering Java, the platform independent language developed by Sun Microsystems. The Nutshell books are essential references for the experienced programmer making the move to Java. They are very concise, but still manage to convey the key features of the language and its software packages, and how to get the most out of them. As well, the Nutshell book contains a summary of the hundreds of Java classes and the calling sequences of the thousands of class methods (functions).
The fifth edition of the book, covering the latest version of Java is now out. A separate book, "Java Foundation Classes in a Nutshell", has been published to explicitly cover the Java Foundation Classes. Java examples are covered in a separate book.
Click here to order Java in a Nutshell 5th Edition
Click here to order Java Examples in a Nutshell, 3rd Edition
Click here to order Java Foundation Classes in a Nutshell
Java Algorithms by Scott Robert Ladd
Publisher: McGraw Hill
Scott is a well known C and C++ programmer who has translated some of his ideas for writing portable and efficient code into Java. The book covers many of the standard problems of computer science from a Java perspective. Examples include: sorting, searching, containers, trees, finite state machines, linear algebra, data compression, and B trees. In addition, Java specific topics such as serialization, utility classes, and Java's way of handling several mathematical concepts and problems are covered. The examples are well thought out and easy to follow. Although the book was published in 1997, it is still a useful reference.
Click here to order Java Algorithms
Mac OS X The Missing Manual by David Pogue
Publisher: Pogue Press/O'Reilly
This book is not strictly for programmers, but is nonetheless very useful to have for anyone new to Macintosh OS X, which would include many Macintosh developers. It is another in the author's popular series of "Missing Manual" books, and is well worth reading. Unlike most books about Mac OS X, this one explores its Unix-like underpinnings (the Apple implementation is called Darwin) fairly thoroughly. Very good use is made of sidebars for clarifying details and exploring peripheral topics of interest. Pogue's now trademark slogan "the book that should have been in the box" is very apt for this book.
Click here to order Mac OS X the Missing Manual. (Panther Edition)
Click here to order Mac OS X the Missing Manual. (Tiger Edition)
Mac OS X Tiger Unleashed, by John Ray & William C. Ray
Publisher: SAMS
Another book not strictly for programmers, but a great resource for the advanced user or administrator. This book goes into the Unix underpinnings of OS X in much more detail than the Pogue book, and has a large section devoted to server and network administration.
Click here to order Mac OS X Panther Unleashed
Click here to order Mac OS X Tiger Unleashed
If you wish to order any other books, or even music or video from amazon.com, you can do so directly from this page. I have found their service to be timely and efficient.