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

JotaPorras

macrumors newbie
Original poster
Feb 4, 2009
12
0
Say I'm a high school student whose dream has always been to learn how to program games, applications or any program in general. I tried to start on my own but I haven't really gotten on a clear path and my knowledge on programming are still pretty much zero. Any ideas on how to start to learn programming? Languages to learn, simple projects to begin with, etc.
 

GorillaPaws

macrumors 6502a
Oct 26, 2003
932
8
Richmond, VA
Do you learn best by taking the bottom-up approach, or the top-down? In other words, if you're learning how a car works, do you want to start with all of the small parts and see how they fit together and then build up from that? or do you like looking at the car and then slowly breaking it down into gradually smaller components?

For bottom-up people I would recommend starting with C. It's pretty low-level and will give you a good appreciation of what the machine is doing with regards to where your code is going in memory. If you're really hardcore, you could even try assembly programming. Most of the major, hardware intensive games are written in C. Casual games can be written in lots of languages. This is a great tutorial for learning the basics of C. It's no substitute for a good book though.

For the top-down approach, you might want to take a look at Python. It's a very simple, and clean language that will allow you to do many cool things rather quickly. With Python you will be insulated from some of the tricker concepts (which you will need to learn eventually), while you're getting your feet wet and learning to solve problems programatically.

Also, do a search using the link in my signature and you'll find lots of threads with tons of great information on this topic.
 

mac2x

macrumors 65816
Sep 19, 2009
1,146
0
Thanks for that C tutorial, GorillaPaws. It will help me out too. To the OP: I'm still very much a programming newb myself, but it's always good to see a new person who is interested in programming. This forum has been a great help to me; I hope to have more time to devote to programming.

I'm also planning to take a computer science class for majors geared towards programming next spring, which I'm excited about. That would be something you should consider when you go to college.
 

ranguvar

macrumors 6502
Sep 18, 2009
318
2
As a first step, make sure you get the idea of making anything really useful (app, or even a game) out of your head straight away. Programming is a lot more about staring at text and reading documentation for hours than it is about submitting shiny apps to the App Store.

If you understand that and still are interested, I'd say learn Java. Object-orientation is really great (Objective-C is object-oriented, as well), and you don't need to care about memory management and pointers. Plus, Java's syntax is quite similar to C's (and thus - to some degree - to Objective-C), which is the best language syntax I know. Transitioning to Objective-C / C / C++ will be much easier after you have learned Java.

I have always found the toughest question to be "What should I program?". I strongly recommend to make command-line programs only at first. GUI programming isn't anything interesting and doesn't learn you a lot either. If you want something really simple, you can of course try that. If not, program anything to understand programming concepts such as object-orientation.
 

cromwell64

macrumors regular
Jun 30, 2008
160
0
If this is something that you are serious about, then I think you should definitely start with C. It will give you better understanding of what is going on at a lower level as opposed to jumping straight into something like Java. After you get a decent handle on that, then I suggest moving on to an object oriented language like Java or Objective-C. Java, along with many other languages, will be fairly easy to pick up once you are comfortable with C. The main point is just to learn object oriented principles.

This book is a good place to start. It is expensive though, so maybe you could find it at a library to check it out before buying.

This site is also a good place to start.

If this is something that you think may be more of a hobby though, than you can ignore my advice about learning C. In this case I would say Python or Java, or even Javascript would be good places to start.
 

Corndog5595

macrumors 65816
Jul 16, 2010
1,112
0
Contrary to the other posts, I recommend skipping over all the long and boring command line stuff. I know a little about programming (can make a super basic C++ command prompt application in windows) and I have desperately wanted to learn how to make mac and iphone apps. After checking about 7 books out of my public library, I finally found one that works well with my learning style.

- I don’t want to know the history of the language, and I definitely don’t want to spend 2 weeks of my life learning how to make a CMD prompt hang-man game.

The book was this. It is about 380 pages of material, and it starts you right off creating an application. You learn basic things and familiarize yourself with the language as you go. I am about halfway through and not everything has ‘clicked’ in my brain, but I feel much more confident with my knowledge just because I am actually making something.

The posts above mine are most likely from experienced coders, and I’m sure their described methods are fine, but I don’t like to learn like that. I like to jump right into it, actually see progress, etc.


I have the PDF and the physical book, It was about 45 bucks all together. I can send you the first 2 or three chapters of the PDF if you are at all interested.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.