I'm going to second the opinion above for the Analog Discovery 2 - I'm a HUGE fan!
Sooner or later, you're going to want a logic analyzer that can decode SPI and I2C between the uC and some peripheral. The AD2 can do that.
You will ALWAYS need an oscilloscope and the AD2 has a two channel scope. It does have limited bandwidth and a constrained voltage range but it should be more than adequate for uC projects as long as the frequency isn't too high. These limitations may seem severe but, for uC projects, it should be more than adequate for getting started. Later on you can look at the Rigol DS1054Z or Siglent SDS1104X-E. These are great entry level scopes (the Siglent is a few years newer on the market) and reasonably priced for hobbyists.
The thing is, these scopes fall flat on their face in every way except bandwidth when compared to the even less expensive AD2. True, both of those scopes are 4 channels but the only reason I have the Rigol is that I wanted to decode SPI on a scope. Clearly, it can be done better and with more decoding using the logic analyzer capability of the AD2. So, maybe two channels isn't all that limiting given 16 digital IOs.
Starting at message 52, I post 4 experiments with the AD2 (not quite consecutive) that are darn hard to do with a scope and are dead simple with the AD2. Of course, a 27" monitor makes the plots even more impressive.
https://www.eevblog.com/forum/testgear/starter-scope/50/Digilent has an EE program called Real Analog - like the Khan Academy EE track, it is well worth the time to go through the program. There is a textbook, homework and quizzes. It is based primarily on the AD2.
It sounds like you are going to be spending more time on code than parts and that's fine. Download the free Waveforms software and look at the list of software defined tools in the AD2.
https://store.digilentinc.com/waveforms-download-only/There's a 'demo' mode so you don't have to actually have an AD2
Make friends with LTspice because it is often better to simulate before breadboarding. Not always but usually.
Also, make friends with one of the solvers like MATLAB or Octave (free MATLAB work-alike). Nobody wants to solve simultaneous equations by hand.
Replies 7, 15 and 17 of this link give a flavor for MATLAB and I believe the code, 7 and 17 will run unchanged on Octave
https://www.eevblog.com/forum/beginners/c-programming-plottingvisualizing-seeking-recommended-direction(s)/Reply 15 uses the optional Simulink toolbox and this isn't available for Octave. I'm into analog computing so something like Simulink is pretty cool. So are 3 actual analog computers... That Mass-Spring-Damper example runs well on a real analog computer and seeing it actually work on a scope is quite an education.
Reply 17 solves a 6x6 matrix problem - something I don't want to do by hand even with a sparse matrix. This kind of thing comes up when using Kirchhoff's Laws to solve circuits. The only difference is that AC circuits will use complex numbers instead of just reals like the example. I truly hate solving matrix problems by hand when they contain complex numbers.
No bench works without a signal source - these days an Arbitrary Waveform Generator (AWG) and the AD2 has two channels of signal generation.
In the short term, you need to know Ohm's Law in its various forms including the Power equations, Kirchhoff's Laws (the current law comes up with op amps) along with Norton's Theorem and Thevenin's Theorem. Being able to sling these concepts around is a real help when you start to design stuff.