Here my take. Not a pro, but still might find useful.
1. Learn basics of electricity, learn to use oscilloscope, logic analyzer. You don't necessary need to have knowledge to design complex PCBs (that's a separate skill and not easily attainable) but you need to be able to understand existing design on high-level and do some debugging. For example you wrote code which does some SPI to talk to some device but it does not work. You need to analyze electricity to understand what's going on in the wire.
2. Learn basics of assembly. You don't need to write your software in assembly, but you need to read it and write some little snippets if necessary.
3. Learn to read data sheets.
Modern MCUs and devices are really like libraries. You're using some interfaces, calling some functions and get some responses. Data sheets are library documentation.
Then it's only matter of time and experience. Most vendors supply their terrible libraries that you're supposed to use. Most vendors support some bad IDEs that you're supposed to use. Often you're forced to use Windows because not everyone supports Linux or macOS. It's not fun part and sometimes you can avoid it, but sometimes you can't.
Learn to read documentation in general. It's shocking how many people seem incapable of finding answers that are in official documentation but not on Stack Overflow.
1. Learn basics of electricity, learn to use oscilloscope, logic analyzer. You don't necessary need to have knowledge to design complex PCBs (that's a separate skill and not easily attainable) but you need to be able to understand existing design on high-level and do some debugging. For example you wrote code which does some SPI to talk to some device but it does not work. You need to analyze electricity to understand what's going on in the wire.
2. Learn basics of assembly. You don't need to write your software in assembly, but you need to read it and write some little snippets if necessary.
3. Learn to read data sheets.
Modern MCUs and devices are really like libraries. You're using some interfaces, calling some functions and get some responses. Data sheets are library documentation.
4. Learn C, learn build tools (at least make), learn debugger (gdb), learn linker.
Then it's only matter of time and experience. Most vendors supply their terrible libraries that you're supposed to use. Most vendors support some bad IDEs that you're supposed to use. Often you're forced to use Windows because not everyone supports Linux or macOS. It's not fun part and sometimes you can avoid it, but sometimes you can't.