For the most part when I was working, I wrote code in Matlab/Simulink and later in Python/Scipy for radar system simulations. Never was involved much with embedded work. Probably held me back in my career, but that's water over the dam.
Python turned out to be very fast to code in, it just clicked with me. It became helpful later on when having to code some C++. Wrote a client server application to compute fairly large FFT's (fast fourier transforms) on a higher end server. Took a week to understand what the heck was needed for the client, and the server, and to draw little pictures of the necessary basic network transactions. I knew no network programming. Got a book on the subject and read it cover to cover. (Hey, it was a short book!) Understood, about 1/2 of it, but that was enough. Coded it up in python and tested in a day, for both client and server. Seemed to work well with very good data payload delivery rates. Then ported the server python code to C++ in one long day. C++ and python both can be object oriented, and I used this to my advantage. Prior to that day, I had never coded a single line of C++. I knew a smattering of C. Dang thing worked beyond my wildest dreams. Dunno if I simply was lucky, or that week of cogitating helped. It seems that once you know what needs to be done exactly, the coding comes easy.
Back to Arduino land. C and C++ are difficult me. But I plug away at it. After a while, some code gets written. Sometimes it even works. Have to say, with embedded stuff, it is gratifying to see things work. Fooling around with this home built electronic lead screw has been a boatload of fun, even including the more boring display panel stuff. You can make the interface interact anyway you like, which for me, is the fun part. I knew nothing about ELS before I started, so it has been quite the adventure. For my ELS I chose a 600 MHz M7 processor, aka Teensy 4.1. I am nowhere near running out of gas on it. My stepper motor is the limiting factor. I will need to put in safeguards to warn the operator to lower the spindle speed, to rates the stepper motor can handle.
Think I will integrate in my lathe DRO's. A DRO is just a linear encoder, and Arduino has encoder libraries, (which I use already) so it would be fun to add the capability. Will have to add in level shifters to these old 5V DRO's, but that's not hard, just a buffer chip or a single resistor and a transistor buffer, depending what I can find in my electronic scrap box...