Learn Programming?

Discussion in 'Mac Programming' started by jer446, Jun 6, 2005.

  1. jer446 macrumors 6502a

    Joined:
    Dec 28, 2004
    #1
    I call myself a power user, i am able to pick up things pretty quickly, and am good at learning things. I really would love to learn how to program, just so i have another skill under my belt, and maybe could get a job one summer. I am in highschool, is it to late to learn? What is the most beneficial language? I am in electronics, and next year will be coding in basicx. Where can i learn to program? Is there any certifications i can get once i learn to prove i know my stuff, just another thing for college. I am willing to pay for lessons if i have to.
     
  2. jer446 thread starter macrumors 6502a

    Joined:
    Dec 28, 2004
    #2
    i would also like to start with a language that isnt to hard to pick up, that way i wont be discouraged to learn new languages. ALso if it is posssible to have a language tha works on mac and windows, that way if im ever looking for a job, im not limited to mac or pc.
     
  3. jeremy.king macrumors 603

    jeremy.king

    Joined:
    Jul 23, 2002
    Location:
    Fuquay Varina, NC
    #3
    If you are looking for something career related (eventually) and cross-platform. Look no further than Java. Although I wouldn't bother if you are looking to develop desktop applications, they still haven't seemed to get it right yet...

    For someone who is quick to learn, I am surprised you don't know where to go to learn how to code. Anywho, heres a few options for you to consider.

    Local college/university
    Technical school (IIT, Devry, etc.)
    Online course
    A book!

    It really all depends on your learning style and commitment - not to mention available funds.
     
  4. rinseout macrumors regular

    Joined:
    Jan 20, 2004
    #4
    The only way to learn how to program is to write programs. There are plenty of free books (see here for books on C++, Java, and Python) that come complete with exercises to try. Your mac comes with pretty much everything you need; just install the Developer's tools and you're good to go.
     
  5. macbaseball macrumors 6502a

    macbaseball

    Joined:
    Feb 27, 2005
    Location:
    Northern California
    #5
    Thanks for that link. I'm going to try to learn also this summer...
     
  6. jer446 thread starter macrumors 6502a

    Joined:
    Dec 28, 2004
    #6
    ok i will look into it. So your saying java is the best to learn, as it is the most beneficial? What type of programs do you make with it? I dont think i want to be a software programmer, but programming is beneficial in many different careers, as i might want to be an engineer.
     
  7. rinseout macrumors regular

    Joined:
    Jan 20, 2004
    #7
    all programs count as software, even if all your program does is think for a long time and then spits some numbers into a file (my speciality).
     
  8. Mitthrawnuruodo Moderator emeritus

    Mitthrawnuruodo

    Joined:
    Mar 10, 2004
    Location:
    Bergen, Norway
    #8
    Java is the best language to start with if you want to learn proper OO programming. That was the first programming language I learned when in College, and it has a very nice learning curve. Later we "advanced" into C++, and the transition was very easy with basic (no pun intended) Java skills...

    I also have heard good things about Python, and if and when I find time to learn another programming language, Python is at the top of my list.
     
  9. Wyrm macrumors 6502

    Joined:
    Jan 7, 2003
    Location:
    Toekeeyoe, Japan
    #9
    I second the recommendation for java, but once you start down the java path, er, well you know the rest...

    Eclipse IDE makes programming java a snap, and it's free (as in speech):
    http://www.eclipse.org/

    -Wyrm
     
  10. CmdrLaForge macrumors 68040

    CmdrLaForge

    Joined:
    Feb 26, 2003
    Location:
    around the world
  11. cube macrumors G4

    Joined:
    May 10, 2004
    #11
    Concentrate on the concepts first. Get this book The programming environment they use has teaching modes (the development used to be at Rice University, but now it is distributed among several other schools).

    This book is available for free online here. If you look there, you'll see that there are even free workshops for your teachers!

    The software is available for Windows, OSX, Darwin, Linux, FreeBSD and Solaris. Probably it still works with other Unixen if you compile it yourself (but I'm not sure, as the compiler now also includes native code generation, not just bytecodes. Although it could be that other platforms still work, but just do not support this feature). I used to run it on IRIX.
     
  12. jer446 thread starter macrumors 6502a

    Joined:
    Dec 28, 2004
    #12
    is there any way i can take like an online course, so i get certified? That way i can move at my own pace whenever i have time, and at the end i will have something to show for it.
     
  13. cube macrumors G4

    Joined:
    May 10, 2004
    #13
  14. mac15 macrumors 68040

    mac15

    Joined:
    Dec 29, 2001
    Location:
    Sydney
    #14
  15. jeremy.king macrumors 603

    jeremy.king

    Joined:
    Jul 23, 2002
    Location:
    Fuquay Varina, NC
    #15
    http://java.sun.com/learning/index.html

    Then go after your Sun certified programmer when you are ready. Difficult test, but helps the resume.

    Edit: whoopsy...same link as above but leaving it to hammer it home ;)
     
  16. jobutex macrumors member

    Joined:
    Mar 19, 2004
    Location:
    Arlington, TX
    #16
    Be sure and brush up on your Hindi, too, because programming jobs are becoming really, really scarce outside of India, China, *slavia, Ireland, etc. I would recommend going into network, system administration, or storage for a job in I/T. Scripting languages like Perl, Python, and Ruby are much more of an asset in these situations.

    IMHO, if you really want to learn how to program, skip Java. You have to deal with too much of the interface programming, unless you're doing strictly command line stuff, and Java isn't well suited for that. Learn Perl, Python, or get the books "A Book on C" or "C by Dissection" by Kelly and Pohl. Excellent books on C programming for the beginner.

    If you just want to learn to program the Mac for fun, get "Programming in Objective-C" and "Cocoa Pogramming for Mac OS X." That will introduce you to object oriented programming and programming specifically for the Mac.

    Why do I not like Java? It's closed source, meaning its future direction is dictated by Sun, who doesn't have a really good track record at a lot of other projects.
     
  17. mwpeters8182 macrumors 6502

    Joined:
    Apr 16, 2003
    Location:
    Boston, MA
    #17
    Depending on what you want to do, there's a variety of languages to learn. I'm partial to perl, but that's because I see it a lot in scientific stuff. It's pretty easy to pick up, and it's got some nice features.

    I would recommend testing out a bunch of languages, compilers are free for most, good luck.

    MP
     
  18. BlackDan macrumors 6502

    Joined:
    Aug 20, 2004
    Location:
    Belgium
    #18
    Don't do Java. PLEASE.

    Learn C/C++. No matter what everyone is saying there's still a performance issue with Java AND ANSI C/C++ is the most commonly used language IMO. Also I think C++ is easier to learn. The idea of Java is great, being platform-independent and all, but I don't think it's the best place to start.







    or you could immediately start with X86 assembler :D Just kidding
     
  19. mrzeve macrumors 6502a

    Joined:
    Jan 25, 2005
    #19
    Im in the same situation as the guy who started this thread.

    I know how to program in Visual Basic (yeah-program =\) but I want to learn how to make cross platform applications. I dont mean I want to learn 2 different lanaguages, one for windows and one for Mac. I want 1 app, when after being recomplied, will run on the other OS. I'd like to program them all on my Mac though. Ive installed the dev tools.

    I dont know which language to use, and where to learn it. The reason for this is because I really NEED a language that lets you code will putting together the interface, like Visual Basic does. Ive tried QT for Mac but its a trial and I cant afford something like that.

    Any recommendations?
     
  20. mwpeters8182 macrumors 6502

    Joined:
    Apr 16, 2003
    Location:
    Boston, MA
    #20
    What kind of interface do you need to use? Basic menus and stuff, or something more advanced? Perl/Tk is an option, as well as Java. If you're doing stuff on windows you could use xwin32 to do X11 stuff (though i don't think that's free).

    MP
     
  21. mrzeve macrumors 6502a

    Joined:
    Jan 25, 2005
    #21
    What I mean by interface is basically just the eye candy of the program. Like the interface of iTunes. I dont want a program that runs by command line or something like that.

    Would a picture of a program that I made in windows help you in understanding what I want?

    [​IMG]

    Not the same thing obviously - but I think you can get what I mean now.

    BTW, Im pretty fluent in PHP and MySql if that would help in anything.
     
  22. macbaseball macrumors 6502a

    macbaseball

    Joined:
    Feb 27, 2005
    Location:
    Northern California
    #22
    I'm a bit confused: Should I learn Java or Cocoa. They both seem to be useful, as I could make either widgets or applications.

    Also, depending on the one i pick, what would be the best book to buy. I looked at tht earlier post, and I went to the site yesterday. I was about to print it out when I noticed it was 1,127 pages. :eek:

    I decided I need to buy a book...
     
  23. plinden macrumors 68040

    plinden

    Joined:
    Apr 8, 2004
    #23
    There shouldn't be any issue with performance with a properly written Java program - yes, even the most efficient Java program is slightly slower than the most efficient one written in C/C++, but it shouldn't be any more than 5-10% difference in runtime, if you don't take into account the time to load the virtual machine, which only takes a couple of seconds anyway, which isn't an issue with long running applications.

    Unfortunately lots of people come into Java and use things like List.indexOf or String.charAt without knowing what they're doing, or forget to initialize their Arrays or Maps to the correct size, and find that their program runs like a dog with three legs. On the other hand, lots of people come into C/C++ without knowing enough about handling memory allocation.

    For instance, a colleague of mine wrote a program to parse a really large XML file (several 100 MBytes and tens of thousands of entries) that took about 2 minutes just to start. I rewrote it to take less than 5 seconds to start, because unlike him I knew how to initialize the data structures, and also realized that you didn't actually need access to all the data and only parsed (and cached) the individual XML entries when they were requested by something the user did.

    Another for instance - a customer of ours wrote a C++ extension to some of our server software and started screaming blue murder when our servers started core dumping regurlarly, and refused to accept that the problem was in their code. Eventually they let us see the code and within minutes our C++ guys were able to point out three major memory leaks in a 100 line program.

    Anyway, what language to learn depends on what you want to do. For webapps, Java/JSP or .NET/.ASP are the two defacto standards - except that Java/JSP is cross-platform (our webmail software runs on Windows, Linux, Solaris, AIX and HPUX without our having to modify anything), but if you're thinking of doing engineering, C/C++ probably is the best.
     
  24. Nuc macrumors 6502a

    Nuc

    Joined:
    Jan 20, 2003
    Location:
    TN
    #24
    Question???

    Ok I've programmed in Fortran (not very efficiently). However, if I were to code in obj-c how does these to compare... I've always understood that fortran is more for engineers (which I am) however what kind of comparison is this to obj-c? I'm looking to possibly write programs (more or less modeling e.g. atmospheric transport) which requires numerical integration and such.

    What do you guys suggest...

    Nuc
     
  25. panphage macrumors 6502

    Joined:
    Jul 1, 2003
    #25
    Almost positive that book assumes you are a proficient C programmer.
     

Share This Page