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

Christa Pho

macrumors newbie
Original poster
Mar 23, 2008
13
0
Hey,
I'm 15 and new programmer and was wondering which new language I should take up.

I've Gotten My Feet Pretty Wet in java ( I Have an AP programming class),
but I was wondering which language I should learn as a choice for a career.

I've had many suggestions my peers to go into C++,
But i've also heard it's hard to learn if java is your native language.

I'm basically looking for the best career option for programming,
I hope to work for apple someday, but that's by far not set in stone.

Some good tutorial sites for this new language would be a HUGE help.
:D

Also, I Still plan pursuing java,
But is taking up a new language when I'm still a noob to java ideal?
:confused:
 

nomar383

macrumors 65816
Jan 29, 2008
1,310
0
Rexburg, ID
Java is a real good language to begin learning OO programming. From there, it is really not that hard to pick up C++. The basics of any OO language are what is important to start. The syntax is the biggest difference between the languages, not the concepts behind it. I would never start with a language like C, so I think you're already on the right path.
 

lee1210

macrumors 68040
Jan 10, 2005
3,182
3
Dallas, TX
This comes up fairly often:

https://forums.macrumors.com/threads/476237/
https://forums.macrumors.com/threads/476271/
https://forums.macrumors.com/threads/475927/
https://forums.macrumors.com/threads/455274/
https://forums.macrumors.com/threads/471251/
https://forums.macrumors.com/threads/468127/
https://forums.macrumors.com/threads/465800/
https://forums.macrumors.com/threads/455936/

Going through my posts in those, I pretty much parrot the same thing. Start with C at the command line and work from there. Java is a very good language, because it abstracts so much from you. I think it's important to actually know what's going on under the hood, though, and I think C is a good way to learn that. It's easier to write than assembly, but is still very close to the hardware.

-Lee
 

Mernak

