Is programming essential for a physics major at Virginia Tech?

In summary, the conversation discusses the importance of studying programming in the field of physics and when to start learning it. The speaker shares their experience working at CERN and mentions that C++ and Python are the most commonly used languages. They also advise against spending time on FORTRAN and C unless explicitly told to do so. Learning programming is highly recommended as it can be useful in various tasks regardless of one's field of study. The conversation ends with the mention of personally using Fortran, C++, Python, and Mathematica in research projects. It is emphasized that the key is to learn how to program, rather than focusing on a specific language.
  • #1
tolove
164
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
  • #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.
 
  • #3
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.
 
  • #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.
 
  • #5


As a physics major at Virginia Tech, programming is definitely essential. In today's world, technology and data analysis are becoming increasingly important in the field of physics. Being able to write and understand code allows you to analyze and manipulate large sets of data, which is crucial in many areas of physics research.

I would highly recommend starting to study programming as soon as possible, even if it means taking some time away from physics or mathematics. It is a valuable skill that will benefit you in your future career, and it's always better to start early and have more time to practice and improve.

Taking actual programming classes can also be beneficial, as you will have structured learning and guidance from a teacher. However, if you have a talent for programming and are able to self-teach, that can also be a great way to learn.

In terms of languages, FORTRAN and C are still widely used in physics research, but it ultimately depends on the specific field and research project. Java is also becoming more popular, especially in data analysis and visualization. I would recommend learning multiple languages to have a well-rounded skill set.

In terms of using programming classes as a GPA bump, that is a personal decision. If you feel confident in your programming abilities and believe it will help your GPA, then it could be a good choice. However, I would also encourage you to prioritize learning and understanding the material rather than just focusing on boosting your GPA.

Overall, programming is an essential skill for a physics major at Virginia Tech and will greatly benefit you in your future career. I would recommend starting to learn and practice as soon as possible, and consider taking programming classes to supplement your self-learning.
 

Related to Is programming essential for a physics major at Virginia Tech?

What is programming?

Programming is the process of creating computer software, applications, and websites by writing and designing a set of instructions for a computer to follow.

Why is programming important?

Programming is important because it allows us to automate tasks, solve complex problems, and create innovative solutions. It also helps us to build and improve technology, making our lives easier and more efficient.

What skills are needed for programming?

Some important skills for programming include critical thinking, problem-solving, attention to detail, and the ability to learn and adapt to new technologies. Good communication and teamwork skills are also important for working on larger projects.

How does programming benefit society?

Programming benefits society in many ways. It has revolutionized industries such as healthcare, finance, and transportation, making them more efficient and accessible. It also helps to drive innovation, create new job opportunities, and improve our overall quality of life.

What are some common programming languages?

There are numerous programming languages, each with its own purpose and strengths. Some common programming languages include Java, Python, C++, JavaScript, and Ruby. Each language is used for different purposes, such as web development, data analysis, or mobile app development.

Similar threads

  • STEM Academic Advising
Replies
3
Views
2K
  • STEM Academic Advising
Replies
11
Views
520
Replies
3
Views
1K
  • STEM Academic Advising
Replies
2
Views
1K
  • STEM Academic Advising
2
Replies
40
Views
544
Replies
115
Views
7K
  • STEM Academic Advising
Replies
4
Views
2K
Replies
6
Views
970
  • STEM Academic Advising
Replies
4
Views
890
Replies
2
Views
1K
Back
Top