Da questo punto di vista, prendi una scheda di sviluppo con un micro che consente il debug hardware come ad esempio una Nucleo con STM32.
La programmi sempre con framework C++ "Arduino like", ma hai il programmatore/debugger hardware incluso con cui puoi fare debug in real time (anche se NON con l'IDE Arduino).
La possibilità di avere esecuzione passo-passo, breakpoint, watch list etc etc dal punto di vista "educativo", oltre che per il debug vero e proprio, è enormemente più efficace del piazzare dei Serial.println() qua e la per vedere cosa succede durante l'esecuzione.