Physics major - Is a minor in Computer Science worth it?

In summary, the individual is a second-year university student facing a dilemma between majoring in Physics and a minor in CS. They enjoy both subjects but feel that the extra CS courses are hurting their grades in Physics. They ultimately want to continue to graduate school in Physics and are considering dropping the CS minor to improve their grades. However, they are concerned about missing opportunities in work that requires CS skills and are seeking advice from others with experience in this choice. The conversation also touches on the idea that while having a CS background may be beneficial in certain situations, it is not necessary for a career in physics and can be learned through self-study.
  • #1
KingFelix
4
0
Hey,
I am starting my second year of University, and I have a dilemma I was hoping people here could help me with - I started out with a major in Physics and a minor in CS. Over the past year I came to the following conclusions:

1. I enjoy both physics and CS and would like combining the two in the future
2. However, while I think I can handle the course load of a full CS degree and a full Physics major seperatly - I feel the extra CS courses hurt my success in Physics.

I want to continue to Grad school in Physics and maybe even get a Ph.d, which is why I want to drop the CS minor completely, so hopefully my grades in Physics will become more competative. Right now I'm passing every class but I'm not in the 80's in terms of avarage and therefore not competative.

However I feel like if I do I might be missing oppirtunities in work that calls for some CS skills. Let's assume for a second I end up with a Ph.d. How would I be looked at with no formal education in CS? I do have some experience working in CS and plan to keep taking some jobs and doing some projects outside of school.

Long story short I was hoping people with experience could comment on this choice.
 
Physics news on Phys.org
  • #2
Fellow physics major here. From what I've gathered talking with the grad students in our department, most of them only took one or two elementary programming classes, unless they are s computational physics. I know in my job as a lab assistant (most of which is programming) I've gotten along just fine with just an introductory programming class and an applied math class emphasizing programming. I would say a whole CS major (or perhaps even a minor) may be overkill unless you are looking to do computational physics - programming in physics (at least from my experience, and that of the graduate students I have talked to) is very much a pick-it-up-as-you-go sort of thing.

Most of a CS degree and probably even minor are way overkill for physics. In physics, I can't really imagine a circumstance where we would need to worry about writing something like an operating system... which is the high level stuff a CS degree is training you for.

I would say if your goal is physics, take enough CS that you're decent at using it for data analysis/equipment communication and stop there. Fill that space up with research or physics electives.
 
  • Like
Likes KingFelix
  • #3
There is a big gap between scientists programming and actual software architecture. Most people programming in scientific groups are self-taught. When someone comes along who actually know how to program properly according to the most modern conventions, it becomes clear it is a world of difference.

That said, you can only know so much. In the end it is all a team effort and you are going to be the physics expert while someone else is the math or CS expert.
This of course assumes a PhD career.

In any way, it depends on how you want to brand yourself. If you want yourself to brand yourself as a computation physicist, CS is one way.

If a research group that does computational physics has an opening for a physicist, they don't assume that person is going to be a CS grad.
You need to be able to work with a CS person on the same project. So a working knowledge is required. How high that knowledge is depends on many things.

Many groups would benefit from better programming practices, but the best way to solve that is to hire a good CS grad or technician rather than educate all physicists to a high level of CS and programming.

That said, most of fundamental CS will actually be useless in itself.
 
  • Like
Likes KingFelix
  • #4
Alcathous said:
There is a big gap between scientists programming and actual software architecture. Most people programming in scientific groups are self-taught. When someone comes along who actually know how to program properly according to the most modern conventions, it becomes clear it is a world of difference.

That said, you can only know so much. In the end it is all a team effort and you are going to be the physics expert while someone else is the math or CS expert.
This of course assumes a PhD career.

In any way, it depends on how you want to brand yourself. If you want yourself to brand yourself as a computation physicist, CS is one way.

If a research group that does computational physics has an opening for a physicist, they don't assume that person is going to be a CS grad.
You need to be able to work with a CS person on the same project. So a working knowledge is required. How high that knowledge is depends on many things.

Many groups would benefit from better programming practices, but the best way to solve that is to hire a good CS grad or technician rather than educate all physicists to a high level of CS and programming.