macrumors 6502
Apr 9, 2006
435
16
Kirkland, WA
Pretty much everything I have heard (including from one of the top developers at Maxis) is to learn C++, which is pretty similar to Java (at least when it comes to command line programs, I never used c++ with GUIs. Personally, think think c would almost be a step backwards from OOP, and IMHO not as useful.
 

Catfish_Man

macrumors 68030
Sep 13, 2001
2,579
2
Portland, OR
Pretty much everything I have heard (including from one of the top developers at Maxis) is to learn C++, which is pretty similar to Java (at least when it comes to command line programs, I never used c++ with GUIs. Personally, think think c would almost be a step backwards from OOP, and IMHO not as useful.

C++ "looks and feels" a lot like Java when used in certain ways, but it can be very very different when used in others*, and is quite different conceptually.

*see Boost for an example.
 

Duke Leto

macrumors regular
Mar 17, 2008
166
0
In my experience, after learning C++, every other language just took a night of reading and a few more nights trying coding examples, and you are well of in that language. The exceptions for me were Obj-C, and probably any language similar to Basic (VB, etc.).
 

twoodcc

macrumors P6
Feb 3, 2005
15,307
26
Right side of wrong
i would advise to continue to master java at this point. i believe it could take a good while ;)

but from there, it depends on what kind of programs that you want to make. if you want to make mac programs, you need to learn obj-C and cocoa
 

psingh01

macrumors 68000
Apr 19, 2004
1,586
629
Hey,
I'm 15 and new programmer and was wondering which new language I should take up.

I've Gotten My Feet Pretty Wet in java ( I Have an AP programming class),
but I was wondering which language I should learn as a choice for a career.

I've had many suggestions my peers to go into C++,
But i've also heard it's hard to learn if java is your native language.

I'm basically looking for the best career option for programming,
I hope to work for apple someday, but that's by far not set in stone.

Some good tutorial sites for this new language would be a HUGE help.
:D

Also, I Still plan pursuing java,
But is taking up a new language when I'm still a noob to java ideal?
:confused:

You do not make a career by knowing one language. Heck even if you know one language, over time it changes and you have to keep up. Java has changed a lot in the last 10 years. The nice thing about C like languages (i.e. Obj-C, C, C++, Java, C#, even Javascript) is that once you learn one, learning the others gets easier and easier.

The basics are always the same. Things like loops are basically exactly the same in all of those languages. The difference are just "syntactic sugar" as they say.

Things that are "harder" are when there is a difference in paradigm (i.e. object oriented programming vs functional programming), because this really requires you to think differently.

As far as being a noob in java...it's best to always think of yourself as a noob so you keep working at learning new things. If you feel like you know it all...then you are probably doing something wrong :)
 

lee1210

macrumors 68040
Jan 10, 2005
3,182
3
Dallas, TX
In my experience, after learning C++, every other language just took a night of reading and a few more nights trying coding examples, and you are well of in that language. The exceptions for me were Obj-C, and probably any language similar to Basic (VB, etc.).

Most languages are syntactically similar to C/C++. The exceptions are functional languages (Lisp, Haskell, Erlang), hardware description languages (Prolog, VHDL) and joke languages like brain****. Knowing the building blocks of iterative programming makes learning the particular syntax of any language easy. What makes up an expression, what are the loop constructs, what are the data types, what's the array syntax, what are the arithmetic operators (hopefully this is pretty easy), etc. can normally be learned from a book very quickly. If a language is OO, there's a few more things to learn about the object syntax and member function invocation/message passing syntax. The means of implementing polymorphism and other abstractions might take a little more digging, but the concepts stay pretty much the same.

C is never a bad thing to learn. OOP is not where I think things should start. My first programming classes taught C++ and I wish they had started with C. What the hell good is it to be able to build a "bigint" class that has a string as an internal store and overloading a bunch of operators when you don't know the computational complexity of each of those operators. Hey, it's a * sign, that's just like the other one that operated on two ints or two shorts. Cool! Why does it take so long for that loop to finish?

With Java you're not going to get a segfault, you'll get an ArrayIndexOutOfBounds exception as soon as you violate the bounds you set. That's great when you're testing a real system, but when you're learning it's better to be in the mindset that that's your job, not the runtime's job. Learn to check your own bounds, learn why passing that unaligned structure's int element caused a bus error.

OOP is great. Java is great. I honestly feel as a programmer you should earn your way there. There's a reason that the JVM, the perl interpreter, many compilers and most OSs are written in C/C++. Even if you never intend to write any of these things, C is the basis for almost all that is in modern computing. Know your roots, I guess.

-Lee

P.S. I didn't know there was a profanity filter. I promise, i didn't type brain followed by four stars.
 

laprej

macrumors regular
Oct 14, 2005
108
2
Troy, NY
My advice

As a PhD student in Computer Science is this: try a lot of languages. Try C++ for a month... Try C for a month. Then go crazy and try some lesser known languages like ML, Haskell, Prolog, etc. They all have a different paradigm and they're all useful to know about. Ever heard of tail recursion? Probably not if all you ever use is imperative languages like C, C++, Java, etc, although it's quite common in most functional programming languages. Do yourself a favor while your mind is young and try out some of the weird ones - you'll see them again later in college if you choose CS as a major.
 

pooterscientist

macrumors newbie
Feb 28, 2008
20
0
empire state
As a PhD student in Computer Science is this: try a lot of languages. Try C++ for a month... Try C for a month. Then go crazy and try some lesser known languages like ML, Haskell, Prolog, etc. They all have a different paradigm and they're all useful to know about. Ever heard of tail recursion? Probably not if all you ever use is imperative languages like C, C++, Java, etc, although it's quite common in most functional programming languages. Do yourself a favor while your mind is young and try out some of the weird ones - you'll see them again later in college if you choose CS as a major.

ML is the ****. Everytime I code in SML thats **** works the first time I run it. I wouldn't code in anything else except ML is so rarely used in industry. OCaml is tight too.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.