Looking for a different subject? Take a look at a directory of all of our Developer Reading Lists.
Erik Buck is the author of the upcoming Learning OpenGL ES for iOS: A Hands-on Guide to Modern 3D Graphics Programming and co-author of Cocoa Design Patterns and Cocoa Programming (Sams Publishing, 2002). Erik founded EMB & Associates, Inc. in 1993 and built the company into a leader in the aerospace and entertainment software industries by leveraging the NeXT/Apple software technology that would later become Apple's Cocoa frameworks. He sold his company in 2002 and currently operates Cosmic Thump, a start-up iOS entertainment software company. Erik also teaches an iOS programming course at Wright State University, managed a software product line for a Fortune 100 company, worked in construction, taught science to 8th graders, exhibited oil on canvas portraits, and developed alternative fuel vehicles.
iPhone Programming: The Big Nerd Ranch Guide, by Aaron Hillegass and Joe Conway
I use the first edition of this excellent book as the guide for the iOS programming class I teach at Wright State University. Hillegass and Conway anticipate student questions right before the students ask them. The book is accessible by second year Computer Science students while still benefitting professionals. I've read every introductory book about Cocoa and Cocoa Touch technology in my quest for the best instructional guide, and the closest competitor to iPhone Programming: The Big Nerd Ranch Guide is Cocoa Programming for Mac OS X, 4th Edition by Aaron Hillegass and Adam Preble. [Editor's note: We've linked to the 2nd edition of iPhone Programming above. The fourth edition is also currently available in Safari Books Online.]
Design Patterns: Elements of Reusable Object-Oriented Software, by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
I recommend this book to anyone who is ready to look beyond the question, "How do I write code?" and ask "Why should I write one way and not another?" I look for this book on shelves in the engineering offices I visit. When I interview programmers, candidates familiar with this book impress me. This seminal tome inspired me to write Cocoa Design Patters. No professional software developer should continue without Design Patterns: Elements of Reusable Object-Oriented Software. Also available in Safari Books Online.
OpenGL® ES 2.0 Programming Guide, by Aaftab Munshi, Dan Ginsburg, and Dave Shreiner
After raving in delight about my first two recommendations, I must preface my praise for OpenGL ES 2.0 Programming Guide with acknowledgment that this book is probably not accessible to even experienced programmers unless they have extensive prior knowledge of 3D graphics. Nevertheless, this book is the authoritative reference by the world's foremost experts on OpenGL. The insights and tradeoffs described make this book comparable to The Design and Evolution of C++ by Bjarne Stroustrup in the sense that seemingly arbitrary features, quirks, and limitations are explained nowhere else. OpenGL® ES 3.0 Programming Guide, Second Edition also available in Safari Books Online.
Object-Oriented Programming: An Evolutionary Approach, 2nd Edition, by Brad J. Cox and Andrew Novobilski
This book documents the rationale and implementation of the Objective-C Programming Language used to create NeXTstep, which later became Apple's Cocoa and Cocoa Touch technologies. The latest Objective-C 2.0 Programming Language has moved far beyond the humble origins described in this book, but read it anyway to understand what makes Cocoa technology so good. The emphasis on reusable software components is more relevant today than ever. The comparison of approaches to object-orientation contains the core of a university level comparative programming languages course but remains entertaining. Unlike the apology implicit in Stroustrup's The Design and Evolution of C++, this book is forward looking and optimistic that object-oriented programming can be done right without too many compromises. The exponential growth in popularity of Objective-C and Cocoa may have finally proven the authors right.
Game Programming Gems 6 (2006, Charles River Media, ISBN 9781584504504), by Mike Dickheiser
This is a favorite in the "Game Programming Gems" series that is up to 8 volumes at last check. Like the "Graphics Programming Gems" series that preceded, these books collect academic papers and industry proven solutions into an invaluable reference collection. These technical articles are analogous to conference proceedings and scholarly journal articles in other scientific disciplines. These books need to be in every well curated technical library. If you are in the Game industry, any single gem from one of these books has the potential to shave months from a development cycle, avoid tedious reinvention, and in some cases make the difference between project success and failure.