Is programming essential for a physics major at Virginia Tech?

  • Thread starter Thread starter tolove
  • Start date Start date
  • Tags Tags
    Programming
AI Thread Summary
Studying programming is essential for physics majors, as it enhances problem-solving skills and efficiency in handling data. While there are differing opinions on the best programming languages, C++ and Python are currently favored in high-energy physics (HEP) environments, with FORTRAN being less common and mainly used in smaller experiments. It's advised to focus on learning C++ for its object-oriented programming features, which are crucial in modern coding. Although some may suggest taking formal programming classes for GPA benefits, self-study can also be effective. Ultimately, the key takeaway is to prioritize learning programming fundamentals, as this skill will significantly benefit any physics career, regardless of the specific languages used.
tolove
Messages
164
Reaction score
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.
 
Physics news on Phys.org
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.
 
DimReg said:
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.

Thank you very much for your thoughts. This makes a lot of sense.
 
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.
 
I’ve been looking through the curricula of several European theoretical/mathematical physics MSc programs (ETH, Oxford, Cambridge, LMU, ENS Paris, etc), and I’m struck by how little emphasis they place on advanced fundamental courses. Nearly everything seems to be research-adjacent: string theory, quantum field theory, quantum optics, cosmology, soft matter physics, black hole radiation, etc. What I don’t see are the kinds of “second-pass fundamentals” I was hoping for, things like...
TL;DR Summary: I want to do a PhD in applied math but I hate group theory, is this a big problem? Hello, I am a second-year math and physics double major with a minor in data science. I just finished group theory (today actually), and it was my least favorite class in all of university so far. It doesn't interest me, and I am also very bad at it compared to other math courses I have done. The other courses I have done are calculus I-III, ODEs, Linear Algebra, and Prob/Stats. Is it a...
Back
Top