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

0033832

Suspended
Original poster
Jul 25, 2011
31
0
I'm a huge tech-enthusiast.

I've decided that I want to actually LEARN to program apps, jailbreak tweaks, hacks, etc. instead of just just being the average consumer. I seriously want to get into this whole coding business and become a developer. I think that having a great passion for technology (and in this case, the iPhone), I could be a good developer...

I know I can't just start learning how to code in objective C... I'll probably end up starting with Javascript. I just need some guidance and figure out where I need to start with all this.

Sorry if I posted this in the wrong forum, but I thought I'd be able to get some opinions from actual developers here.

Should I start off by finding a good introductory book?
 
Last edited:

mobilehaathi

macrumors G3
Aug 19, 2008
9,368
6,352
The Anthropocene
You certainly could just start with ObjC, although I'd start with basic C then move into ObjC. Forget Javascript...
 
Last edited by a moderator:

0033832

Suspended
Original poster
Jul 25, 2011
31
0
You certainly could just start with ObjC, although I'd start with basic C then move into ObjC. Forget Javascript...

Hmm, I thought about doing that. What's the best way to learn, as a complete newbie? What do you think I should do to get started?
 

robvas

macrumors 68040
Mar 29, 2009
3,240
629
USA
This isn't a bad start:

DldQe.jpg


If you get frustrated with C, I'd play with Python or Ruby for a while.
 

Hexiii

macrumors 65816
Jun 30, 2011
1,113
373
Prague, Czech Republic
I've started learning about month ago. I bought the Kochan book which seems good, although the translation of the terms in coding isn't really exact, which is not your problem if you are going to buy the original one.

I really don't have any bigger problems understanding it and I haven't learned any language before.
 

balamw

Moderator emeritus
Aug 16, 2005
19,366
979
New England
the translation of the terms in coding isn't really exact, which is not your problem if you are going to buy the original one.

Sorry, I fail to get your meaning. Are you reading the book in a language other than English or something else?

B
 

ArtOfWarfare

macrumors G3
Nov 26, 2007
9,558
6,058
The path I took, which I'm pretty sure is the shortest one to go from knowing arithmetic and logic and maybe some number theory to programming on the iPhone is to start with:

"The C Programming Language" - You really only need to read and understand and do the practice problems for the first two chapters to know enough C to move onto:

Stanford's free iOS programming lectures (available on iTunes U). They've got about 2 dozen hour-hour and a half long lectures.

Learning enough about C will take 2-4 weeks. The stanford videos will take 2-4 months to go through.

Have fun, good luck
 

firewood

macrumors G3
Jul 29, 2003
8,107
1,345
Silicon Valley
Programming is difficult. Really difficult for some people. Many people flunk out of their university courses on the subject. After years of trying. So start easy.

Javascript or Python is easier to learn than C or Objective C. When it becomes too easy, then you can move on to a language that targets your goals.

For an even easier start, try Squeak or Alice. It's better to move up from a too-simple programming language, than to quit because some professional programming environment turns out to be really really difficult for you to get any traction.

Some of the people here are idiots for not realizing how smart they are, and that's why they didn't have serious troubles learning to program.
 

ArtOfWarfare

macrumors G3
Nov 26, 2007
9,558
6,058
Some of the people here are idiots for not realizing how smart they are, and that's why they didn't have serious troubles learning to program.

For a background on how smart I am, I was ranked 15th in the state of Maine in math during my senior year. At the same time, I was rejected from MIT. So... IDK where that leaves me.
 

balamw

Moderator emeritus
Aug 16, 2005
19,366
979
New England
Programming is difficult. Really difficult for some people.

I agree, but what I find hard for myself as well as what I see in many folks around me is that unlearning something or learning two things can be much harder than learning what you actually want to do to begin with.

Learning 5 different precursor programming languages before the one you really want to learn can be a recipe for gridlock, and doing things inefficiently in the language you choose.

Non-programming example. Spanish can be simpler than French to learn as there are fewer exceptions to the rules of pronunciation. If you learn Spanish before learning French, you run the risk of always speaking French with a Spanish accent.

