Generally there are established communication protocols, and developer debug hook points.
JTAG, UART as common interfaces.
I2C, CAN bus as protocols you're commonly going to find.
Stuff like Arduino, Raspberry PI are generally good introductions to embedded ptogramming and debugging.
Nothing beats having access to a hacker space where someone can mentor you during learning.