Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to learn C but I tend to learn best when I have a project to work on. I've never done iPhone development, so I'm hoping to kill two birds with one stone. Will learning objective c also teach me to program c reasonably well, or are they too dissimilar?

EDIT: I'm mostly wondering if objective-c/iphone-development would teach me all the little gotcha's that are inherent to c. I come from a .Net background so I haven't done much in terms of memory management or working with pointers.

share|improve this question

closed as off-topic by ratchet freak, GlenH7, Ixrec, durron597, MichaelT May 21 '15 at 2:10

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – ratchet freak, GlenH7, Ixrec, durron597, Community
If this question can be reworded to fit the rules in the help center, please edit the question.

It is, in the same way that learning JavaScript is a reasonable way to learn Java. – Oded May 27 '13 at 17:18
That's a strange comparison. Javascript and java are completely unrelated languages while objective c is a strict superset of c. – ConditionRacer May 27 '13 at 17:24
What other programming languages have you used before? C is also known as a comfortable assembler. You can rush thru it in 1 or 2 weeks (constants, data types, control flow), then switch to Objective-C. There are tons of example programs for almost every class. – ott-- May 27 '13 at 18:15
related (probably a duplicate): Is there any advantage to learning C first? – gnat May 28 '13 at 18:20
up vote 6 down vote accepted

Based on your edit, I would say that Obj-C is not the best way to go.

Obj-C has a lot of nice things as part of the framework that make it a higher level language, which will mask the very gotchas that you want to experience in C. In particular, memory management in Obj-C is a big topic in its own right, and it is very different from what you would typically be doing in C.

Just because something is a superset, it does not mean that you will be utilizing the whole original set.

I would advise you to figure out what it is exactly that you want to do with C, and tackle it directly.

share|improve this answer
Thanks this is what I'm looking for. – ConditionRacer May 27 '13 at 17:50
Obj-C and C are syntactically similar, but you will not be a C programmer if you write good Obj-C programs, and no one wants you to write C programs for an iPhone. C++ is also a super set of C...... – mattnz May 28 '13 at 2:12

90% of what you'll learn doing a project in object-c will be related to Apple. As 90% would be to Android if you learn Google's SDK using Java.

That makes it difficult to gain experience from the remaining 10%.

The reverse way to look at is a C programmer who's never touched object-c would have a lot of learning to do to make an app.

Is this a bad thing, No.

Practical application of a skill is better than just learning a programming language.

share|improve this answer

The best way to learn a language is to use the language you wish to learn, not some other language, regardless of how much the two have in common.

In particular, it you use Objective C, you will learn the Objective C way of doing things, not the C way.

share|improve this answer

they are two seperate languages,

Learning the Obj C Language may actually hurt your understanding of C in the long run, since C is very low level and Procedural, where Obj C is not.

to learn need to learn C.

the closest thing i can think of to learning a language like C that isnt C. would be PHP.

share|improve this answer

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