And if people say learning C will give you "bad habits" just think about what kind of habits you pickup from PHP or Python.
I'm not sure I would put Python in the same sentence as PHP in the above context.
And if people say learning C will give you "bad habits" just think about what kind of habits you pickup from PHP or Python.
<snip>think about what kind of habits you pickup from PHP or Python.
What can you guys then recommend for learning before C?
What books/places can you recommend?
I have searched around Google, but can't find some good recommendations...
Thanks again!![]()
I disagree, scripting languages are usually loosely typed and probably will not prepare the OP for Objective-C and Cocoa touch.
And if people say learning C will give you "bad habits" just think about what kind of habits you pickup from PHP or Python.
My question is, how is your book working out for you? If you are making good progress, I would suggest you finish the book, up to the point where you have a good handle on Objective-C, then expand your knowledge deeper into C.
Every programming language is the same, only different. Once you understand one of them, then next one becomes a matter of getting the differences down. But it would be a good idea to at least acquire an understanding of assembly so you have an idea what is going on underneath.
I still have an unanswered question: What is good to learn before C?
Damn it, this thread went so off topic the topic changed itself!!
I'll try to stay there:
** There are valid reasons to learn C before moving into Cocoa/Objective-C.
** There are much fewer reasons to learn "something else" before learning C.
It sounds like the OP is too afraid to "begin" and wants to know all the possible avenues of success without actually doing any real learning.
A Book On C was our course text at Edinburgh Uni when I was there. I thought it was very good and actually teaches you the language.
P.S. I am not saying C is hard and it will be, but some of the posts + some review on the book tells it's hard
Find any language that seems ok to you, and start learning on it. Any experience is good experience. Once you're used to the concepts which are common to all programming languages, you should be able to learn other languages much quicker.
I don't understand why people say C has to be learned first. It's like saying:
Step 1: Learn to do things the hard way.
Step 2: Now learn the easy way.
That's the reverse of every other kind of learning/teaching. Learn in any language you can; but just accept at some point you may need to learn things like memory management which you previously took for granted.
But at least you'll have a good grasp of programming at that point, not just "Learn Everything Now". As I said above, the worst thing you could do it try to learn too much right away, get frustrated, and give up.
I don't think anyone is saying that the OP should learn everything C has to offer and write a full fledged program in C. We are saying Objective-C will make a whole lot more sense after working your way through a short book like the Learn C on the Mac book I mentioned earlier. I went through that whole book in like 5 days.
"Learning" C is not hard, and can be accomplished in a week if you are even somewhat dedicated.
Oh and it looks like the vote is swinging towards C @ 70% right now
Define "learning C".
Yes, you might understand the syntax and structures after a week, but you could still be utterly baffled by memory management problems for many months after.
Which is why I'd recommend starting with something simple, mastering it, then moving up.
In the "Learn C on the Mac" book there is a chapter where the writer makes a dvd cataloging program using structures and malloc() free(). Then later writes it to a file. I personally found it easy enough to follow along, it is a modern book, and in my opinion, teaches good clean code with #defines to make code easy to change. Some of the later topics were over my head at the time, but I just moved on to Objective-C and iphone programming and I turned out just fine. I read this LCotM less than a year ago and I have 2 apps on the iTMS and another one in review right now that is much more impressive than my current ones.
I don't have any problem with learning C first, I just don't think it HAS to be C first. I've seen a hell of a lot of people struggling with C memory management bugs and getting frustrated; for these people I'd suggest at least starting with a simpler language.
Not exactly on topic, but my App was approved today!! I'll post a link to my video overview of it soon.