Only one complaint from me: error messages. I realize this is probably a complicated problem, but on the other hand, can alienate beginners.
For example, on the first exercise, you're asked to write NSLog(@"Name"); When I did it, I first missed the semicolon, and got an error "expected ‘;’ after expression". Okay, fine and good, that makes sense. I added the semicolon and got "‘extern’ variable has an initializer" because I called NSLOG instead of NSLog. Even for a programmer, that's not a helpful error message...
Thanks for the examples, and I agree that error messages are super-important for beginners. We have written a bunch of code trying to "massage" error messages to be more helpful. I'll be adding these to the list, thanks!
For example, on the first exercise, you're asked to write NSLog(@"Name"); When I did it, I first missed the semicolon, and got an error "expected ‘;’ after expression". Okay, fine and good, that makes sense. I added the semicolon and got "‘extern’ variable has an initializer" because I called NSLOG instead of NSLog. Even for a programmer, that's not a helpful error message...