Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Physics and Programming

  1. Aug 1, 2008 #1
    Ok well, i was just looking around for someone to give me a few tips or give me a "guide".

    I really wanted to use programming with physics, to simulate or just to get to know how to apply what i know in physics and see how much i understand it to make applications.
    I am not a very good programmer, i just learned a bit of visual basic before.

    I want to know what you would recommend because i have a very rough course load in school.

    I was thinking of C or C++ or Python out of which C++ appeals to me the most.

    1. Is this possible?
    2. Can it be done by a 14 year old?
    3. If so, what should i do first, i'm completely lost.
     
  2. jcsd
  3. Aug 1, 2008 #2

    CompuChip

    User Avatar
    Science Advisor
    Homework Helper

    If you think to learn C++ specifically with physics applications in mind (visualisations, etc) perhaps it is better to learn Java. Several advantages are:
    • It is easier to produce graphical output (C++ is text-only, getting graphics is "advanced" while in Java it is "basic" ==> even after a short learning time you have visually appealing results instead of text in a terminal, which is very stimulating)
    • The syntax of Java and C(++) is quite alike
    • Java is very strict (strict type-checking, safe memory management) while in C++ it is very easy to cause access violations, memory overflows, invalid address reads, and so on. This enforces good (as in: careful) programming. C++ allows you to be very sloppy and still have it compile, possibly teaching you bad habits.
    • Java is strongly object oriented, which is good to learn from the start
    • Java is cross-platform (you can even run it in an applet in your browser)

    You can find some tutorials on the Internet and start playing around a bit. However, from own experience I can tell you, you will want to buy a good book. I can't recommend any for Java as I've never properly learned it, but after fooling around a long time with C++ I finally got my hands on a book which introduced general programming alongside the C++ syntax and features. Even nouw, though I hardly use C++ anymore, I still apply the programming techniques in there (specifically the object oriented approach).
     
  4. Aug 1, 2008 #3
    I would suggest using Python and, in particular, using the VPython package. I think it's entirely feasible for a 14-year-old to learn how to integrate basic physics and programming, and I think the VPython tutorial (PDF) would be a good start, once you start to get the hang of Python as a programming language.
     
  5. Aug 1, 2008 #4

    mgb_phys

    User Avatar
    Science Advisor
    Homework Helper

    Python also has the numpy and scipy packages - excellent free maths libraries.
    It's very easy to learn and is a more modern design, it's closer to what languages of the future will look like.
     
  6. Aug 2, 2008 #5
    Thanks for the replies guys.

    I liked python so far. Vpython is quite amazing.
    And i also think python should be easier to learn.
    Correct me if i am wrong.

    Any other recommendations?

    Thanks

    Utkarsh
     
  7. Aug 2, 2008 #6

    Dale

    Staff: Mentor

    If you have the money or if you are at a school that gives access I would highly recommend Mathematica for scientific computation.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?