Separate names with a comma.
Discussion in 'iOS Programming' started by Simmons, Feb 14, 2010.
Is objective-c/cocoa touch a good first programming language. If not, what should I start with?
No you should start with C first
Almost all programming languages are general purpose enough to be shoehorned into use for any purpose. But Objective C's design goals did not include it being a good introductory educational language. In fact, I might even claim that a language designed to be excellent for code reuse is a bad paradigm for education. It's better for students to learn how certain algorithms work for themselves before being able to brainlessly reuse them.
I would also learn to program first in a language for which there is tons of truly educational material available (even for school kids), and move on from there.
Perhaps Squeak, Scheme or Basic, then more dangerous C or C++, then Obj C for professional RAD.
Obj C is really just a thin macro-processor on top of a small runtime within a compiled C program. So you'll eventually need strong skills in C to really know what's going on underneath, in order to debug and write the most efficient code.
At my junior college, which later sends people right into the field (this is silicon valley so it's very common) or onto a four year college has a three tier process.
Year 1: Beginning programming and Intermediate Programming, which translates to intro to C++ and C++ semester two
Year 2: Two advanced core classes which can be chosen from Visual Basic, Java, and C++ game programming.
Year 2 (network engineer track): Intro to networking (such as Cisco or Windows Server), and a later Cisco course which will introduce Cisco IOS, or a later MCSE track course.
I ran this by my PhD programming professor friend, and he said it should be the other way around with C++ taking up the two semesters of the second year at the junior college. Year 1 should start with Visual Basic, and then Java.
We own a copy of Head First Java from when my brother (now a CS major at GA Tech) was doing his own self teaching. Should I read through that first?
Alright, so what order should I go in?
I was thinking of starting with
and then where do I go from there with the ultimate goal of iPhone programming?
Well, I learned web design mostly from http://www.w3schools.com, but I heard it has some flaws. Then, I googled Java tutorial and found some good tutorials. Then, I downloaded Visual Basic from the microsoft website, and learned from microsoft's guides. Next, I googled C tutorial and learned the basics from the web. Finally, I downloaded a bunch of apple sample projects and played around until I got the hang of things. If I needed help doing something, I would google it. If I had no luck I would ask at these forums.
I suggest start with C first then optionally you can learn C++ or jump right ahead to ObjC. But I also suggest learning C++ as it gives you an idea of OOP programming. ObjC confused me for a while but now I love it because of code readablity.
Here is a good book to get started then work your way up:Learn C on the Mac
C is an excellent first language, Java isn't a bad choice either (though if your ultimate goal is Mac/iPhone programming, C is a better choice).
One of these is not like the others. Hint: it's not a programming language. (Sorry. Pet-peeve of mine.)
Well if you want to get really technical with the word "programming" then a few of those don't quite fit
Where? Oh...haha Well they are still "Languages". How's that?
Like many others have stated start with c first. Objective c is an extension of the c language. when you read many objective c books they have the tendency to focus on whats been added. A dedicated book on c is filled with much more information you need.
c is such an awesome language to learn. not only are many operating systems created with c but you can create anything right down to games and drivers.
I might not fit in the usual mold, but I taught myself Objective-C without knowledge of C. Although it wasn't my first programing experience (C++ was) it was the first one I thoroughly pursued. I used Stephen Kochan's Objective-C 2.0 book and spent about 4 months reading it almost daily, I read it twice doing every single exercise and copied all the examples down. At times the console programs got dull but it helped to solidify the concepts. Perhaps since it wasn't truly the first time ever seeing a language it made it easier for me.
If I ever need information regard C, his book also includes a lengthy chapter summarizing some of the key concepts of the C language. I used it just recently with my one iPhone Application for reference regarding arrays in C (I needed something quicker and more efficient then NSArray).
I'm now learning Java but plan on purchasing Stephen Kochan's book on C in the near future.
What ever you choose I wish you the best of luck!
I think here I made it sound like i hadn't already started. In fact, I got up to More iPhone 3 Development: Exploring the iPhone SDK before I realized I couldn't do diddly ****. When I looked into it more, I came to realize my problem was Objective-c, and more specifically, my book. I read Learn Objective-c on the Mac instead of Kochan's book because it looked friendlier, but I think that might've been a mistake. Should I sell Learn Objective-c on the mac and get Steven Kochan's Programming in Objective-C 2.0 (2nd Edition)?
Kochan's book is the book im using right now and it was really worth the money. It turned out to be one of those books that you end up reading like halfway through it the first day you get it then read it again 10 more times because you learned so much.
the only issue i ran in to besides my typing skills was the xcode i was using was newer then what was used in the book. so if you try and follow it step by step the picture doesnt look exactly the same. organizationally the new project window in xcode is slightly different. once you figure out that small difference its all good from there
It might not be the book. The problem might be that you need to learn to program first. I would pick an easier language. It doesn't need to be C. After learning one programming language, the second (and 3rd, etc.) still requires some time, but it should seem much much easier. Try seeing if there is anything useful in the kids section of your local library. There's got to be a book or web site on computer programming for "kids/dummies/idiots/grandparents/futurerocketscientists" where you say "doh, that was too easy". Start there and move up.