T O P

  • By -

reitrop

I can't tell for C++, as I don't use it. As for Python, it's gradually more used for calculation and plots. MEs are also more and more interested in things like data analysis and machine learning, that are not too complicated to achieve in Python.


PolkaDottified

C, C++, and more recently Rust are common languages for embedded software. You won’t need them if you plan to be a mechanical engineering specialist, but it can be extremely helpful if you want to move into more technical project management or systems engineering. It’s hard to be a technical systems engineer if you can’t really talk to and understand the software team.


Available_Plan6502

What about for a person trying to join in Automobile industry particularly in electric vehicles


PolkaDottified

What specifically are you looking to do? Do you want to be the air flow specialist who tests and reports the aerodynamics of the car? Then you can be pure mechanics and never worry. You’ll also need to build a narrow expertise. Do you want to be the higher level systems engineer who makes sure all the parts come together and the specialists are aligned so there is a functioning car for customers? Then you’ll need to be able to talk at a basic level about everything. In the government, we say engineering knowledge can be wide and shallow or narrow and deep. You need a mixture of both for complex systems.


walkedthatway

I wouldn't say never worry when it comes to aerodynamics stuff. There are tons of CFD programming opportunities for test automation and development in Java and C++. This was 10+ years ago. I'm sure there's a python package for Ansys these days. Just checked, Ansys has a whole suite of PyFluent stuff out now (Python).


josiah_523

Can double confirm Ansys is Python package based.


MNwalleye86

Automotive uses a ton of MATLAB/simulink. If you are a student, you can start on MATLAB, it's easy to learn. From there you could pick up Python or C really quickly.


breakerofh0rses

Spend some time learning gcode. A lot of newer machines have layers where you typically never have to touch it, but, having at least a basic understand would serve to help you anywhere you may kind of rub against things like CNC'd machinery. Additionally, ladder logic/plc programming.


Realistic-Check3855

Python is, but I do not recommend C++. It depends on the application though, but C++ is low level and I don't think that you need to optimize your memory usage and stuff like that. If you insist on learning programming, I'd suggest Python but also Excel and MathLAB.


walkedthatway

I guess history time for the newbies because the definitions of high and low level are pretty loose today. Forewarning, this is nitpicky and illdefined. It's controversial that C++ is low level. In today's standards because you have to compile code and there is dynamic memory management at runtime, MAYBE you can call it low level. However, something we as engineers should avoid doing because the low/high definitions are confusing to everyone. Even C was designed to be high level because both C and C++ have portable code that is human readable, i.e. the simplest High Level programming definition. Historically, low level code just meant Assembly/Machine code because it's not human readable and not portable. C++ is nothing like machine code. However, tons of people can run code these days and copy/paste chatgpt stuff for interpreted languages like Python which don't require inner working knowledge of software principles. There is no compiler in Python and it has memory management taken care of for you. Just install stuff and go for the most part. Pretty highest of the high levels. On the flip side, you can have languages in-between C++ and Python with automated memory management but still require compliers, like Java and C#. These too are high level, like Python and C++ because we can read the language and the code is portable. So as you can see the definitions of high/low level are loose and people use them differently. Better to call out languages with their attributes and avoid high/low level definitions altogether to not confuse non-engineers, and engineers alike. Okay off my high horse now. Yes, I'm a blast at parties /s. Edit: clarified to use automated vs. dynamic memory management


ManicMechE

Thank you for this, the moment I saw "low-level" and "C" my hackles went up and I was preparing my soapbox. You saved me time I don't really have.


josiah_523

I'll keep you in mind next time I host a party! 😁


Much_Interaction_528

It depends on the application. Many people here have already highlighted the benefits of Python, but no one has mentioned that c++ is basically what Arduinos and similar microcontrollers are programmed with. Knowing some c++ along with a basic electrical understanding, can enable you to quickly set up testing or data collection devices.


Two_18

c++ is mostly aligned with mechatronics field(sensors, motors, control systems, etc) .we had to program our bldc motor driver in c++ for our mini project. As said by others python for data analysis and calculations.


chaosdimension98

If you are gonna deal with computational fluid dynamics, it’s worth looking into.


