1. Not finding help here? Sign up for a free 30min tutor trial with Chegg Tutors
    Dismiss Notice
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?