I currently attend the University of Florida, and I am studying Mechanical Engineering. However, I am required by my major to take a Computer Programming Class for Engineers.
I was on team S.P.A.M. frc #180 and fvc #3228 but unfortunately didn’t do any programming for our team, only mostly designing, machining, and building.
Its always a software problem :yikes: just kidding!
So I have the option of taking the class based on C++, VB.NET, or FORTRAN.
At my school, I heard from one of my friends that the C++ class was harder, and the Fortran class was easier. I know most F.I.R.S.T. teams use C++ on their robots (easy c in ftc), so it seems that this class would be more useful. I have never even heard of the other two.
So my question is, for the long run in the real world, would it be a better idea to take the class on C++, even though its harder? Or are VB.NET and FORTRAN used in more real world applications that I just haven’t heard of or just don’t know about? Or are these two just outdated software that would have no use if I learned?
I myself work mostly in the world of DBA, however, my C++ class has proven to be mute at this point in time. I have never seen FORTRAN, and I did not know that they still taught it at schools. VB .NET is a good language, however, correct me if I am wrong, I know that most people learn C++ (or the similar C family) prior to it.
C++ is the basis for most languages, even though it is the one I liked the least, and I use the least today.
C++ delves into object oriented programming more, There you will learn associations between structures such as parent and children inheriting the properties of their parents and other such nonsense. It works great for structures, but I found it confusing to write and understand. I recommend a C primer before taking this language or you will be lost from Day 1. You need to understand pointers and structures before attempting the concepts of C++.
Visual Basic. NET is Windows based. There are some companies that use it, but most of the larger companies are moving to C#.NET among other languages based on the C Standard.
FORTRAN is an Engineering language based upon BASIC except it handles complex mathematics better. Unless you work with Calculus in your programming, you will probably never see it in industry.
C language is the Entry level block you must understand. Think of it like mathematics, You cannot multiply until you can add. You cannot do Trig until you understand Geometry. Differential Equations cannot be done until you have a solid understanding of Calculus.
Programming is much of the same. Java, HTML, C++, C#, C#.NET,D, Labview … are all based on the principles of C. The reason for this is because C is portable across many different operating systems using that OS Systems designated compiler. The same program written for Windows will run on a MAC by just recompiling.
By now you have probably guess it, all operating systems and device programs are also written on some derivative of the original C language.
Get to know the basics first before tackling a higher-level language than C. You will be glad you did.
Hey squirrel, I learned Fortran on puchcards too and that was as late as 1979!
Jared, as for as what language to study, as a mechanincal engineer, you may work in mechatonics aka robotics. If you ever do any low level programming of microcontrollers (like the FIRST robot), it will probably be in C, so learning C++ will help you there. (C++ is a superset of C). VB.NET would probably serve you well in general programming tasks like databases, graphs, command consoles etc. You won’t go wrong taking VB.NET, but unless you specifially have a need for C or C++ you probably won’t use it.
I never did FORTRAN, but some ATLAS. Now those were the old days.
The standard here at SIU-C for Engineering is to start off with C++ and then on to other languages, it really is the easiest while being an industry standard. It’s actually a requirement for all Engineering here.
C++ Is the way to go. VB is n00b stuff. You can learn that on your own once you get the feel for C++'s syntax. It’s easier going from harder to easier anyway. Basic though is widely used, so it might be a good language for you to learn. Now about Fortran, it’s pretty much dead. The only person I know who uses Fortran is my Physics professor who uses it to make software to help generate problems and to do small animations like 2d not 3d. >_> You get the picture.
What, no body is talking about COBOL. Punch cards, thats back when IBM ruled. There is nothing like trying to sort out a couple hundred cards that fell on the floor. A couple years ago, people talked about hanging chads like they were something new. C++ is the way to go today.
I’m going to side with those that suggest taking the C++, given your options of C++, vb and FORTRAN. Being an old FORTRAN dinosaur, I wish I could say take it first. But, you will encounter more C-type structure and syntax now-a-days. Having said that, however, there are millions of lines of FORTRAN 77 out there in the engineering community that are not going anywhere. It has been verified and validated and no company wants to spend $$, just to re-verify and re-validate it in another language. You will still encounter it in engineering applications. Besides, the gnu GCC utilties allow you to write in FORTRAN, C, C++, ADA and mix and match them…well…almost.
Something else I’d like to point out is that since the 1980’s, engineering companies have been using “pictures-to-code” software (think Easy-C) to remove the logic and analysis design process from a particular language syntax and structure. Getting familiar with Matlab/Simulink and/or LabView will take you a long way towards being ready for that. Having the knowledge of a language and syntax, will be invaluable to you, however, when you need to get into the nuts and bolts of debugging problems.
Now…if they’d only target FORTRAN 95 as the language of choice for the 2009 FRC
I’m currently teaching a class in VB.NET and am impressed with how quickly you can put together useful programs. It’s a useful skill to have ready when you need it, but relatively easy to learn with tutorials or readily available books. As mentioned above, a better tool for a lot of engineering is Matlab or something similar.
If the C++ class is an entry level class, I doubt that you’ll get into the most difficult concepts of object based programming. I think that it will probably give you the most useful knowledge base to understand programing basics. Try to get as much as you can from it. In my experience, one of the most troublesome traits of many professionals is their lack of understanding of fields outside of their specialty. I know a company looking for someone to do prototype installations, troubleshooting, and software modifications. That’s just one challenging job which requires a much wider breadth of knowledge than a pure mechanical, electrical, or software engineer has.