PDA

View Full Version : I'm serious about learning how to code?




kzahid06
Feb 29, 2012, 08:41 PM
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?



mobilehaathi
Feb 29, 2012, 08:43 PM
You certainly could just start with ObjC, although I'd start with basic C then move into ObjC. Forget Javascript...

kzahid06
Feb 29, 2012, 08:48 PM
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?

mobilehaathi
Feb 29, 2012, 08:52 PM
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?

This is perhaps the most common question asked around here, so I bet searching will turn up all sorts of good stuff. But I hear good things about this book (http://www.amazon.com/Objective-C-Programming-Ranch-Guide-Guides/dp/0321706285/ref=pd_sim_b_1).

balamw
Feb 29, 2012, 09:34 PM
You certainly could just start with ObjC, although I'd start with basic C then move into ObjC.

I hear good things about this book (http://www.amazon.com/Objective-C-Programming-Ranch-Guide-Guides/dp/0321706285/ref=pd_sim_b_1).

That book teaches you just enough C to move on to Obj-C quickly, so it follows your preferred path. Personally, I prefer Kochan.

B

MattInOz
Feb 29, 2012, 10:59 PM
http://www.codeyear.com/
might be worth checking out as well.

robvas
Mar 1, 2012, 12:53 PM
This isn't a bad start:

http://i.imgur.com/DldQe.jpg

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

Hexiii
Mar 1, 2012, 01:43 PM
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
Mar 1, 2012, 01:48 PM
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
Mar 1, 2012, 01:55 PM
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

Hexiii
Mar 1, 2012, 02:02 PM
Sorry, I fail to get your meaning. Are you reading the book in a language other than English or something else?

B

Oh, yes, sorry for that. I am reading it in Czech because I didn't want to ship it from US. This (http://knihy.cpress.cz/objective-c-20.html) one.

balamw
Mar 1, 2012, 02:22 PM
Oh, yes, sorry for that. I am reading it in Czech because I didn't want to ship it from US. This (http://knihy.cpress.cz/objective-c-20.html) one.

Thanks for clearing that up.

B

firewood
Mar 1, 2012, 04:21 PM
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
Mar 1, 2012, 04:46 PM
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
Mar 1, 2012, 05:54 PM
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

loon3y
Mar 1, 2012, 06:48 PM
This is perhaps the most common question asked around here, so I bet searching will turn up all sorts of good stuff. But I hear good things about this book (http://www.amazon.com/Objective-C-Programming-Ranch-Guide-Guides/dp/0321706285/ref=pd_sim_b_1).

what do i do when i have hard time grasping this book ^

balamw
Mar 1, 2012, 07:09 PM
what do i do when i have hard time grasping this book ^

Where did he lose you? What is your background? What was missing for you?

Personally, I'd try Kochan next or as a supplement.

B

firewood
Mar 1, 2012, 07:22 PM
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
Mar 1, 2012, 07:50 PM
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
Mar 2, 2012, 12:15 PM
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
Mar 2, 2012, 01:16 PM
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
Mar 2, 2012, 03:29 PM
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