I think it depends on what you enjoy from programming.
For programming MCU I like two levels, one is knowing the very low level, what is the first instruction the cpu runs. That implied understanding linker scripts and a bit of assembly and vector table (this applies to ARM, is not complicated and I had tons of fun learning this!)
For this you can get a debugger with SWD, pick a manufacturer (there’s TONs of stuff for stm32, just google stm32 bare metal!) and have fun!
The other level that I like is to just pick a feather from Ada fruit, install circuit Python, a few libraries, and I’m off to the races. I enjoyed that also (made a little buzzer that played the correct tone based on MIDI from my keyboard)
I quite enjoyed that too but there were a lot of layers that I didn’t understand, I just accepted that an MCU can run Python… but I like understanding!
Above all tho, have fun!