Choice Of Programming Language?

Discussion in 'Mac Programming' started by Christa Pho, Apr 28, 2008.

  1. Christa Pho macrumors newbie

    Mar 23, 2008
    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.

    Also, I Still plan pursuing java,
    But is taking up a new language when I'm still a noob to java ideal?
  2. nomar383 macrumors 65816


    Jan 29, 2008
    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.
  3. David G. macrumors 65816

    Apr 10, 2007
  4. lee1210 macrumors 68040


    Jan 10, 2005
    Dallas, TX
    This comes up fairly often:

    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.

  5. CaptainZap macrumors regular

    Jan 17, 2007
    Hahah, as much as I love that statement, it just probably isn't the best way to start programming :p

    And I think Python would be good to learn.
  6. Mernak macrumors 6502

    Apr 9, 2006
    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.
  7. Catfish_Man macrumors 68030


    Sep 13, 2001
    Portland, OR
    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.
  8. yeroen macrumors 6502a


    Mar 8, 2007
    Cambridge, MA
    Unlike Java, and to a lesser extent C++, C has the virtue of staying the hell out of your way.
  9. Duke Leto macrumors regular

    Mar 17, 2008
    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.).
  10. twoodcc macrumors P6


    Feb 3, 2005
    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
  11. psingh01 macrumors 65816

    Apr 19, 2004
    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'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 :)
  12. lee1210 macrumors 68040


    Jan 10, 2005
    Dallas, TX
    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.


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

    Oct 14, 2005
    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.
  14. pooterscientist macrumors newbie

    Feb 28, 2008
    empire state
    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.
  15. bmb012 macrumors 6502

    Jul 25, 2006
    Haha, psh, that's how I started!

    Of course, all I work with nowadays is ActionScript 2.0 in Flash... :D
  16. AlmostThere macrumors 6502a

    <Broad Brush>

    Learn how to solve problems by programming. The language is immaterial.

    At 15, stop thinking too much about a language as a career or by the time you are 30 you will be doing little more than supporting legacy systems.

    </Broad Brush>
  17. jeremy.king macrumors 603


    Jul 23, 2002
    Fuquay Varina, NC
    And also a great language to know if you want to work with Google, who by the time the OP is "of age" will probably own the internet.

Share This Page