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

phatqao

macrumors member
Jul 20, 2010
50
0
PA and/or NYC
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.
 

macsmurf

macrumors 65816
Aug 3, 2007
1,200
948
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 :)
 

BubbaMc

macrumors regular
Nov 15, 2010
240
24
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.
 

kalsta

macrumors 68000
May 17, 2010
1,677
577
Australia
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/
 

firewood

macrumors G3
Jul 29, 2003
8,108
1,345
Silicon Valley
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.
 

iPave

macrumors member
Mar 15, 2008
81
0
Tampere, Finland
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).
 

balamw

Moderator emeritus
Aug 16, 2005
19,366
979
New England
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
 

coolbeans777

macrumors newbie
Mar 18, 2011
4
0
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:

firewood

macrumors G3
Jul 29, 2003
8,108
1,345
Silicon Valley
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.
 

Mac Player

macrumors regular
Jan 19, 2006
225
0
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.
 

balamw

Moderator emeritus
Aug 16, 2005
19,366
979
New England
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
 

SidBala

macrumors 6502a
Jun 27, 2010
533
0
C has always been the best language to start with.

Then do C++.

After that depending on platform:

Mac - Obj-C

Win - C#
 

chown33

Moderator
Staff member
Aug 9, 2009
10,747
8,421
A sea of green
...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.
 

kuwisdelu

macrumors 65816
Jan 13, 2008
1,323
2
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.
 

jiminaus

macrumors 65816
Dec 16, 2010
1,449
1
Sydney
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
 

balamw

Moderator emeritus
Aug 16, 2005
19,366
979
New England
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.