What to learn??

Discussion in 'Mac Programming' started by kashmoney2006, Dec 16, 2007.

  1. kashmoney2006 macrumors regular

    Joined:
    Dec 12, 2007
    #1
    Currently all I know is the basics of java. i understand variables, parameters, recursion, etc. I wanted to expand my programming knowledge but was not sure where to go??? So far it seems like learning Unix and/or C is a good start. Is that the consensus??
     
  2. lancestraz macrumors 6502a

    lancestraz

    Joined:
    Nov 27, 2005
    Location:
    RI
  3. HiRez macrumors 603

    HiRez

    Joined:
    Jan 6, 2004
    Location:
    Western US
    #3
    It sounds like you need some goals. What kinds of things do you want to do most? Desktop applications, web applications, scripting and automation, database design, widgets, games? Each has different languages and frameworks that work better for that focus. But in general it's hard to go wrong with learning C to start because so many other languages are derived from it and it will teach you good programming fundamentals applicable to a wide variety of endeavors. Personally I've soured on Java over the years, though it's still not a bad learning language.
     
  4. WildPalms macrumors 6502a

    WildPalms

    Joined:
    Jan 4, 2006
    Location:
    Honolulu, HI
    #4
    As I think about your question, you could consider Ruby which can be used for shell scripting, web backend as well as producing complete applications for OS X (RubyCocoa - http://rubycocoa.sourceforge.net/HomePage). Its a very solid object oriented language and there is a growing interest in it.
     
  5. Ti_Poussin macrumors regular

    Ti_Poussin

    Joined:
    May 6, 2005
    #5
    I would suggest C as well, you'll learn the pointer, the alloc of memory... All you learn in C is never a wast of time, it still follow you in other language and you will understand other language quickly after that.

    If you want a cool scripting language to do some application quickly, I would suggest Python.

    I suggest you look at some design pattern to program in a good manner.
    http://en.wikipedia.org/wiki/Design_pattern_(computer_science)
     
  6. kashmoney2006 thread starter macrumors regular

    Joined:
    Dec 12, 2007
    #6
    What would you say if i said i was interested in games? gaming is one of the concentrations offered as part of my computer science major.
     
  7. SC68Cal macrumors 68000

    Joined:
    Feb 23, 2006
    #7
    Practice practice practice. Keep coding. Learn UNIX. Learn about data structures and file processing.
     
  8. Aranince macrumors 65816

    Joined:
    Apr 18, 2007
    Location:
    California
    #8
    C/C++ would be your goal then. If C/C++ seems like too much of a problem you can try something simpler like Python. Although, since you have some experience in Java, C/C++ shouldn't be a problem.
     
  9. kashmoney2006 thread starter macrumors regular

    Joined:
    Dec 12, 2007
    #9
    is there any specific book on Unix that you would suggest? I was advised to get this one as I was told it would integrate well with my Mac OS X knowledge:
    http://www.amazon.com/Learning-Unix...bs_sr_1?ie=UTF8&s=books&qid=1197834029&sr=8-1



    And what about a book on C/C++?? any suggestions??
     
  10. SC68Cal macrumors 68000

    Joined:
    Feb 23, 2006
    #10
    That OR book is pretty good. Get it used, it barely breaks the surface of UNIX. I used it, then got the Mac OS X for Unix Geeks one to go a little further. After that, do yourself a favor and get CLIX from Rixstep. After that, get your spelunking gear and start exploring.
     
  11. HiRez macrumors 603

    HiRez

    Joined:
    Jan 6, 2004
    Location:
    Western US
    #11
    You can program games in any language, but for serious games Aranince is right, you almost certainly want to know C++. Since I'm not a C++ guru I don't have book recommendations but a quick search of user reviews on Amazon.com will probably turn up a lot of options. Then, learning the OpenGL, DirectX, or SDL APIs wouldn't hurt either, but learn C/C++ first since most other things you'll use assume a knowledge of those. It's a long path though, be prepared to be patient and put in some work.
     
  12. ChrisBrightwell macrumors 68020

    ChrisBrightwell

    Joined:
    Apr 5, 2004
    Location:
    Huntsville, AL
    #12
    What kind of game? Platforms range from C and ASM to Flash and Java.
     
  13. ChrisA macrumors G4

    Joined:
    Jan 5, 2006
    Location:
    Redondo Beach, California
    #13
    Books are OK as an introduction but if you want to learn look at the man pages. for example "man signal" Will tell you all about the "signal" system call and how to set up a signal handler. It is only a cople pages long. After you have looed up and read a few hundred of these you will know what's going on. Programming is not so much about learning the language like C/C++ that is pretty straight forward the bigger thing that takes more time is lernning the "platform" -- All those thousands of library calls and APIs and there is more than one of them, so many that programmers have to specialize but languages are easy enough that most people know a half dozen well and have used maybe twice that many.

    With C/C++ you can start with the UNIX (POSIX) system calls and sthe standard C library then look at the C++ "STL" (standard Template Library) This is the "base" after that you have to decide what platform you are writing for and what you are going to write. and you will need to learn the graphics system for that platform. But the basics of data structures, threads and system calls has to be lerned first.

    Whouldn't it be nice if you could read just one book and then know everything you need. I just moved my office and had to downsized from two bookcases to one and I have books stacked on the floor now. Just about everyone here is like this, buy a few technical books a year and after 25 years you have a few
     
  14. SC68Cal macrumors 68000

    Joined:
    Feb 23, 2006
    #14
    Indeed. I think the OP needs to get the introduction before he can start using the manpages.

    I think learning the semantic knowledge of programming is important first (loops, logic operation, etc...), then you pick up a language, then you start exploring the platform.

    Agreed.

    I imagine most people get familiar with a set of APIs and libraries based on need, rather than choice. I only started using the J2EE platform because that was what had the JDBC driver so I could communicate with my databases.
    Head would probably explode first.

    Do you have IBM error code manuals? :D

    Bookshelves are one of the greatest inventions ever made.
     

Share This Page