How important is computer programming to your career?

In summary, FredGarvin says that if you are good at writing programs in a specific language, like Matlab, it can be faster than programs written in other languages. He does not think that speed is always important, but it can be helpful if the program is going to be run a lot. Minger says that if someone is good at writing code in a specific language, like Python, it will be faster than code written in other languages. He does not think that speed is always important, but it can be helpful if the program is going to be run a lot.
  • #1
Greg Freeman
48
0
I'm an aerospace engineer, currently job hunting, but I'm keeping myself occupied by refreshing my memory in c++ programming. I've had a course on it, but that was a few years ago, and I have mainly been using Matlab instead (for about 4 years now).


I wanted to know, as mechanical/aerospace engineers, how often do you use your computer programming skills? I know CAD and analysis programs are important, but how often are you out there, coding a new tool or programming a device?
 
Physics news on Phys.org
  • #2
I would say knowing something like matlab/mathcad/mathematica/Excel is more useful than C++. You often need to do calculations that are a pain by hand but C++ would be overkill.
The only problem with these packages is happening to know the one that is used/installed in your company.
If you really want to program look at python + numpy.
 
  • #3
I am a graduate student involved in CFD...so obviously programming is vital. We do all of our coding in FORTRAN 90.

If I wasn't, then it really depends. After I learned FORTRAN, I found that unless I was doing Matrix mathematics, I would write a faster, better program in FORTRAN than I could in Matlab. The only thing Matlab could do better was graph the results.

I've also had a class where we were solving partial differential equations numerically. It took somewhere on the order of 5-10 minutes runtime for the guys who used Matlab, and my program took somewhere around a second.

So, some will never use it, some will use it everyday; I think it's never a bad idea to know a programming language. If you know one, then if you ever need to learn another, it's pretty simple to switch.
 
  • #4
From a design engineer's standpoint, I would say that I agree with mgb. We already have a lot of the required software for doing the required jobs we run into. The most programming I run into is designing new macros, etc... for existing applications. Honestly I would say that you would get a much better return for time invested by becoming very good at something like Matlab.
 
  • #5
Mgb, I have heard bits about python, but what would it allow me to do that other languages would not? Could I use it to manipulate other programs easily?

FredGarvin, by being very good in Matlab, what do you mean? I've written some finite different code for simple CFD problems, a composite plate stress/strain/failure model, some optimization code, but I didn't see any of those requiring an awful lot of knowledge. What would differentiate someone who's very good vs. someone who's just average? Making GUI's for custom tools?

Minger, what if someone were to write the same programs you did, in say c or c++? Would there be that big of a difference in speed? Do you think your programs were faster because of the overhead in Matlab or a difference in capability between you and the other programmers? I could easily slow down Matlab by writing inefficient code.

Thanks, guys.
 
  • #6
Python is easier and faster to write/debug/test then C/C++.
It is a scripting language so it's great for those "go through 1000s of test reports and print out the temperature where pressure was greater than x" jobs.
With numpy, matrix maths and data handling is as fast as C
It runs on everything.
It comes with lots of libraries to do common stuff. There are also several gui packages so you can (I have) produce full commercial windows apps if you need to.

Also if you work on windows, ironpython is a full .net language.

Execution speed rarely matters unless the run time is more than an hour or it is going to be run 1000s of times.
If a program takes an hour to write/test and 10mins to run against 3 days to write and 1second to run - whihc is better?
 
  • #7
Greg Freeman said:
I'm an aerospace engineer, currently job hunting, but I'm keeping myself occupied by refreshing my memory in c++ programming. I've had a course on it, but that was a few years ago, and I have mainly been using Matlab instead (for about 4 years now).


I wanted to know, as mechanical/aerospace engineers, how often do you use your computer programming skills? I know CAD and analysis programs are important, but how often are you out there, coding a new tool or programming a device?

