What programming language to learn

Discussion in 'Mac Programming' started by FuuFuu, Jul 9, 2008.

  1. FuuFuu macrumors regular

    FuuFuu

    Joined:
    Jul 8, 2008
    Location:
    Roselle
    #1
    Hello i currently finished freshmen in college. so far i've touched on HTML, javascript, C and C++ and i'm very familiar with JAVA. I just wanted to ask the question for people who have left college and pursuing in any computer languaged related jobs, what language helped you the most? what languages do you recommend i learn? i'm hoping to become a computer analyst, software programming, a field somewhere there.

    I really admire Apple and hope to work there ^^.
     
  2. Monkaaay macrumors 6502

    Monkaaay

    Joined:
    Jun 19, 2006
    Location:
    Richmond, VA
    #2
    The platforms that have been in high demand over the last 5 years are Java and .NET. .NET has been growing at a much quicker rate in the job market. Simple Monster.com searches can show you what employers are after. I started with Java about 7 years ago and moved to .NET shortly after. My career has been fueled by .NET and just recently I've been using Java again.
     
  3. wrldwzrd89 macrumors G5

    wrldwzrd89

    Joined:
    Jun 6, 2003
    Location:
    Solon, OH
    #3
    C# and .NET in general will be a help, if you're looking for programming employment. There's a fair number of companies using .NET as the basis for their Windows infrastructure.

    Also, if web programming interests you at all, learn PHP.
     
  4. liptonlover macrumors 6502a

    Joined:
    Mar 13, 2008
    #4
    you said you want to work with apple if possible, so...

    learn C... NOT C++ (unless you want to get into gaming and don't mind the extra work) http://www.cprogramming.com/

    learn objective C with Cocoa... http://www.cocoalab.com/BecomeAnXcoder.pdf

    If you learn C with the above website, and learn basic objective C and Cocoa with the second one, that will give you a good start. Doing those made me feel a lot better about the learning process and what would come next.

    I would tell you my bookmarked cocoa websites, but a)you could find them through google if you want, and b)there's like 20 of them so...

    After those two links, I bought cocoa programming for mac os x by aaron hillgasse. I can't say it's the BEST book ever, but it's the best in the Cocoa beginners area. It has about 35-40 chapters, and each one is on a different topic so you get a nice spread of knowledge, and here's what I like best. I don't work through the book because I... can't. I can't stand it because it's too boring. So what I do instead, is when I go to the computer to learn some more cocoa I bring up some of my links, or I go through the book, or I look at some application and find an interesting topic to learn about. With the mailing list, this website, my other websites, the apple documentation and the book, I usually do pretty well.

    So if you've made it through my long post, good luck!
     
  5. Monkaaay macrumors 6502

    Monkaaay

    Joined:
    Jun 19, 2006
    Location:
    Richmond, VA
    #5
    Don't overlook ASP.NET as a web platform. There's just as much, if not more, development going on in ASP.NET than Windows development these days. That technology is very refined and I've enjoyed developing on it for the last few years.
     
  6. yeroen macrumors 6502a

    yeroen

    Joined:
    Mar 8, 2007
    Location:
    Cambridge, MA
    #6
    C#/.NET if corporate middleware is your dream job.

    C/C++ if you actually want to do something cool.
     
  7. FuuFuu thread starter macrumors regular

    FuuFuu

    Joined:
    Jul 8, 2008
    Location:
    Roselle
    #7
    Thanks but if you mean cool as in video gaming, i'm not interested. i don't like the idea of helping out video games for the rest of my career, it just feels unaccomplished. i'm sorry if it offends anyone but i couldn't live with myself.

    i'm hoping to use computer language to develop programs or to improve them.
     
  8. lee1210 macrumors 68040

    lee1210

    Joined:
    Jan 10, 2005
    Location:
    Dallas, TX
    #8
    At this point you don't need to become an expert in any particular language or paradigm. You should learn about as many different things as you can. It's fine to be a Java programmer or a C# programmer, but you're much more versatile if you're a programmer/engineer that is willing and able to learn whatever tools are necessary for a project.

    Learn one of: (Object-Oriented procedural)
    C#
    Java
    Objective-C
    C++ (one of the others would be preferred)

    Learn one of: (Procedural)
    C
    Fortran
    ASM (This is lower level, perhaps pick a RISC ISA like MIPS)

    Learn one of: (high-level scripting)
    perl
    ruby
    python

    Learn one of: (Functional)
    Lisp
    Haskell
    Erlang

    Learn a few of: (Grab-bag)
    SQL
    Lexx/Yac
    JavaScript
    shell (pick one)
    Verilog or VHDL
    Prolog
    There's thousands of others to choose from, as well

    If you've at least tasted something from every paradigm and "get it" to some extent, when you need to step in to a new situation and use a new tool you won't be starting from scratch. The syntax of a language is far less important than understanding how things are expressed in different models. Once you understand what a class is and how it behaves, it's pretty easy to find the syntax for declaring one in any OO language and implement it. If you don't know what an Object is or why you might want to use it, you're going to have a much more difficult time.

    Individual language syntax is not worth being an expert on. What does come in handy for many newer languages is being very familiar with their libraries/frameworks/etc. I'm thinking specifically of Java and C#, with libraries that can easily overwhelm. It is worth familiarizing yourself with one or both of these, but it's probably even better to learn how to really read documentation.

    Something that surprises me on this board is how often things are spelled out in documentation (perhaps not clearly) that people don't get. You need to learn to think like a programmer (and perhaps a bit like a technical writer) and become adept at seeking out, reading, and absorbing API documentation, language syntax documentation, code samples, etc. If you have these skills, even if you are tossed into a situation that requires a lot of interaction with an API you are unfamiliar with, you'll be able to spend some time reading and at least be able to get started.

    Since you have access to (hopefully) some very smart people in your professors, you might ask them what their pet/favorite language or paradigm for programming is. If you start learning about that, then you have someone to talk to about it, and you might have a chance to establish a relationship with them which can come in handy for all sorts of things (references, getting you in to a closed section of one of their courses, someone smart to bounce ideas off of, etc.).

    Good luck!

    -Lee
     
  9. FuuFuu thread starter macrumors regular

    FuuFuu

    Joined:
    Jul 8, 2008
    Location:
    Roselle
    #9
    Thank you very much, your post helped me a lot
     
  10. jimothyGator macrumors member

    jimothyGator

    Joined:
    Jun 12, 2008
    Location:
    Atlanta, GA
    #10
    It depends

    As you can tell by the replies, it depends so much on what you want to do. I've made a living as a Java developer for the past decade plus, and the market for Java developers is still very healthy. Will that market contract eventually? Certainly, but it's not yet apparent what will replace it. While C#/.Net could be viewed as a "competitor" to Java, I don't think you'll see companies moving from Java to .Net, because that would also require a migration to Microsoft, from the commonly deployed Unix or Linux servers. In other words, Microsoft shops will continue to use .Net, and Linux/Unix shops will continue to use Java, for the foreseeable future. Either or both will eventually be superseded, but one won't replace the other en masse.

    The Mac makes a great development environment for server side Java applications; the so called "enterprise" development. Perhaps less so in the desktop arena, but frankly I'm unimpressed with Java on the desktop, as is the industry at large. Obviously, if you're looking to go the .Net route, you're going to need to run Windows.

    So, enterprise development pays well, and offers a lot of employment opportunities, and it's how I've made a good living for the past decade. But I'll let you in on a little secret: It's not always the most satisfying work. So, I'm teaching myself Cocoa and Objective-C programming, as well as Python and Ruby. The former pair is, of course, to open the door to Mac and iPhone development, while the latter is if I want to do other web development, for which Java is overkill. And, both Ruby and Python can be used for Cocoa development, though Python appears to be more popular than Ruby in this area.

    But mainly, it's fun and useful to learn new languages and frameworks. Learning Cocoa can make me a better Java developer at my day job. Likewise, I use Python to write one-off scripts for work. The only problem is, the day job consumes so much of my time, that time for tinkering with other languages is limited, so it'll be some time before I'm half as proficient in these other languages as I am in Java.
     

Share This Page