That said, most of fundamental CS will actually be useless in itself.
Thank you, I found your response helpful.
In terms of Software, I completed the intro to CS course which is our intro to programming course as well as an Object Oriented Programming course and Data Structures. I also worked as a programmer before so I think I write code in an Ok level.
I am a litte more worried about the theoretical courses I will miss, namely algorithems and maybe Image Processing which I'm very interasted of (both in the technical sense and the physical signal / wave analogs). Can this gap be bridged?
 
Last edited:
  • #5
KingFelix said:
However I feel like if I do I might be missing oppirtunities in work that calls for some CS skills. Let's assume for a second I end up with a Ph.d.
You won't be missing any opportunities. If your goal is to obtain a PhD in physics, then focus your concentration there. You've taken the foundational programming courses anyway. You can self study any other areas of computer science that interest you.

How would I be looked at with no formal education in CS?
How do you think you would be perceived if you did have a formal education in computer science? I think you are putting way too much stock in a CS credential.

KingFelix said:
I am a litte more worried about the theoretical courses I will miss, namely algorithems and maybe Image Processing which I'm very interasted of (both in the technical sense and the physical signal / wave analogs). Can this gap be bridged?
Yes. There's nothing preventing you from learning on your own.
 
  • #6
I like how physicists always say that anything that is not physics, you can learn on your own, but physics itself; no that you need to learn in an academic environment.

Regardless of how much CS a physics PhD needs, a CS PhD candidate and a physics PhD candidate will have a completely different approach to programming. CS is very very advanced these days. A basic course in Pascal 10-30 years ago and experience doing programming once it comes up the last couple of decades, that is completely different from how a fresh Software Engineering MSc leaves college today.

Lot's of teams are suffering from code that is is a patchwork of stuff, has poor comments, can't be naturally expanded on, has to be rewritten, etc.

But as things get more advanced, the fields move apart in a sense that one person has to be more and more specialized.
Things like writing the code to process imaging data, that is more and more something a physicist wouldn't do alone.
 
  • #7
Alcathous said:
I like how physicists always say that anything that is not physics, you can learn on your own, but physics itself; no that you need to learn in an academic environment.
I'm assuming this is directed at me. If not, ignore this reply.

First, I'm not a physicist. None of my posts in this forum should give that impression. Second, I have a masters degree in computer science and work as a senior software engineer. This info is in my profile.

Programming can be learned outside of an academic institution to a very high degree.

CS is very very advanced these days.
Really? And what would be the difference between a CS education today and 10 years ago? 20 years ago? The fundamentals are still the same. What has changed in object oriented programming, functional programming, data structures, computer architecture, OS theory, algorithms, algorithm analysis, computability, or socket programming? How many fresh graduates have you interviewed? How many have you mentored?

Alcathous said:
Lot's of teams are suffering from code that is is a patchwork of stuff, has poor comments, can't be naturally expanded on, has to be rewritten, etc.
You've just described many code bases written by professional software developers. However, having worked in a government research facility several years ago, it is true that the quality and maintainability of some of their code bases were abysmal. I saw one program that had roughly 30 variables all named a0, a1, a2...a30. You don't need a CS degree to know that is a horrible practice.
 
  • Like
Likes Anakha Denison
  • #9
So a CS degree holder is just as likely to use
a0, a1, a2...a30.
As I said before, you don't need a CS degree to know that is bad practice. Only common sense.

Alcathous said:
You can't reinvent all formalism and best practices yourself in a vacuum while you learn to program.
Best practices are not defined by academia. They're defined by industry, which is why fresh graduates need mentoring. Unfortunately, most CS professors lack any significant industry experience.
 
  • #10
All besides you point. Just that extreme example you bring to the table, it is not just a case of 'common sense'. CS people have just as much common sense as anyone else.
 
  • #11
jaeusm said:
Programming can be learned outside of an academic institution to a very high degree.
Agreed, but the operative words here are "can be learned." It's also a fact that many bad habits can be learned outside of academia. And when programming is learned "on the job" bad habits of the original coder can be learned by those maintaining the code base, without anyone intervening to point out the difference between good code and bad code.
Alcathous said:
CS is very very advanced these days.
jaeusm said:
Really? And what would be the difference between a CS education today and 10 years ago? 20 years ago? The fundamentals are still the same. What has changed in object oriented programming, functional programming, data structures, computer architecture, OS theory, algorithms, algorithm analysis, computability, or socket programming? How many fresh graduates have you interviewed? How many have you mentored?
Based on many questions about programming (usually Fortran) I've seen in this forum that are posted by physics people, there is little or no evidence that I can see that the poster is aware of any of these topics. The style of programming in many cases is unchanged from that used in the days of Fortran 77 and earlier. In some cases, the posters were unaware of how to debug their nonworking programs.

