How important is computer programming to your career?

AI Thread Summary
Computer programming is considered important in aerospace and mechanical engineering, with varying degrees of necessity depending on the specific role. Many engineers find that knowledge of high-level languages like Matlab, Python, and FORTRAN is more practical for handling calculations and developing tools than lower-level languages like C++. While some engineers use programming daily, others rely on existing software and may only need to create macros or simple scripts. Python is highlighted for its ease of use and versatility, especially for data manipulation and rapid development. Overall, having programming skills enhances problem-solving abilities and can improve efficiency in engineering tasks.
Greg Freeman
Messages
48
Reaction score
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
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.
 
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.
 
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.
 
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.
 
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?
 
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
 
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.
 
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!
 

Similar threads

Replies
11
Views
5K
Replies
30
Views
9K
Replies
9
Views
1K
Replies
19
Views
4K
Replies
2
Views
3K
Replies
7
Views
2K
Back
Top