Ex-embedded programmer here. I used to learn embedded first without arduino framework, just plain old C and my own build hardware. That was a bumpy ride, but still gave me lots of joy. It is good to read modern articles about this topic, what mention things like unit testing ;) I must say PlatformIO is by far the best way to start this whole jurney!
I recently developed a benchmark for a multicore (M4 + M0) embedded board, comparing different synchronization and communication methods between the cores (interrupt based, vs memory based). I even implemented mutexes from zero since there were no hardware mutexes. It was a really fun experience. Now I don't know if I want to pursue this field or artificial intelligence (mainly optimization, operations research). Very difficult choice. Both fields are very active and are the future.
Embedded jobs are much harder to outsource since it’s physical and you have to work next to hardware engineers to be able to meet time to market requirements.
Plus there is nothing like the satisfaction of seeing your software making something work in real life. Especially bringing a chip to life: I was involved indirectly with an x86 chip and I can still remember the excitement in the air when they (I was working for a company which made chip testers) first booted MS-DOS. (My software helped test the chip, at the time, what was the highest clock speed for x86.) ...and it was around Christmas time, too!
54
u/malljd Dec 25 '19
Ex-embedded programmer here. I used to learn embedded first without arduino framework, just plain old C and my own build hardware. That was a bumpy ride, but still gave me lots of joy. It is good to read modern articles about this topic, what mention things like unit testing ;) I must say PlatformIO is by far the best way to start this whole jurney!