Alcathous said:
Lot's of teams are suffering from code that is is a patchwork of stuff, has poor comments, can't be naturally expanded on, has to be rewritten, etc.
jaeusm said:
You've just described many code bases written by professional software developers. However, having worked in a government research facility several years ago, it is true that the quality and maintainability of some of their code bases were abysmal. I saw one program that had roughly 30 variables all named a0, a1, a2...a30. You don't need a CS degree to know that is a horrible practice.
True, but many of the questions posted here show that the poster is completely unaware of best practices; e.g., variable names with one or two letters, no use of indentation to denote the bodies of control structures, no use of white space to promote readability by humans, using common blocks instead of parameters in functions and subroutines, no comments, and on and on. Not all of the questions I'm talking about were in Fortran, but in my experience, the worst ones were those written in Fortran. Having advanced knowledge in physics or other scientifc arenas doesn't automatically translate into an ability to write code that can be easily maintained.
 
  • #12
Mark44 said:
It's also a fact that many bad habits can be learned outside of academia. And when programming is learned "on the job" bad habits of the original coder can be learned by those maintaining the code base, without anyone intervening to point out the difference between good code and bad code...

True, but many of the questions posted here show that the poster is completely unaware of best practices;
I agree, but every institution should define their own set of guidelines for style and best practices -- especially for somewhat ambiguous things like "maintainability" and "readability", where programmers sometimes have disagreements. I designed a large application nearly ten years ago that I still maintain and enhance. As such, my views on maintenance tend to be somewhat different than developers who work primarily as consultants that spend a year or two building an application and then move on to the next project. These things are learned through experience rather than in a formal academic environment. Truthfully, I'm not sure some of those things could be learned in any other way. Gaining that intuition takes time and experience. Having a knowledgeable mentor or supervisor review code is a great way to learn on the job. Of course, there are helpful resources like "Code Complete", but you don't need a CS degree to understand that book.
 

1. What is the benefit of minoring in Computer Science as a Physics major?

Minoring in Computer Science as a Physics major can provide a variety of benefits. It can enhance your problem-solving skills, introduce you to different programming languages and software, and give you a competitive edge in the job market. Additionally, it opens up opportunities for interdisciplinary research and career paths.

2. Will minoring in Computer Science take away from my focus on Physics?

While minoring in Computer Science does require a significant amount of time and effort, it does not necessarily take away from your focus on Physics. In fact, many concepts and skills in Physics and Computer Science overlap and complement each other. With proper time management and planning, it is possible to balance both majors effectively.

3. Can a minor in Computer Science help me in my Physics courses?

Yes, a minor in Computer Science can definitely help you in your Physics courses. Many concepts in Physics, such as data analysis, simulations, and modeling, can be applied using programming and computer skills. This can make understanding and solving problems easier and more efficient.

4. Will having a minor in Computer Science limit my career options?

No, having a minor in Computer Science will not limit your career options. In fact, it can broaden your career opportunities by combining the skills and knowledge from both fields. It can also make you a more versatile and valuable candidate for jobs in various industries, such as data science, engineering, and technology.

5. Can I still pursue a career in Computer Science with a minor in Physics?

Yes, you can still pursue a career in Computer Science with a minor in Physics. While a major in Computer Science may be preferred for some positions, having a minor in Physics can demonstrate your strong analytical and problem-solving skills, which are highly valued in the field of computer science. Additionally, you can always supplement your minor with additional courses or self-study to strengthen your skills in specific areas of interest.

Similar threads

  • STEM Academic Advising
Replies
6
Views
1K
  • STEM Academic Advising
Replies
8
Views
910
  • STEM Academic Advising
Replies
4
Views
792
  • STEM Academic Advising
Replies
3
Views
1K
  • STEM Academic Advising
Replies
6
Views
3K
  • STEM Academic Advising
Replies
12
Views
1K
Replies
6
Views
870
  • STEM Academic Advising
Replies
2
Views
915
Replies
2
Views
871
  • STEM Academic Advising
Replies
5
Views
844
Back
Top