<p>I'm a mechanical engineering student (going to be a sophomore this fall). Both programming languages look interesting, and I've already gotten started on Fortran a bit.</p>
<p>One of my parents works as an accountant for an engineering firm and has been trying to convince me that Fortran usage in engineering is dwindling, and that I would be better off learning C#.</p>
<p>I know that Fortran is extensively used in the scientific community and by engineering firms that don't want to reprogram all of their legacy software, though how much is Fortran and C# is used in engineering fields, such as industrial robotics?</p>
<p>I have two summer courses to study for, one of them is engineering related. I doubt I can make time to be proficient in both programming languages in one summer before the fall engineering career fair.</p>
<p>I somewhat enjoy programming, though not enough to be willing to do it as a full-time job.</p>
<p>So you really answered the question in your own post. You are what, 20 years old? Do you really want to be studying a language that is used primarily to support legacy systems? “Legacy system” is synonymous with “we would replace it if we could afford to” and in many cases “archaic and hated by all”. Some exceptions, of course… but honestly, for an engineer learning Fortran is a bit like studying Latin. Fortran was a hot language when I graduated from college 30 years ago. Still in use, but probably not a great use of your time.</p>
<p>Here are a couple of links on this question (last one is not engineering related, but note that generally Fortran is nowhere to be found, although C# barely is mentioned also):</p>
<p>The first link is broken. Also, I’m going to be 19 years old in a few months.</p>
<p>EDIT: As for the second link, I have no interest in web development or consumer software. I’m more interested in companies such as Caterpillar and Rockwell Collins (avionics company).</p>
<p>Once you learn a programming language well, you should have no trouble transferring that knowledge to another language. I started with FORTRAN many years ago but I have also written code in Assembly, C and now mostly in Python. </p>
<p>Computing for engineering courses often use MATLAB (GNU Octave is a free clone of such).</p>
<p>Don’t focus on just the programming language; it is better to learn some of the basic concepts of CS and be able to adapt to use the most appropriate programming language for the task at hand.</p>
<p>Fortran actually is used a lot these days… in certain fields. There are a lot of numerical analysis software packages that are still primarily Fortran, in part because that is what Fortran was designed to do and it is still good at it, and in part because many of the codes are still written and maintained by older engineers who grew up with Fortran.</p>
<p>I have never run across C# in use in mechanical engineering or related fields. It is basically always Fortran, C++, Python or Matlab depending on the application.</p>
<p>Perhaps but avionics are really more of a computer science/software thing if you are referring to the display side of things, not mechanical engineering.</p>
<p>Fortran doesn’t seem like a very good choice for a first programming language to learn at this time. I would guess that the few industries that still use Fortran, probably have plenty of potential employees with many years of experience with Fortran. </p>
<p>C or C++ would be a better choice than C#, which has narrower applications. Java is popular these days as a first programming language, and isn’t a bad choice. Knowing how to use Matlab is also quite useful.</p>
<p>I learned basic Java in high school (though I should probably continue exploring the more advanced concepts such as arrays), C programming (we went up to character arrays and file IO), basic Matlab, and Wolfram Mathmatica.</p>
<p>During the fall semester I will be taking a C++ programming course.</p>
<p>C# and Fortran courses aren’t offered at my university.</p>
<p>Java is not uncommon at engineering schools but the undergrads I know use C++, Matlab, Python. Also, make sure you can handle Excel VBA spreadsheets.</p>
<p>Embedded systems development is usually done in C++ or C. Hard real time systems (like engine controls or avionics) are likely all C/C++ with specific libraries and components for real time work. Look up QNX, Wind River, and the like to see what they’re coded in, and it ain’t C# and it ain’t Java or Fortran or ABAP…</p>
<p>But again, I have to stress that knowing Fortran is useful if you ever get into numerical analysis. There are still a lot of codes out there, even new ones, that are written in Fortran due to familiarity and the fact that it’s one main purpose is exactly that, numerical analysis. It still isn’t a language you need to learn as your first language or really for any other reason unless you start branching that direction. I just want to make sure it is clear that it is not a dead language in the right branches of many fields.</p>
<p>Again, I already learned the basics of C during spring, and I will be learning C++ during my fall semester at college.</p>
<p>I’m currently teaching myself Fortran this summer. Right now I’m stuck on getting the opening/reading/writing/closing of files to work, and a lot of the Fortran guides or documentations seem to gloss over the I/O stuff.</p>
<p>Let me rephrase - at this point in time, any time spent learning Fortran is time that would be spent more profitably learning C, C++, Python, MATLAB, or really just about anything else. The amount of new work involving Fortran is decreasing faster than the Fortran-proficient workforce.</p>
<p>So neither the fact that you already know some C nor that you will be taking C++ this fall detracts from the point that learning Fortran right now is 95% likely to be completely wasted time and less than 1% likely to have any kind of positive impact on your career. You would be better off studying conversational Chinese.</p>