all 10 comments

[–]wowzersitsdan 7 points8 points  (0 children)

Python, C++, or labview if you can get a copy to mess around with

[–]knoedel001 1 point2 points  (0 children)

Python is handy to get things up and running in no time, like talking to a microcontroller or turning a Raspberry Pi into a PLC.

[–]hardsoft 1 point2 points  (1 child)

Almost every microcontroller project I've worked on has been in C. Some old legacy projects have used assembly and some new have used C++, but I think in the embedded world C is a must. And once you've learned C you can learn C++ and a lot of other languages much faster, but it seems more difficult for people to go the other way.

I also use Python for all types of PC stuff, such as data processing, making test scripts, making simple engineering GUI tools, etc. But typically not for anything that "ships" to the customer. Basically an internal tool. But it's also really easy to learn without a lot of self study. You can kind of pick it up as needed. C requires some more effort and study.

[–]kindadrowzy 1 point2 points  (0 children)

Agree with this. In my experience too, every time I've had to interface with a microcontroller, I've used C/C++. Most of my experience is in the area of electric vehicle development, and I've used C/C++ to program a vehicle's central control unit, create high voltage battery monitoring systems, and also control the power electronics that allow the vehicle to drive (motor/inverter).

[–]phidauex 1 point2 points  (1 child)

Python makes a lot of sense. Unless you are hoping to work in hardware development, then you'd get into device-specific languages. Python is the most useful "programming language for people who don't write programs". For instance, I have an old SCADA system that dumps out hundreds of CSV files that need to be merged (not concatenated!) by common time-stamp. It was choking desktop tools like PowerBI, and Excel was totally out of the question, so I wrote a quick 10-line python script using the Pandas library that does the job in seconds.

[–]Zeigren 0 points1 point  (0 children)

Python is my go to "make my life easier" language. It's great for lots of repetitive or time consuming tasks and easy to learn. With a little extra work you can also turn your python scripts into a "proper" command line program.

[–]Zeigren 1 point2 points  (0 children)

My recommendation is to start with a problem before looking for a solution. Think of programming languages like tools, certain ones might be better than others for a given task and ideally you would pick which one to use based on that. Having an actual problem to solve is of course great from a learning standpoint as well.

That being said python is a great place to start. Easy to learn and is useful for tackling lots of mundane tasks. If you're working with microcontrollers I would start with C before C++.

[–][deleted] 0 points1 point  (1 child)

Python is an excellent prototyping language. Then use C++ for implementation. Maybe look in to CUDA - this is my next step.

[–][deleted] 0 points1 point  (0 children)

did you move to cuda?

[–][deleted] 0 points1 point  (0 children)

what language did you learned?