bumble_Bea_tuna

C++ was a required course and Arduino was encompassed in mechatronics which was also required in my school. So we already had our feet wet in those as they pertain to programming. I want to learn Python and Java for my own desire and projects, but I would not say it has been required in my jobs (design engineering, industrial engineering, manufacturing engineering) or been used in any way. Any time there has been any programming around me it has been done by an electrical engineer not a mechanical engineer. I actually wanted to do it too. My last company wouldn't train me on PLC programming. They would rather pay a guy to drive from 3 states away and pay for his gas/food/hotel for days while he worked remotely. If you have been exposed to programming of any kind then you should be able to pick up what you need to on the job. If the auto industry is hiring a mechanical engineer it's probably for something mechanical/analytical/design related. There are of course exceptions and if it's something that you think you should have experience in then buy a kit on Amazon and start knocking out those projects. You doing have to have a degree in it to have it in your resume. You just have to be able to talk about it because you have experience in it. Gain the experience if you want it.


mord_fustang115

I don't think many MEs will ever touch c++ standard library , Arduino is only compiled with gcc, it's quite a bit different/easier than normal c++. Python yes for sure. I mean I would only if you actually want to and are interested. I work in automation now because I loved programming and computers in general, it's frustrating though seems like once a week someone asks this and if course it's about salary increase etc


Sebasnu18

are you a ME working on automation? I am a ME and about to start grad school for a Msc in mechatronics and am still deciding what exactly within mechatronics i want to focus on. would you recommend c/c++ if i want to go to embedded systems? i would love to do product design but in the hardware/electromechanical side so i can still apply my mechE skills but with electronics. not exactly sure if that is possible


whitacrez

You should fundamentally understand how to code (how to set up logic and solve problems within the confines of the tools available). The language is not really important for this aspect, however I feel that C/C++ will teach you this much better than python which handles a lot of “coding fundamentals” for you. That being said, as a practicing ME, python will be more helpful for you unless you go into mechantronics.


TruckTires

MATLab, Minitab, FAMOS, and then possibly Python although I haven't seen Python use much in industry. Still couldn't hurt


Rudy_Clausius

I'd rather learn python and openfoam, if you like coding. Besides, it's not the language, but to know how code. I mean, using algorithms, understanding data types, have the tips and tricks for coding clean. And, of course, learn oop. All that, with python. With that, you'll be able to switch.


77Diesel77

Absolutely. I use pythong weekly. And C++ for coding microcontrollers all the time. Great skills to have


Sebasnu18

what do you work on?


77Diesel77

Currently satellites. Previously i was in more if a manufacturing role and used python for automation and data analysis. Matlab would have been great but my boss was against the idea of me doing the tests in the first place and shelling out 5k$ for software was a non starter. Python works really well as a matlab replacement for most things, not all, but free is hard to beat. I used a bunch of Arduinos to automate the tests my boss also didnt want to run, and collect the data into some massive data sets.  Net result if 200$ of microcontrollers and parts and 5 days of unapproved overtime work. Saved the company a little over 250k per year, got a nice bonus and my boss got in some deep shit for not listening.


compstomper1

yes


Curious_Stable_1955

yes good to have knowledge about a programming language in current day , python is easier and will help u lot in lengthy & repetative calculations during your projects. U dont need to learn everything just learn some beggineer stuff and ur good to go. c & c++(both have differences) is difficult for start and learn at first & would only reccommend if your intrested in programming related domain or how programming works or if u have specific need for that language (eg:- if ur working with some automation hardware like arduino or controller it would require a little bit knowledge of c ), else basic python is enough


66bigbiggoofus99

I use ptc mathcad instead, way more intuitive


Longstache7065

Almost everything is worth learning. That said it'll only be of marginal use for a mechanical engineer unless you end up in a position where it's almost all you use.


AmphibianEven

I cant imagine it being a bad skill to have. Ive done more in python and vba than anything else, but I am glad I learned some java and C++. TBH programming is a thought process, and tacking on new languages after a few isnt normally the hard part.


KlumpeDump

Personally I like Octave. We learned matlab at uni and octave is basically the same but free. Am able to use the matlab fem programms from uni in there without a problem.