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

Should a Mechanical Engineer focus on MATLAB or broaden his horizons?

  1. Mar 16, 2010 #1
    I am currently a junior year mechanical engineering major. I have always been interested in programming and throughout the years read books on C and Java. I recently started focusing on MATLAB. We've always had to use it in some of our classes, but I never really dedicated myself to learning past the basics until now.

    Since I will soon be applying to jobs and research positions for after graduation, I am trying to improve my programming skills as the field of engineering in general is becoming more programming oriented. However, I am having a dilemma as to whether or not I should dedicate my time to improving only my MATLAB skills as much as possible, or spread out my concentration on a select few languages such as C/C++, Java, and MATLAB.

    My question is, what do employers/research professors find more valuable in the mechanical engineering career field; knowing a variety of essential programming languages for different tasks, or being very effective at getting the job done in MATLAB?

    I don't know how the rest of the world works, but as far as I know majority of the professors at my university use only MATLAB for all of their work. This however does not help me in making a decision on what to focus on because I have not seen what programming languages engineers outside of the university prefer to use. I would try to be highly effective in as many languages as possible, but my major keeps me very busy and thus gives me limited time for independent learning.
     
  2. jcsd
  3. Mar 16, 2010 #2

    stewartcs

    User Avatar
    Science Advisor

    I don't know about research professors, but most employers prefer your skill set be in mechanical engineering since that is what you are. You probably have enough skills in programming already based on what you wrote (presuming you've take a semester or two of C++ or something similar).

    If at some point in the course of your employment programming is required, your boss will probably higher a programmer instead of wasting a mechanical engineering resource on the task.

    Basic skills in programming is quite helpful as a mechanical engineer (e.g. writing a routine to help solve a mechanical problem).

    The only computer algebra system I've seen as a professional being used is Mathcad. Some consultants I know use Maple and MATLAB but most companies probably won't.

    CS
     
  4. Mar 17, 2010 #3

    minger

    User Avatar
    Science Advisor

    I think it would be more helpful to learn a general programming language such as Fortran or C++. Anytime you mention Fortran, people are gonna dog on you. But, the fact remains that much of engineering (aerospace at least) still uses Fortran. In addition to that, most legacy code will be Fortran.

    Either way, there are tons of threads about C++ vs Fortran so I won't get into it. Having said all of that, I've worked no place that even had a Matlab license. You're better off learning a low-level language and then become an expert in matlab later on down the road if needed.
     
  5. Mar 17, 2010 #4
    The answer is: it depends on what you do. As a controls engineer, every job I have applied to requires a proficient understanding of MATLAB and Simulink. An additional plus is C++, or Fortran.
     
  6. Mar 17, 2010 #5

    Mech_Engineer

    User Avatar
    Science Advisor
    Gold Member

    If you're going into control systems, Matlab is definitely a necessity from what I've seen.

    However outside of controls, you'll rarely see Matlab. I work as a precision mechanical design and analysis engineer, and MathCAD's symbolic manipulation and simple presentation make it a necessity for my work. It would just be way too hard to try and explain to a room of engineers how I derived an analytical equation using a line-by-line programming breakdown of 2 pages of Matlab commands.
     
  7. Mar 17, 2010 #6
    Matlab stands for Matrix Laboratory. Its intended purpose is to solve large matrix equations, not derive equations, hence why its doesn't do what MathCAD does well. It's a vector-matrix based programming language, and does all kinds of great stuff, like finding the eigenvalues of a system, LQR controller design, and has built in linear dynamic simulation routines and control toolboxes. Oh, how I love you Matlab.

    The beauty of MATLAB is that its built to do math on data, not equations.
     
    Last edited: Mar 18, 2010
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook