Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Drask

macrumors regular
Original poster
Feb 3, 2012
228
0
Hello there,

I want to start developing for iOS, I have little background experience in Java and C++, so here's my question so I have a few options to start learning objective-c.

a) Go throughout the 3 courses of Stanford (at iTunes U), first one Java, second one C++ third one iOS development (Stanford states the you must have the experience from the previous 2 to make it through iPhone development. Each one takes around 25 lecture of 1 hour plus homework.

b) Buy a book for objective-c and start from there (maybe kochans?)

The first one seems to be the right way because with a professor its just easier for me to understand than reading, it just bothers me that the 3 courses will take me probably 8-12 months and at the end I have no interest in learning deep java or c++.

So, what do you think?
 
NO personal offense, but these threads get posted at an average of 3 a day..
There are stickies at the top of this very forum to guide you on the way, and alot of other topics to go through.
Stanford classes are neat, they talk about OOP, nearly all the features, and it's really well done.
Kochans book, and about 20 others are nice too. It all depends on the user.
Since you have a heads up, i'd suggest go for the Stanford classes. And just try.. Do & Fail system.
If you have more specific questions, you can allways ask them here.
 
Hello there,

I want to start developing for iOS, I have little background experience in Java and C++, so here's my question so I have a few options to start learning objective-c.

a) Go throughout the 3 courses of Stanford (at iTunes U), first one Java, second one C++ third one iOS development (Stanford states the you must have the experience from the previous 2 to make it through iPhone development. Each one takes around 25 lecture of 1 hour plus homework.

b) Buy a book for objective-c and start from there (maybe kochans?)

The first one seems to be the right way because with a professor its just easier for me to understand than reading, it just bothers me that the 3 courses will take me probably 8-12 months and at the end I have no interest in learning deep java or c++.

So, what do you think?

I'm assuming you're new to programming --- if that's not the case, what I've written may not apply

I haven't actually looked into the Stanford courses specifically, but I'd wager that 25 hours of lecture time hardly counts as "deep" java. Probably what they're doing in that course is teaching the philosophies behind object oriented programming, and they're using Java as a language to teach in. (Java's very common for teaching programming in Computer Science degrees.)

I've just had a glance on iTunes U. Is it the "Programming methodology" course that they recommend you take first? That uses Java, and describes itself as an introductory programming course. Thing is, programming is itself a skill, which is separate from the knowledge of a language. To make iOS apps you have to learn how to program (and how to think like a programmer), as well as learn how the Objective-C language and Cocoa APIs work. The Stanford iOS course doesn't teach the former because it assumes you already know how to program: that's what the Programming Methodology course teaches.

Incidentally, when I opened a random lecture of the Programming Methodology course to see what it was like, the first thing I came upon was about positioning a triangle to point at a certain position on screen. I work as an iOS developer, and I'm actually doing the exact same thing at the moment (I'm writing a popup bubble thing like you get in Maps, and the triangle is the arrow at the bottom of the bubble). The stuff in that course might be more generalisable than you think :)

There's actually an advantage to learning how to program in a different language to the one you'll end up using. Firstly, picking up a new language is a lot quicker than picking up the basic concepts of programming, and secondly knowing more than one language means you don't get trapped into assuming that the way Cocoa does something is the only way to do it.

So after all that, how to make your decision about what to do? You've already suggested that you learn better from lectures vs out of a book. Assuming your goal is to become a programmer who can write iOS apps, I'd suggest you have a crack at the Programming Methodology course: get yourself a copy of Eclipse and start out with a bit of Java. If you hate it you can always give up and go down a different route.

I see so many threads on forums by people who want to write the next great iOS app but don't want to learn the basic techniques of programming --- usually they're along the lines of "I found this sample code on topic X, this sample code on topic Y, but I can't make them work together". Don't be that guy: whatever route you go for, make sure you're learning how to program rather than just learning a bunch of pre-prepared tasks where you don't actually understand what's going on.

Sorry for the epicness of this post!
 
I'm assuming you're new to programming --- if that's not the case, what I've written may not apply

I haven't actually looked into the Stanford courses specifically, but I'd wager that 25 hours of lecture time hardly counts as "deep" java. Probably what they're doing in that course is teaching the philosophies behind object oriented programming, and they're using Java as a language to teach in. (Java's very common for teaching programming in Computer Science degrees.)

I've just had a glance on iTunes U. Is it the "Programming methodology" course that they recommend you take first? That uses Java, and describes itself as an introductory programming course. Thing is, programming is itself a skill, which is separate from the knowledge of a language. To make iOS apps you have to learn how to program (and how to think like a programmer), as well as learn how the Objective-C language and Cocoa APIs work. The Stanford iOS course doesn't teach the former because it assumes you already know how to program: that's what the Programming Methodology course teaches.

Incidentally, when I opened a random lecture of the Programming Methodology course to see what it was like, the first thing I came upon was about positioning a triangle to point at a certain position on screen. I work as an iOS developer, and I'm actually doing the exact same thing at the moment (I'm writing a popup bubble thing like you get in Maps, and the triangle is the arrow at the bottom of the bubble). The stuff in that course might be more generalisable than you think :)

