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.

  • Depends on what exactly the substantial bit of the language you don't understand is.
    – yannis
    Aug 20, 2012 at 15:46
  • 1
    "what language you should learn next" type questions are discouraged per site FAQ
    – gnat
    Aug 20, 2012 at 16:30
  • 3
    C is a procedural language. If you just want to learn about the procedural paradigm I would advise you to learn a cleaner language like Pascal: Pascal has been used extensively in real applications but was specifically designed for teaching (therefore Pascal is less hacker-oriented than C). However, if you need to work on some real project in an area that specifically requires C, then you can go ahead and learn C.
    – Giorgio
    Aug 20, 2012 at 17:09
  • 2
    @Terrance Shaw: C has a high practical relevance because, besides being at the core of language like Objective-C and C++) it is often used as an interface between languages. E.g. AFAIK there is a C-interface for Java, Haskell, and many other languages. So even if nowadays not many people develop their applications directly in C, C is practically very important.
    – Giorgio
    Aug 20, 2012 at 18:20
  • 1
    I asked a related question on SO: <stackoverflow.com/questions/10858820/learning-c-for-objective-c>
    – pasawaya
    Aug 23, 2012 at 2:10

2 Answers 2


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.

  • Great. Thank you for your very clear and concise answer. Aug 20, 2012 at 16:17

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.

  • I think I've got a fairly good grasp on the OO part of Objective-C, there's just some... finer nuances?... of the language that elude me. Been skimming over "The C Programming Language", and even from the beginning, it seems to be filling in some of the gaps. Aug 20, 2012 at 23:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.