Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

A Chemical-Physics major - what prog. language should I know?

  1. Nov 22, 2006 #1
    I'm an undergraduate student studying Chemical-Physics. It's somewhat like half-and-half of both majors. My goal is to do something in the field of Chemistry or Physics - perhaps starting out as entry-level Chemist or Physics doing menial lab work. My ultimate goal, however, is to do Medical Physics along the line of QA for medical devices. Additionally, after completing my degree, I plan to go for Nursing for job security.

    In regards to the programming language, I have took intro programming class (Java). Now, I've search for Physics jobs and seen some of them requiring knowledge of programming like in C++, Fortran, Java, and so on. I was wondering which is the most in demand if I were to perform computing tasks in Physics.

    I've looked at my school catalog and there are options to take "Data Structures", "Programming Languages (learning C/C++, Java/LISP)", and "Scientific Visualization (Matlab)"

    Any advice?
  2. jcsd
  3. Nov 22, 2006 #2
    Matlab is used a lot for numerical methods with visualization since that is all build right in. C/Fortran are what most physicists use if they don't use Matlab. I don't know if I would worry about "Data structures" since I don't really know what the class description is. I would suggest taking both of the other classes as being a proficient programmer is important to any scientist (in my eyes).
  4. Nov 22, 2006 #3
    data structures is a pretty fundamental class in computer science. I would imagine that if you're planning on a career of some kind in computing you would want to know that stuff.
  5. Nov 22, 2006 #4
    I agree with jbusc, but that data structrues class might not invovle any programming. I know the data structure and algor class at my university doesn't invovle any programming which sucks but thats how some are i guess.

    If you want to jump into programming take another java or c++ class, if you know java u can easily learn C++ and vice versa.
  6. Nov 27, 2006 #5
    I concur -- learn a regular "programming language" if you haven't already done so (independently or through a class). It's a pretty important skill. Matlab is cool -- but parts of it can require program writing skills, and you can usually access a manual (either coming with the program or being assessable from online)... And "data structures" yeah -- what is THAT?
  7. Nov 28, 2006 #6
    C and Fortran are a must. For most mathematical tasks, fortran comes out being faster - but C is a more broad purpose language; know them both

    C++ is, in my opinion, overhyped as its object oriented nature tends to lend some unnecessary overhead to certain computations (in particular, random number generation using a mersenne twister in c++ is over an order of magnitude slower than a simple C code bit shifting miller-parks algorithm).

    Matlab is good for plotting data... but that's about it. If you want speed, you'd have to look elsewhere.
  8. Nov 28, 2006 #7
    C isn't always faster than C++, just in some cases, that can occur in any language.

    If you know C++ you can always code in C if you want, but its not the same if you know C you don't know C++.

    So if you want to kill 2 languages with 1 stone, learn C++ and you can easily adapt to the small changes in C.
  9. Nov 28, 2006 #8
    Object-Oriented programing languages are a great tool for general programming; however, I am unsure as to if they will be of much use in physics/chemistry.

    But if you know Java, I would just go ahead and learn C++, as the leap isn't that huge. After that go ahead and learn C.

    Perl may also be a language to look into, its what my school uses for part of their computational physics course (according to the people who took it last year).

    Fortan, from what I have gathered from math majors and other physics majors, is begining, at least in my school, to get the boot.

    Hope that helps.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook