back to Books

Here are some answers to questions we get a lot.

If you have a new and exciting question, let us know.
Which book should I read or read next?

iOS Programming and Cocoa Programming for Mac OS X are written for experienced programmers with knowledge of C and object-oriented programming. They are separate books, however. If you want to develop iOS apps only, there is no need to read Cocoa Programming. If you want to develop for the Mac only, there is no need to read iOS Programming.

If you do not have a lot of programming experience, you probably want to start with Objective-C Programming. This relatively short book introduces the Objective-C language and basic programming principles. It is a stepping stone to iOS Programming or Cocoa Programming.

If you've read either iOS Programming or Cocoa Programming and want to learn more about the back-end inner workings of things, read Advanced Mac OS X Programming.

To see more information about a particular book including its table of contents, start here and select the book you are interested in.

(Although Objective-C Programming is a beginning book, some experienced programmers read it first to get a grasp of Objective-C before starting iOS Programming or Cocoa Programming, so that they, too, can hit the ground running.)

I have a question about some code in a book.

You can ask questions and get help with material in our books in the BNR forums at

I own the print version of a BNR book. Can I get an electronic version at a discount?

The printed book and the electronic versions are separate products.

If you buy another Big Nerd Ranch book, consider's bundle package, which includes the printed book, an EPUB, a Kindle version, and a PDF.

I own the previous version of a BNR book. Can I get the current edition at a discount?

New editions are always new products, so we do not offer discounted updates for later editions. On a related note, we don't release new editions unless the changes are substantial enough to be worth the purchase price even to owners of the previous edition.

Where are the official solutions to the challenges?

There are no official solutions to the challenges. Why do you ask?

Are you stuck on a challenge?

We want you to get stuck, walk away, come back, and work it out. We don’t expect getting stuck to be comfortable, and we understand that you might prefer having an approved solution to turn to when things get rough. Eventually, our jobs of teaching end, but your job of learning continues. We created the challenges to make you proficient at learning and problem-solving on your own. This is a crucial skill for any developer, and providing a set of official solutions cheats you of the opportunity to get really good at it. But you are not entirely on your own. Visit Ask for help, share your code, and browse questions and solutions that others have posted. Get advice from our Nerds and check with your colleagues. We know you can do it!

Do you have a solution and want to see if it is "right"?

The challenges at the end of chapters are meant to simulate real-world programming problems. In real-world programming, there is rarely one correct solution. We want you thinking like a working programmer and testing your own solution rather than appealing to an answer in the back of a book. Here are some ideas for determining whether your solution is good enough:

We realize that being responsible for assessing your own solution makes these challenges even harder. However, it is work that is regularly required of developers, and we want you to get good at it. Practice helps. Official solutions do not.

Does your app run as you expect?

Great! (If not, it needs more work.)

Is there a piece of your code that works but concerns you?

Visit where you can browse what others have done, post your code and concerns, and ask for input.