Physics & Programming: Dual Majoring in MEV

AI Thread Summary
In the discussion, the importance of programming skills for physicists and engineers is emphasized, particularly in light of modern research demands. A dual major in mechanical engineering is seen as a beneficial path, especially with foundational courses like Engineering Computations. Participants suggest that while formal classes can help, self-directed learning and practical experience are crucial for becoming proficient in programming. Engaging in personal projects, contributing to open-source software, and utilizing online resources are recommended as effective ways to develop programming skills. C++ is mentioned as a valuable language that can serve as a benchmark for programming ability, but the discussion highlights that proficiency in one language can facilitate learning others quickly. Overall, programming is framed as an essential skill that enhances employability and research capabilities in physics and engineering fields.
e^(i Pi)+1=0
Messages
246
Reaction score
1
I read in the "So you want to be a physicist" thread that it is essential these days for a physicist to be able to program. Since I plan to dual-major in mechanical engineering, will this give me the programming skills I need? I notice that the very first course in the curriculum is Engineering Computations...
 
Physics news on Phys.org
Get a CS Minor if you can. If you're dedicated you can take one CS class, learn the basics, and pick up anything else you need. Most people aren't and it's hilarious to see my physics and math friends that took C++ their freshman year or something try to program something nowadays. I program all the time and being relatively good at it allowed me to pick up Mathematica in a few days rather than a few months; a tool which I find indispensable even for research in pure mathematics.
 
The good news is, if you are pursuing physics and engineering degrees, you'll probably find programming fun. The best way to get good at programming is to make a hobby out of it. There are plenty of websites with programming challenges to improve your skills such as Project Euler or CodingBat.
 
Even as a CS major, the classes you take may not give you enough to do to make you a good programmer. If you want to work with code a lot in the future, you should always have some project/software/app/whatever that you're working on. Plus this gives you things that you can talk about in an interview when they ask you about projects you've worked on in the past. If you contribute to some big open-source effort, you can put it on your resume as well.

Really you don't need classes to help you be a programmer, but of course certain classes help you with some specialized fields such as scientific computing or computational physics. They're generally not the typical CS programming classes, though (they're things like applied numerical methods, networking, parallel algorithms, etc.). Since you have to take a programming class for your engineering major, you could start there and then just learn on your own for the more advanced things.

It probably won't make a big difference that you don't know how to run highly efficient simulations on a supercomputer if your intended field isn't very heavy on the numerical stuff. Still, knowing how to program really well makes for a hell of a fallback plan; writing software is pretty fun.
 
thanks for this guys... i really needed the answers as well... i love physics a lot and i also wanted to know .. do i have to learn C++ or java know how to be a hacker?... not for bad intentions off course...
 
Nair said:
thanks for this guys... i really needed the answers as well... i love physics a lot and i also wanted to know .. do i have to learn C++ or java know how to be a hacker?... not for bad intentions off course...

Yes.

First of all, computer programming is language independent so that if you are good in one language, you can pick up another language in a few days (or even a few hours). It's expected in programming that someone will be able to give you a language that you've never seen before, and you ought to immediately be able to use it.

Second, C++ tends to be something of a litmus test. You can write C++ that looks like fortran, that looks like python, that looks like lisp, that looks like assembly language, so the assumption is that if you can program decently in C++, then you can program in anything.
 
hadsed said:
Even as a CS major, the classes you take may not give you enough to do to make you a good programmer.

Which is why I made the statement that a CS *degree* is not too useful. CS *knowledge* is essential, but I've given interviews in which it was obvious that the person with a *CS* degree just couldn't program at a high level. Conversely, there are people without CS degrees that are excellent programmers.

One thing that I like about the field of programming, is that it's great for people that like to learn stuff on their own.

Really you don't need classes to help you be a programmer, but of course certain classes help you with some specialized fields such as scientific computing or computational physics.

And a lot of those classes are online. Because degrees aren't important in programming, you can get a quite good education by going online and looking for stuff.

Still, knowing how to program really well makes for a hell of a fallback plan; writing software is pretty fun.

Bureaucracies tend to suck the fun out of thing because you end up taking class X merely to get piece of paper Y so that you can get job Z. There is much less of that in programming than in other fields. You figure out that you don't know anything about template metaprogramming, and so instead of having to take a class, you go on google and amazon and buy the books you need and read the papers and lectures you need.

In my life, I've only taken one formal course on computer programming (6.001), and that course is now available for free online.
 
e^(i Pi)+1=0 said:
I read in the "So you want to be a physicist" thread that it is essential these days for a physicist to be able to program. Since I plan to dual-major in mechanical engineering, will this give me the programming skills I need? I notice that the very first course in the curriculum is Engineering Computations...

I'm going to provide a bit of a dissenting opinion here. You should be able to develop good enough programming skills in the Engineering Computations class to complete your coursework. Physics classes don't really involve any difficult programming.

That being said, programming is a very valuable and desirable skill. I would recommend taking extra programming classes when possible.
 
dedicateddan said:
I'm going to provide a bit of a dissenting opinion here. You should be able to develop good enough programming skills in the Engineering Computations class to complete your coursework. Physics classes don't really involve any difficult programming.

You're right in that you generally don't need to do much (if any) programming in physics courses, but I think the OP's question is more about the importance of programming for a physicist rather than the importance of programming for a physics undergraduate student.
 
Back
Top