Edit : The tail is Nicely done whereas the front is, well slapped on a sticker.
It flies, so I don’t get the joke. I’m an embedded developer BTW.
What skills do you need to be an embedded dev?
Be aware that bytes exist for a start, I reckon.
Pick a hardware to tinker with. I’d suggest a development kit rather than some cheap mcu-psu-downloader-only board. Now listen, it may be more on the expensive side, but you don’t have to deal with hardware trouble first since many development board usually provide a lot of functionality to play with.
Second, check the official documentation for said devkit and play with it. You’ll ended up immersing yourself on your selected manufacturer but that’s fine for learning.
After you’ve more understanding of the workflow for embedded development, then I can safely advice you to start exploring. A simple one would be programming the same board but using a different workflow. You may ended up with the manufacturer IDE, and wondering how to get to your beloved editor for example. Then you start to learn the build workflow until download and debug step.
Low level programming skills in a low level language, C being the most popular. With memory safe languages like rust gaining more traction, C may eventually be a thing of the past, but imo, learning C will make you a better programmer in all languages because if you know C you know how everything works. Other than that, it could be something that uses a specific language like Arduino. Embedded programming is generally programming that interfaces with hardware directly, so really it’s just knowing how to program, and then doing it in a specific area.
There’s a good book called Code: the hidden language of computer hardware that goes in depth of computer architecture and build up from there.
You need to understand how code actually works. If you’ve only worked with highly abstracted languages like Python, Ruby, JavaScript, etc then you should probably start by learning lower level languages like C or C++. Or maybe Rust and Go but they’re kind of low level and abstracted at the same time. If you already know C/C++ then buy yourself an Arduino (or equivalent) and start screwing around. If you’re in school and interested in this as a career, take some electrical engineering or digital circuit design classes.
One of the best bosses I ever had was an electronics engineer (I’m software). There are a lot of shared concepts between engineering disciplines. I enjoyed working with hardware engineers and getting to see how they approach problems.
You mean with an actual plan?
“Agile development” (aka business substituted a plan with utter chaos and daily changing super-urgend demands) has ruined our industry.
Agile done right can be helpful, but in 95% of times, agile isn’t done right.
Electrical engineering can’t quite work like that because if you want to try out a change you have to order new, expensive prototype boards that take time to be finished and delivered. Can’t just run a new pipeline and have the new version in production within minutes.
I used to utilize Arduinos, but since I tried an ESP32 I never looked back. Those fit my needs much better and come with all the connections I want. Especially in combination with home assistant.
It sounds like you already know how to do embedded programming, at least at the hobby level. For someone who’s new to that, Arduino IDE is the easiest learning curve I know of. As far as which boards to use, I have no specific feelings which is why I said Arduino or equivalent.
Yeah that’s me
Very nice. The only thing missing is for pieces to be falling off of the beautifully painted tail.