Physics & Programming: Dual Majoring in MEV

Click For Summary
SUMMARY

Programming skills are essential for physicists, particularly for those dual-majoring in mechanical engineering. The Engineering Computations course provides foundational programming knowledge, but additional classes in scientific computing and computational physics are recommended for specialization. Proficiency in languages like C++ is crucial, as it serves as a benchmark for programming capability. Engaging in personal projects and contributing to open-source efforts enhances programming skills and provides valuable experience for future job interviews.

PREREQUISITES
  • Understanding of Engineering Computations
  • Familiarity with programming languages, particularly C++ and Java
  • Basic knowledge of scientific computing concepts
  • Experience with online programming resources and challenges
NEXT STEPS
  • Explore advanced C++ programming techniques and best practices
  • Learn about scientific computing methods and their applications
  • Participate in online coding challenges on platforms like Project Euler
  • Contribute to open-source projects to gain practical programming experience
USEFUL FOR

Students pursuing dual degrees in physics and engineering, aspiring physicists, and anyone interested in enhancing their programming skills for scientific applications.

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.
 

Similar threads

  • · Replies 4 ·
Replies
4
Views
2K
Replies
12
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 22 ·
Replies
22
Views
5K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
1K