It depends quite a bit I think. As far as my career has gone, I've found PLENTY of use knowing how to write programs (C++ or VB) to handle calculations quickly and "neatly" packaged for portability. For example, I wouldn't send a CAS file (like MathCad or Maple) to a field technician, but I would send an application (less room typically for them to corrupt the file) or an Excel file with some VBA working behind the scenes. Anyway, if nothing else, it helps you to think logically, analytically, and also become a good problem solver. That's my 2 cents.

CS
 
  • #8
Greg Freeman said:
Minger, what if someone were to write the same programs you did, in say c or c++? Would there be that big of a difference in speed? Do you think your programs were faster because of the overhead in Matlab or a difference in capability between you and the other programmers? I could easily slow down Matlab by writing inefficient code.

Fortran was more or less developed with engineering in mind. We use fortran because it's so damn fast. C/C++ is also used however, and is just as fast (I think). However, there are things that are allowed in C++ that could ruin large CFD codes (global variables, etc).

As far as Matlab, you are correct in the overhead. Being a high-level language, it simply isn't made for large time-consuming computations.

Matlab as I said though, is very useful. We are taught it freshmen year, and most people use it every semester; and beyond.
 
  • #9
Greg Freeman said:
FredGarvin, by being very good in Matlab, what do you mean? I've written some finite different code for simple CFD problems, a composite plate stress/strain/failure model, some optimization code, but I didn't see any of those requiring an awful lot of knowledge. What would differentiate someone who's very good vs. someone who's just average? Making GUI's for custom tools?
I think that will vary depending on the specific area you go into. What I mean by being good is simply having the background and knowledge to handle anything your career might throw at you. For example, I am horrible with Matlab. If I use it, there is always a big learning curve that I have to go through. I say someone is good if they can just sit down and go. Work immediately on solving the problem at hand. In the end, that can be a measure of an engineer's effectiveness. How long does it take them to do what they need to do.
 
  • #10
The trick is to be good enough so it can take work away, I found excel macro recording option fantastic for that, you just mouse click away and at the end you have a nice program!
Don't become too good or you will become the companies programming spider-monkey!
 

1. How does computer programming benefit your career?

Computer programming is an essential skill in today's technology-driven world. It allows you to automate tasks, analyze data, and create innovative solutions to problems. As a scientist, computer programming can help you streamline your research process, organize and analyze data, and even create simulations and models to test your theories.

2. Do I need to be a computer programming expert to succeed in my scientific career?

While having advanced knowledge of computer programming can certainly give you an edge in your career, it is not a prerequisite for success. As a scientist, you can benefit greatly from having basic programming skills, such as being able to write scripts or use data analysis software. However, you can also collaborate with computer programmers or hire them to help with more complex tasks.

3. Can computer programming skills help me stand out in a competitive job market?

Absolutely. In today's job market, employers are looking for candidates who have a diverse set of skills, including computer programming. Having programming skills can make you a more well-rounded and versatile candidate, and can set you apart from other applicants in the scientific field.

4. How can I learn computer programming as a scientist?

There are many resources available for scientists to learn computer programming, such as online courses, coding bootcamps, and even free tutorials and resources. It's important to find a learning method that works best for you and start with the basics. As you gain more experience, you can continue to develop your skills and learn more advanced techniques.

5. Is computer programming necessary for all scientific fields?

While computer programming is becoming increasingly important in many scientific fields, it may not be necessary for all of them. For example, if your research primarily involves fieldwork or physical experiments, computer programming may not be as crucial. However, having basic programming skills can still be beneficial and can help you collaborate with other scientists who have programming expertise.

Similar threads

  • STEM Career Guidance
Replies
11
Views
689
  • STEM Career Guidance
Replies
30
Views
5K
  • STEM Career Guidance
Replies
5
Views
826
Replies
18
Views
3K
  • STEM Career Guidance
Replies
19
Views
2K
  • STEM Career Guidance
Replies
10
Views
722
  • STEM Career Guidance
Replies
18
Views
4K
  • STEM Career Guidance
Replies
13
Views
5K
  • STEM Career Guidance
Replies
4
Views
1K
  • STEM Career Guidance
Replies
3
Views
2K
Back
Top