Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
i was able to build a miniclip-type sprite based game after two semesters of college java, i think it's a great starting language. it forces you to learn object-oriented programming from the beginning, and a lot of rules (such as variable typing and syntax) are enforced strictly by the compiler...i think this is good for a beginner because it forces you to make sure you get your code exactly right every time (regarding the rules of syntax at least - that's not to say that any program will work right the first time!)

After being taught Java by a professor, I'm teaching myself BASH scripting and Perl - two less-strictly enforced languages - from some books, and I'm so grateful to have started with a strong foundation on a strongly typed language. learning by myself on something like Perl, in which objects are secondary (compared to java) and variables don't have to be typed would have been way more difficult and confusing.

Java is more complicated to grasp at first than some of the simpler languages (i can speak for BASH and Perl), but ultimately it gives you a better understanding of the concepts that will carry you far. Plus it's not too hard to get to the point in Java where you can make really cool programs.

For now you should be fine with a text editor and javac and java from the terminal to compile and run programs. Xcode, netbeans, and eclipse are all IDEs that can be used, but I recommend against them while you are getting started

also, may i recommend Smultron as a text editor? It color-codes text for you in a lot of different languages (including java), which makes it way easier to catch mistakes and follow your code. http://smultron.sourceforge.net/

Hope that helped.
 
Another vote for java.

Although verbose, Java adheres closely to the object oriented paradigm. Python and Ruby are languages that also incooperates the functional paradigm. That's very powerful, but can also be confusing for beginners. C is a very nice language but you risk getting caught up in details that can be difficult to debug.

C++ and Obj C are both supersets of C with an entirely different paradigm built on top which can be confusing.

A lot of colleges teaches Java in Programming 101 for many of the above reasons. Also, there are many great beginner books on Java because it is used so widely as a teaching language.

I would probably start with Java and learn it well. Then go learn C if lower level is more interesting (robotics is an area where C is very useful) or go to ruby if you have an interest in functional concepts. Or both :)
 
If you really want to understand how computers work, learn how to make simple programs in assembly language. It will give you great insight - fun too!

Then I'd suggest C and Objective C.
 
You guys do realise this thread was started in 2008? The OP probably has his own software company by now.

And now here's my 2 cents… :) I reckon Ruby is a great language to learn programming. It's totally object oriented and very easy to get started in with a good tutorial. For the beginner, I've not seen a better introduction to programming than this tutorial:

http://pine.fm/LearnToProgram/
 
Learn more than one language.

My vote for a great starter language is Basic. Programming literacy was at an all time high when every personal computer (including the Apple II) came with Basic built-in. Djikstra's humor non-withstanding, some of the best programmers I know started out with that. There are several implementations of Basic for Mac OS X.

C is great if you want to get into low level programming, or move on to Objective C for iOS apps, and really understand the guts of the language. Smalltalk is also a good preparatory language for Objective C.

Javascript is the lingua franca for web apps and HTML5.

Java will get you into enterprise and Android programming. PHP for web server stuff. Maybe Python for scripting.

Possibly Lisp or Scheme and Haskall to get a head start on CS academics.
 
What do you want to program? If you are interested in Mac/iOS development, C, C++ and Objective C are good to start with. If you are more into web development, I'd suggest to start with HTML and CSS (I don't know if these are actually considered as programming languages, but anyway, they teach some very basic things). After that, it is easier to move to PHP and JavaScript. At some point you also need to learn how to use databases (SQLite for Mac/iOS development and MySQL or PostgreSQL for web development).
 
UoMy vote for a great starter language is Basic. Programming literacy was at an all time high when every personal computer (including the Apple II) came with Basic built-in. Djikstra's humor non-withstanding, some of the best programmers I know started out with that.

I would assert that had more to do with the fact that BASIC was the OS on many of these early computers. You booted it and ended up in the BASIC interpreter. In many cases if you wanted it to do anything you needed to know some BASIC. I spent many moons subscribing to magazines like Byte and Compute! That came with listings of programs you could type in and modify to your heart's content, they were less fun when you got the code on floppy and no longer had to work for it.

By the time the computers got big enough to support other OSes like CP/M, DOS and GUIs such as Mac OS and GEOS this phase was over. Windows put the final nail in the coffin, by not providing a GUi enabled scripting tool out of the box. You could still run BASiC in a DOS window, but not really take advantage of the new OS. Apple at least tried with HyperCard.

If the iPad dumped you into an interpreter or even something like HyperCard by default more people would write code.

B
 
Honestly, I think you should start with an extremely simple high level language such as python or ruby. I started programming with python, and I think it's a great beginner's programming language simply because there are options for object-oriented programming, but you don't NEED to actually use objects and classes and such. I think learning a language like python allows you to learn programming and ease yourself into the concepts of object-oriented programming. However, that might not be the best option for you if you're not good at teaching yourself things. Another option would be to jump straight into Objective-C, the main programming language that all Apple software is founded on.
 
Last edited:
Are there even tools for coding directly on an iPad?

There were 5 or 6 Basic interpreters in the iTunes App store last I checked. Several other programming languages as well. There are Javascript development apps suitable for building iPad web app web clippings using a dropbox in the cloud as an intermediary.
 
Hi tycheong,

let me tell you a secret: Every programming language in the world is crap.

Since every programming language is crap, my recommendation is to pick whatever language is most used to do the things you want to do.
 
There were 5 or 6 Basic interpreters in the iTunes App store last I checked. Several other programming languages as well. There are Javascript development apps suitable for building iPad web app web clippings using a dropbox in the cloud as an intermediary.

Good to know. I hadn't checked back again since after the C64 emulator came back with BASIC intact sometime last year. The javascript ones are particularly interesting since it basically allows you to run limited but arbitrary, code from your iDevice using the interpreter that is already there.

B
 
C has always been the best language to start with.

Then do C++.

After that depending on platform:

Mac - Obj-C

Win - C#
 
...except for machine code. That's the only one that isn't just layers of abstraction cr*p. :)

A simple ADD or MOVE instruction is just layers of abstraction on NAND gates.

NAND gates are just layers of abstraction on transistors.

Transistors are just layers of abstraction on electromagnetic quantum effects.

Electromagnetic quantum effects are just layers of abstraction on quarks.

Quarks are just layers of abstraction on tiny little turtles that swim in a sea of aether. Then it's just turtles all the way down.

Which is why any language that has turtle graphics is obviously the least abstracted from the true nature of reality.
 
Which is why any language that has turtle graphics is obviously the least abstracted from the true nature of reality.

I don't remember what it was, but the first programming I ever did way back in middle school was some app where you had to type in commands to get a colored turtle to move and draw things on the screen.
 
LOGOwriter. Awesome.

-Lee

Ah yes. Logo. My 2nd programming language. Taught in the last 2 years of primary school. The teacher introduced it to us by having us all go outside and act like turtles. I probably enjoyed that more than most. :eek:

FD 10 RT 90 FD 20 RT 90 FD 10 RT 90 FD 20 RT 90
 
Ah yes. Logo. My 2nd programming language.
One of my first jobs was helping out in the Apple II lab with the Logo class for the younger kids senior year in HS. Good times. Came in handy a few years back when trying to figure out why some HPGL plotter output from an instrument was FUBAR. :p

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