Stumbled on a great post by Scott Stevenson last night about what difficulties people have found while trying to learn Cocoa---
What Do People Find Challenging About Cocoa?.
- Objective-C: 19%
- I Didn't Know ANSI C: 12%
- Cocoa is Really Big: 11%
- Memory Management: 10%
- Interface Builder and NIBs/XIBs: 10%
- I Was Used to Java or C++: 10%
- Delegates: 8%
- Overall Cocoa Model: 8%
- I Didn't Know Object-Oriented Programming: 8%
- Learning How Documentation is Structured: 5%
- Cocoa Bindings: 5%
- Xcode: 3%
Number 1 is no surprise---Objective-C is syntactically very different than other languages derived from C.
Items 2 and 4 are related. To be an effective programmer in C requires a fair understanding of memory. Java requires much less knowledge of memory, since pointers are not used. But it is big!
Items 5 and 12 are typical development tool issues. The more advanced the tool, the more you need to know. Apple has done a great job with Xcode, so most people can go a long way before getting stuck. The debugger has changed over the years....
Items 1 and 3 have been the biggest issues for me. I've gotten over the Objective-C hurdle for the most part, but Cocoa frameworks have a lot in them!