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

JoshNerd557

macrumors newbie
Original poster
Oct 21, 2010
8
0
Okay, so I would LOVE to program, pretty much anything, but the problem is I don't know where to start my journey! I have no experience with any thing to do with programming. I have done one, and only one programming thing (sorta). It was making button codes in action script (Flash Pro CS4. So could any kind experienced developers help me? I would appreciate it greatly as I've been trying to learn for 2 yrs now... :(

I JUST LOVE THESE APPLE ICONS >>> :apple: :apple: :apple: :apple: :apple:
 

balamw

Moderator emeritus
Aug 16, 2005
19,366
979
New England
You need to pick a goal in order to narrow things down a bit. Do you want to develop programs for your Mac, iDevice, mobile web, ...

What have you tried in the past couple of years? What has worked, and what hasn't?

B
 

JoshNerd557

macrumors newbie
Original poster
Oct 21, 2010
8
0
I would mainly like to learn Mac and iOS but for now just focus on iOS. Thanks for repling by the way.
 

wpotere

Guest
Oct 7, 2010
1,528
1
I would mainly like to learn Mac and iOS but for now just focus on iOS. Thanks for repling by the way.

Degree aside (not really helpful here) you need to pick a language to start with.

Most schools start with Java as it is a full object oriented programming language (OOP). That being said, if you are only interested in Mac, then Objective C is probably a good place to start. Most of the OOP style languages are very similar in format and only the syntax differs. So, it is not realy hard to switch to another language. I learned Java (lots of learning material out there) and I now work as a C# programmer.

No matter what language you learn there are some great books out there to help you learn the basic concepts. He even made a few for other languages as well. Start small and get the basics down.

If ou decide to go with Java, there are some great books to learn from. Mike Murach wrote some really good ones that I still use for reference from time to time (when needed).

http://murach.com/
 

balamw

Moderator emeritus
Aug 16, 2005
19,366
979
New England
I would mainly like to learn Mac and iOS but for now just focus on iOS.

You still have a bit of a fork in the road.

You could focus on javascript and write some webapps (that could run on Safari on iOS and other platforms).

Or, you can try your hand at Objective-C/Cocoa/Cocoa Touch. Read this guide first: http://guides.macrumors.com/Cocoa_FAQ There are plenty of good books and other resources that can help you.

IMHO programming is best learned by doing. So the sooner you can get started the better off you will be.

B
 

ehoui

macrumors regular
Jan 27, 2011
217
0
I am a little concerned by your statement that you have been trying for 2 years and have created (only) a button. That tells me that you are probably not consistently dedicating enough time to your goal, which is going to make learning pretty much impossible. Programming is an incredible analytical activity, while rewarding, can be frustrating to learn. Have you figured out your "learning style"? If so, how do you best learn?

My recommendation is to read the guide (for which the link was already posted), and then pick up a book (a real book) which has step by step tutorials in the language/environment that you choose to learn on (this make a take a few days to figure out). Make a commitment to finish the book in a reasonable amount of time. Do all the extra problems (most have "extra" problems at the end of the chapter to help you further develop your understanding of the topic), and take the time to follow the tutorials so that you understand why. If you get lost, reread/redo until you get it. If you have difficulty post here (or another programming forum) your question and seek help.

Good luck!
 

Phil A.

Moderator emeritus
Apr 2, 2006
5,799
3,094
Shropshire, UK
Personally, I think it's a mistake to think the first thing you need to do is learn a language. IMO, the first thing you need to do is learn and understand what programming is otherwise any language is going to see incomprehensible. Once you understand the basic principles of programming, it will be easier to apply this knowledge to learning a language.

For example, different languages have different constructs for loops, but if you don't even know what a loop is or why you'd want to use one then it won't make a whole lot of sense.

A quick google search turned up this site which looks like it might be a decent starting point (I haven't looked through it all, though so can't guarantee it will be any good!)

Ultimately though there is no substitute for experience and as you become more experienced you'll find things come more naturally
 

balamw

Moderator emeritus
Aug 16, 2005
19,366
979
New England
IMO, the first thing you need to do is learn and understand what programming is otherwise any language is going to see incomprehensible. Once you understand the basic principles of programming, it will be easier to apply this knowledge to learning a language.

For example, different languages have different constructs for loops, but if you don't even know what a loop is or why you'd want to use one then it won't make a whole lot of sense.

We were having a bit of this same discussion in another thread. There are many ways to learn the fundamentals, but I at least need something a bit more concrete as an illustration that I can try. It's the whole programming by doing thing.

Most good introductory books these days, like the excellent "Programming in Objective-C 2.0" by Kochan, try to support this by introducing the fundamental programming concept along with the language element and try to support program structure and basic principles along the way by building up the elements into a larger project.

MR user Sander's book http://www.curly-brace.com/ (highly recommended especially at the relatively low price of the PDF from his site) deals with this in a slightly different way. He introduces the concept, illustrates it with C and then discusses some of the differences you might encounter in other languages at the end of each chapter.

B
 

Phil A.

Moderator emeritus
Apr 2, 2006
5,799
3,094
Shropshire, UK
We were having a bit of this same discussion in another thread. There are many ways to learn the fundamentals, but I at least need something a bit more concrete as an illustration that I can try. It's the whole programming by doing thing.

Most good introductory books these days, like the excellent "Programming in Objective-C 2.0" by Kochan, try to support this by introducing the fundamental programming concept along with the language element and try to support program structure and basic principles along the way by building up the elements into a larger project.

MR user Sander's book http://www.curly-brace.com/ (highly recommended especially at the relatively low price of the PDF from his site) deals with this in a slightly different way. He introduces the concept, illustrates it with C and then discusses some of the differences you might encounter in other languages at the end of each chapter.

B

That's fair comment. It's a long time since I learned programming (nearly 30 years), and I guess things have moved on a fair bit since then ;)
 

