1. Not finding help here? Sign up for a free 30min tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

How important is computer programming to your career?

  1. Jan 16, 2008 #1
    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?
     
  2. jcsd
  3. Jan 16, 2008 #2

    mgb_phys

    User Avatar
    Science Advisor
    Homework Helper

    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.
     
  4. Jan 16, 2008 #3

    minger

    User Avatar
    Science Advisor

    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.
     
  5. Jan 16, 2008 #4

    FredGarvin

    User Avatar
    Science Advisor

    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.
     
  6. Jan 16, 2008 #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.
     
  7. Jan 16, 2008 #6

    mgb_phys

    User Avatar
    Science Advisor
    Homework Helper

    Python is easier and faster to write/debug/test then C/C++.
    It is a scripting langauge 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?
     
  8. Jan 16, 2008 #7

    stewartcs

    User Avatar
    Science Advisor

    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
     
  9. Jan 17, 2008 #8

    minger

    User Avatar
    Science Advisor

    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.
     
  10. Jan 18, 2008 #9

    FredGarvin

    User Avatar
    Science Advisor

    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.
     
  11. Jan 22, 2008 #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!
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?