There's actually an advantage to learning how to program in a different language to the one you'll end up using. Firstly, picking up a new language is a lot quicker than picking up the basic concepts of programming, and secondly knowing more than one language means you don't get trapped into assuming that the way Cocoa does something is the only way to do it.

So after all that, how to make your decision about what to do? You've already suggested that you learn better from lectures vs out of a book. Assuming your goal is to become a programmer who can write iOS apps, I'd suggest you have a crack at the Programming Methodology course: get yourself a copy of Eclipse and start out with a bit of Java. If you hate it you can always give up and go down a different route.

I see so many threads on forums by people who want to write the next great iOS app but don't want to learn the basic techniques of programming --- usually they're along the lines of "I found this sample code on topic X, this sample code on topic Y, but I can't make them work together". Don't be that guy: whatever route you go for, make sure you're learning how to program rather than just learning a bunch of pre-prepared tasks where you don't actually understand what's going on.

Sorry for the epicness of this post!

Thanks for your time! What I meant with deep its that each course lasts 5 months or so, makes it a 10 months course just to start iOS, I know its not deep but im currently at collage 8hours a day mon-sat, so i cant just do them all in a month.

Still, your advice was very helpful about not learning preprepared stuff. Thanks alot!

NO personal offense, but these threads get posted at an average of 3 a day..
There are stickies at the top of this very forum to guide you on the way, and alot of other topics to go through.
Stanford classes are neat, they talk about OOP, nearly all the features, and it's really well done.
Kochans book, and about 20 others are nice too. It all depends on the user.
Since you have a heads up, i'd suggest go for the Stanford classes. And just try.. Do & Fail system.
If you have more specific questions, you can allways ask them here.

Sorry if my question bother you, I checked out the stickers and none of them answered my question, but thanks for your answer.
 
Don't waste your time with Java or C++.

Start with this book:

wM9dU.jpg


Then get this book:

mtRMs.png
 
Hello there,

I want to start developing for iOS, I have little background experience in Java and C++, so here's my question so I have a few options to start learning objective-c.....

The first one seems to be the right way because with a professor its just easier for me to understand than reading, it just bothers me that the 3 courses will take me probably 8-12 months and at the end I have no interest in learning deep java or c++.

So, what do you think?

Do you really think you could learn in less then 8-12 months? The beginning level classes on iTunes-U are just that beginner level. Their purpose is to prepared you for the other classes you take over the next three years. You will not be an expert in just a year. Yes most people after their first year can write simple toy programs that do things like simulate a vending machine or solve a maze game. Don't expect to write a replacement for Apple's Siri. or even a a word processor.

ALL beginners think learning to program means learning one programming language or the other. That is only 10% of it at most. The prof just picked Java so he could teach about how to design programs. He could have used Algol or Perl and you could learn the same concepts. Don't wory about the language. He picked a language based of the points he wants to teach.

It is like if you take a creative writing class about how to write a novel. Yes they would use English but really he could just as well teach in Spanish and you'd learn the same things. This is what's going on here too.

Years ago I took a class on operating systems internals and the prof used a made up language that did not exist out side of the class. That worked.
 
Last edited:
Do you really think you could learn in less then 8-12 months? The beginning level classes on iTunes-U are just that beginner level. Their purpose is to prepared you for the other classes you take over the next three years. You will not be an expert in just a year. Yes most people after their first year can write simple toy programs that do things like simulate a vending machine or solve a maze game. Don't expect to write a replacement for Apple's Siri. or even a a word processor.

I know programming takes several years to master, and a lot of effort, but I think you misunderstood my question. I am aiming at becoming an iOS developer (I know a lot of people come here and say that and quit by week 2, but believe me, I'm not one of those.) I'm not asking for the easiest way either, my question was, is it worth going through the 2 previous courses that will take around 8 months (remember I'm still in collage so I dont have the full day) to start leaning Objective-C? or is it a better idea just to get a book and start right away from Objective-C?

I understand what you meant with your novel example, though I think there are things I can skip that I'm not interested in learning.

Again, thanks for the reply.
 
...my question was, is it worth going through the 2 previous courses that will take around 8 months (remember I'm still in collage so I dont have the full day) to start leaning Objective-C? or is it a better idea just to get a book and start right away from Objective-C?

Get an Objective-C book. One meant for those with no programming experience. Maybe even borrow one. Try it. See if things make sense fairly quickly or if you're overwhelmed. If the latter, step back and try something less immediate.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.