If you want to learn French, try doing it. If it's too hard you can always back off to Spanish or Italian as a stepping stone.

If the goal is to target iOS devices, and Obj-C proves too difficult, backing off to Javascript or Lua is definitely an option as they can be used on the desired target device.

"The C Programming Language" - You really only need to read and understand and do the practice problems for the first two chapters to know enough C to move onto:

K&R is really not a book that resonates with everyone. Also the Stanford courses are pretty dense for someone without a basic background in programming of some sort and experience with that kind of coursework.

B
 

firewood

macrumors G3
Jul 29, 2003
8,107
1,345
Silicon Valley
Learning 5 different precursor programming languages before the one you really want to learn can be a recipe for gridlock, and doing things inefficiently in the language you choose.

I find the opposite. Most of the top professional programmers I've worked with know at least 5 different programming languages, and are very productive in several of them.

Just working with iOS apps today, I've been using 7 programming languages: Javascript inside UIWebviews and the support web pages for my apps, Lua for scripting a game library, Objective C for native iOS apps, ANSI C for cross-platform image processing code used in one of those apps, bash and Python for scanning the App store for new reviews for my apps, and Perl for formatting reports from the iTunes Connect sales and trend downloads. Other languages I might need tomorrow include some ARM/NEON assembly, PHP for an older support web page, some SQL for a mySQL database back-end, and even BASIC for an old Apple II+ game I'm porting for fun.

And even those 10 leave out at least 3 other extremely common and popular languages that are used in mobile development or back-end support sites for mobile apps. Will have to crack open the books in the near future.

And there's some evidence that multi-lingual people grow more (or better mylinized) brain cells.
 

balamw

Moderator emeritus
Aug 16, 2005
19,366
979
New England
Most of the top professional programmers I've worked with know at least 5 different programming languages, and are very productive in several of them.

I don't disagree with you, but not everyone fits this mold or the goal of being a top professional programmer. And it can take YEARS for this approach to bear real fruit. Many simply don't have the patience.

One important piece in all of this is keeping motivated. If the goal is to program for iOS devices seeing some of your code running on the device as soon as possible can be very valuable. (esp for those who grew up in the GUI age console apps are simply foreign).

FWIW I have been been programming for over 30 years and have written code in many varieties of BASIC, LOGO, Pascal, Modula-2, FORTRAN, C, C++, C#, Obj-C, Java, Perl, Processing, Python, SQL, MATLAB, .... If it serves a purpose to an end I'll learn how to program in it.

I'm also trilingual with some proficiency in two additional languages.

However I learned both languages and programming languages from a very young age.

B
 

DDustiNN

macrumors 68020
Jan 27, 2011
2,485
1,371
Stanford's free iOS programming lectures (available on iTunes U). They've got about 2 dozen hour-hour and a half long lectures.

Do these also include practice problems and/or tutorials? I always find that to be the best way to learn a new programming language. For me, sitting and watching a PowerPoint presentation is borderline useless without being able to practice. Or at the very least, being shown step-by-step how to do certain things in a new development environment (Xcode, just like Eclipse, isn't exactly user-friendly for first-time users).
 

firewood

macrumors G3
Jul 29, 2003
8,107
1,345
Silicon Valley
Being shown step-by-step is a poor way to learn, except perhaps at the very beginning, or when getting started. You should scan for the new and hard parts, close the book or web page, and see if you can figure out the rest for yourself. Rinse and repeat if you fail. You've learned the topic when you don't need any tutorial material besides maybe the framework reference documentation to create something.
 

balamw

Moderator emeritus
Aug 16, 2005
19,366
979
New England
Or at the very least, being shown step-by-step how to do certain things in a new development environment (Xcode, just like Eclipse, isn't exactly user-friendly for first-time users).

IMHO this is a reason to separate learning the IDE from the language and why I encourage beginners where possible to compile from the command line.

To write iOS apps you are really learning a minimum of three things.

A programming language Objective-C
An API with several frameworks Cocoa Touch
An IDE/environment Xcode.

Some folks will have a hard time learning them all at the same time, so divide and conquer.

B
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.