I’ve got a little bit of history with programming, having gotten my start with Visual Basic. I let it slide as a hobby from a little after VB6 up until just a year or so ago when I got on the iPhone bandwagon, when I decided to take up Objective-C programming.
I now have what I feel to be an intermediate level of knowledge on the language, but I can’t help but feel that there’s a substantial gap in where my knowledge is, given that there seems to be a substantial bit of the language I don’t feel I understand.
Would I benefit from reviewing the underlying C structure, or would I be better served from continuing to practice solely in Objective-C whilst reviewing the documentation for various features?
Edit: Though I’ve accepted the first answer given, more insight is always appreciated from those with supplementary or opposing views.
11
The features of Objective-C are more or less a Superset of the features of C.
So, for me, the answer is yes.
You’ll be learning the most critical concepts of Objective-C and most will find procedural programming a lot simpler and less surprising than similar solutions solved with object oriented programming.
You have a much better chance of understanding all of the concepts in C than you do in Objective-C. Assembly language is another good language with few surprises and few features.
You might have trouble solving a complex problem when you use lower level languages, but you’ll actually be able to learn and understand them much easier.
1
It depends on what you don’t understand about Obj-C. If you feel you have a good grip on the OO side, but struggle with things like pointers or array semantics, then by all means you want to explore the lower-level C side of things.
If you’re struggling with OO concepts or message passing or the runtime, then learning C won’t help you at all.
1