wpotere

Guest
Oct 7, 2010
1,528
1
Personally, I think it's a mistake to think the first thing you need to do is learn a language. IMO, the first thing you need to do is learn and understand what programming is otherwise any language is going to see incomprehensible. Once you understand the basic principles of programming, it will be easier to apply this knowledge to learning a language.


Actually when I say "learn a language" I mean exactly that. When you take your first "programming" couse you really start by learning what it is and if you find a good book it will actually start you on this just like you mention. I just lump it in with picking a language because I consider it part of what you should/need to learn. ;) Anyone can copy text from a book, it is understanding why it is doing what it is doing that makes a programmer.

Even in the book you recommended he uses C for his examples. ;)
 

notjustjay

macrumors 603
Sep 19, 2003
6,056
167
Canada, eh?
So perhaps the very first step could be to use an interpreted language such as Python to get used to the basic concepts (especially if your launching point is a scripting language). You can even start by running the python shell and just type simple commands right into it, like an interactive calculator. Then work your way forward to creating simple programs, the classic "hello world", something that works with variables, maybe progress to a simple "guess the number I'm thinking of" game that tests your ability to work with variables, user input, conditionals, and looping.

This is more or less the path I took using Apple ][ BASIC way, way, waaaay back, and then I did much the same using QBasic on a DOS computer before I progressed to C.
 

ehoui

macrumors regular
Jan 27, 2011
217
0
So perhaps the very first step could be to use an interpreted language such as Python to get used to the basic concepts (especially if your launching point is a scripting language). You can even start by running the python shell and just type simple commands right into it, like an interactive calculator. Then work your way forward to creating simple programs, the classic "hello world", something that works with variables, maybe progress to a simple "guess the number I'm thinking of" game that tests your ability to work with variables, user input, conditionals, and looping.

This is more or less the path I took using Apple ][ BASIC way, way, waaaay back, and then I did much the same using QBasic on a DOS computer before I progressed to C.

Learning by experimentation might develop, in the end, a deeper understanding, but it is probably not a great way to get a broad, useful foundation in a reasonable amount of time. And, BASIC frankly sucks to learn, because you have to unlearn bad habits that are usually developed in that environment. I say that having progressed similar to you: BASIC -> Machine Language -> Pascal -> LISP/Scheme -> C -> C++ -> ... -> Python

I think C is fine to learn on, with a good book and time set aside to follow through.
 

balamw

Moderator emeritus
Aug 16, 2005
19,366
979
New England
So perhaps the very first step could be to use an interpreted language such as Python to get used to the basic concepts (especially if your launching point is a scripting language).

That's partially why I keep bringing up javascript. It's the closest thing we have to a ubiquitous interpreted language today, and it's kinda C-like so that helps.

Since the OP's desired target platform is iOS, you really only have two native choices Objective-C and javascript (with some HTML and CSS behind it).

MacRuby would be a decent choice, but is not supported under iOS.

B
 

firewood

macrumors G3
Jul 29, 2003
8,108
1,345
Silicon Valley
The world needs more kid suitable programming languages and environments. Even more adults could start learning using such.

What's the current replacement for AppleSoft Basic and Logo, et.al., that you could hand to a 5th grader and let them run with it and have fun?

Certainly not C or Objective C.

Squeak doesn't seem to have taken off, and I'm not sure there's any Python (et.al.) environment that's fun enough.

Maybe a language where one doesn't need to pay much attention to the shift (case) key or much punctuation.
 

leprakhauns

macrumors newbie
Mar 23, 2011
1
0
Personally, I think it's a mistake to think the first thing you need to do is learn a language. IMO, the first thing you need to do is learn and understand what programming is otherwise any language is going to see incomprehensible. Once you understand the basic principles of programming, it will be easier to apply this knowledge to learning a language.

For example, different languages have different constructs for loops, but if you don't even know what a loop is or why you'd want to use one then it won't make a whole lot of sense.

A quick google search turned up this site which looks like it might be a decent starting point (I haven't looked through it all, though so can't guarantee it will be any good!)

Ultimately though there is no substitute for experience and as you become more experienced you'll find things come more naturally

You are 100% correct. That is actually my site you are linking to, and I created that page because people kept asking me how to program and what things were, so I created a very broken down tutorial that anyone can follow.

If you understand that stuff then learning any language is much easier.
 

notjustjay

macrumors 603
Sep 19, 2003
6,056
167
Canada, eh?
What's the current replacement for AppleSoft Basic and Logo, et.al., that you could hand to a 5th grader and let them run with it and have fun?

LEGO Mindstorms, perhaps? :)

I remember in the days before I locked into BASIC, I was fascinated by Logo. In fact, that's how I got access to a computer to program in the first place. We were in a 3rd or 4th grade computer class doing Logo, and I broke out of the program into the Apple ]['s command prompt (which was the BASIC shell). I proceeded to write my first program ever:

10 PRINT "I CAN BEEP!"
20 PRINT CHR$(7)
30 GOTO 10

My computer teacher, sadly, was not impressed. She came over to watch (and hear) the running program, and said: "Yes. So I can see. Now turn it off." Aww.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.