1. Limited time only! Sign up for a free 30min personal 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!

Importance of programming

  1. Jun 5, 2013 #1
    [Starting junior, physics, Virginia Tech]

    I'm coming out of a community college and for the first time poking my head into the world of my chosen major. After reading through the "So you want to be.." post, I felt like date checking the advise on programming.

    How important is studying programming? When should I begin using my free time to study programming instead of physics or mathematics? Or should I take actual programming classes instead of picking it up on my own? I have a talent (but not a passion) for programming. Would it be wise to use these classes as a GPA bump?

    Are FORTRAN and C still the two languages of choice in fields of physics? Java has a rather large market hold. FORTRAN is pretty small.
  2. jcsd
  3. Jun 5, 2013 #2
    There are a lot of differing opinions about this, but I'll give my experience and advice:

    Currently I work at CERN, doing mostly coding for ATLAS. Pretty much everything I've seen is written in C++ or Python. While I've never worked with it, I know there are parts of the computer architecture that are written in Java (I think only the computer scientists here touch that). I've never seen anything written in FORTRAN or C.

    If you aren't going into HEP experiment, that experience might be very misleading. I think our professor's "generation" knows mostly FORTRAN, which means fields with smaller experiments are probably still written in FORTRAN. By contrast, many profs in HEP experiment don't understand the code currently used anywhere near as well as their grad students who work on it. Still, I would shy away from FORTRAN until you are explicitly told to use it. My advice is similar for C, don't spend time on it until told to do so. If you learn C++, you'll learn many of the core ideas and much of the syntax of C, and you will also learn object oriented programming which is an important part of modern programming.

    As to whether or not you should learn programming, you definitely should. Think of it like learning how to use a calculator. Most people don't have a passion for it, but not learning how to use one would be ridiculous. There's so much you can do with a computer, once you know how to program, that you'll outclass those who never bothered to learn. Tasks that will seem like too much work to other people (like pulling information from hundreds of web pages) will seem simple to you; an afternoon's work rather than weeks. That's useful no matter what you do, even if it's highly theoretical physics.
  4. Jun 5, 2013 #3
    Thank you very much for your thoughts. This makes a lot of sense.
  5. Jun 5, 2013 #4
    In my research, I've personally used Fortran, C++, Python, and Mathematica for various tasks. Mathematica primarily (although lately I've been transitioning to almost exclusively Python).

    Fortran still has a place if you are doing lots of number-crunching, but personally I wouldn't use it by choice. All of the projects in which I've used it have been at the prompting of collaborators from "older generations" who aren't familiar with newer languages.

    That said, there's an important thing that needs to be mentioned here: what's important in the long run is simply that you learn how to program - not which language you pick to learn. Once you know the basics of programming, picking up new languages is easy.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook