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!

Physicists/Grad students, how much computer science do you use?

  1. Jun 17, 2013 #1
    Pretty much everyone in the physical sciences these days has to know programming. C++, fortran, matlab, and what have you. But what about the more core computer science concepts, like algorithms, data structure, numerical analysis, operating systems, etc.? How important are these to those working in the physics field?

    I'm in undergrad right now (going to 3rd year) and wondering whether it's worth it to pursue a CS major on the side. What they teach sounds like they would be useful, but it would require me to do a 5th year, as well as paying more tuition (not just the 5th year itself, but extras from year 2 to 5), so it's not without cost. I do plan on going to grad school for maybe condensed matter, semiconductors, quantum computing those kind of area. If anyone has some experience/insight to share I'd really appreciated it. Like for example, how much did you have to self-teach cs-related topics, and do you think a formal education has significant benefits?
  2. jcsd
  3. Jun 18, 2013 #2


    User Avatar
    Science Advisor

    The important practical skill is really just programming, and self-teaching does work. However, in order to be good at programming you have to be at least decent at various computer science topics (in particular the algorithms, data structures, and numerics you mentioned). Formal courses or textbooks can make learning those things more effective, but they are not required. And on their own, they are also not that useful unless you apply the techniques you learned in practice.

    In the end the only thing which will count is ``can you do project X?'', formally educated or not.
  4. Jun 18, 2013 #3


    Staff: Mentor

    some other topics to consider are parallel programming via MPI (see http://en.wikipedia.org/wiki/Message_Passing_Interface) and file formats such as NetCDF and database application programming for large data collection, storage and indexing.

    Also there's the Open Source Physics site for doing physics simulations using java (see www.compadre.org/osp)
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook