I'd like to add some Computational Science to my Resume

Click For Summary
Having a background in programming is increasingly recognized as beneficial for chemists, particularly for tasks involving data analysis and computational problem-solving. While MATLAB is praised for its data processing capabilities, opinions vary on its overall utility compared to languages like Python, C, and C++. Many suggest prioritizing Python due to its versatility and ease of learning, as it can handle a wide range of programming tasks similar to MATLAB. However, MATLAB remains a strong choice for those focused on mathematical applications, especially in academic settings. Ultimately, the decision should align with specific career goals and available resources for learning.
DDTea
Messages
133
Reaction score
0
I'm finding that having at least *some* background in computer programming will be useful to my career as a Chemist. My background in programming is rather weak and rusty; I took a course or two in BASIC back when I was in middle school and then another in JAVA in high school. I've never used either since then (~7 years). So for all intents and purposes, I consider myself a beginner. Although I'm not looking to become a computer scientist and I don't terribly *enjoy* programming, I don't want to shy away from it either.

This winter, I'm planning to take a course on MATLAB simply because it will help with some of the math courses I'm planning to take. From what my friend tells me though, MATLAB is more of a "data cruncher" and, although good, not as "useful" as C, C++, JAVA, or Python. So naturally, I'm looking to learn at least one of those languages.

I'm interested in other people's advice regarding how I should approach this and what I should prioritize. I'm paying for classes out of my pocket right now and I'm also working full time, so I probably won't be able to take a course in *everything* (which I'd love to do), which is why I need to prioritize.
 
Physics news on Phys.org
As an engineering undergraduate, I find that programming methodology is useful for solving both abstract mathematical and general computational problems. I took my first course in programming (and computer science) as a freshmen and loved it immensely.

In my two exposure modules to computer science, C and C++ were taught and used. I think these two languages are considered "general-purpose" languages even though C is strictly procedural and C++ is objected-oriented?

After that, I had to work briefly with C# and Java on my own. Had to use Matlab/GNU Octave for an internship project. Had to learned half a dozen engineering simulation packages. I found that the exposure to C/C++ allowed me to pick up all those easier (not that I consider myself an expert in any of those languages- I just know enough to use them as tools.).

I think you should enroll yourself in an introductory computer science course that focuses on programming methodology, in C. After that, either C++ or Java.
 
Learn python on the side for fun. Numpy (the big numeric computation library) and matplotlib (the big plotting library) are analogous to MATLAB and have lots of functionality/interaction directly lifted from matlab, so you may not feel so lost.
 
DDTea said:
This winter, I'm planning to take a course on MATLAB simply because it will help with some of the math courses I'm planning to take. From what my friend tells me though, MATLAB is more of a "data cruncher" and, although good, not as "useful" as C, C++, JAVA, or Python. So naturally, I'm looking to learn at least one of those languages.

I'm interested in other people's advice regarding how I should approach this and what I should prioritize. I'm paying for classes out of my pocket right now and I'm also working full time, so I probably won't be able to take a course in *everything* (which I'd love to do), which is why I need to prioritize.

Ahem, Matlab 'not as useful'?! Your friend is wrong :smile: but then, of course it depends what you want to use a language for. Languages are often suited to certain tasks - the reason MATLAB might be thought of as a 'data cruncher' for instance, is that it's designed to handle data input as matrices. It's then very fast at processing large matrices - or large amounts of data. Matlab is definitely one of the most commonly used programming environments across an entire university. Possibly the most common - engineers use it, mathematicians use it, physicists use it, and I've seen life scientists use it - many of which can afford to use it exclusively for their work. All of my research is done in matlab. I can use C++ and a couple of other languages, but MATLAB does everything I need.

I would say that unless you've any reason to think that c++ or python will specifically be useful to you, stick with the MATLAB course. Matlab is pretty straightforward to get started in - there are lots of resources and tutorials out there and it's extremely powerful. Most chemists I know don't have any/much programming experience, bar Excel.
 
fasterthanjoao said:
I would say that unless you've any reason to think that c++ or python will specifically be useful to you, stick with the MATLAB course. Matlab is pretty straightforward to get started in - there are lots of resources and tutorials out there and it's extremely powerful. Most chemists I know don't have any/much programming experience, bar Excel.

I disagree on that. While MATLAB certainly is useful, I'd still go for Python first. The main reason being that nearly everything you can do in MATLAB, you can do in Python, too (look up scipy and matplotlib!), but the reverse is not nearly remotely true.[1]
Additionally, Python is a real general purpose programming language with a very clever and versatile design, and probably both the easiest to learn, easiest to apply, and most powerful general language all in one combination. Its main problem is that its dynamic design is not well suited for large scale software development or for high-performance computing (in the sense of writing hpc kernel routines in it)---but these aspects are unlikely to be a major concern when starting.

So my advice to the OP: if you learn only one language, let it be Python. With Python alone you can already tackle almost all small to medium sized programming and scripting tasks you are likely to come across. Of course it helps to know some more basic language like C or C++ (or even Assembler) to get some feeling of what the high level programming constructs are actually doing. But this is not mandatory when starting out.


[1] Of course this is related to lots of MATLAB's functionality being somewhat glorified LAPACK wrappers in many respects...
 
TL;DR: Jackson or Zangwill for Electrodynamics? Hi, I want to learn ultrafast optics and I am interested in condensed matter physics, ie using ultrafast optics in condensed matter systems. However, before I get onto ultrafast optics I need to improve my electrodynamics knowledge. Should I study Jackson or Zangwill for Electrodynamics? My level at the moment is Griffiths. Given my interest in ultrafast optics in condensed matter, I am not sure which book is better suited for me. If...

Similar threads

  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 7 ·
Replies
7
Views
822
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 8 ·
Replies
8
Views
4K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K