I suggest that you start with something specific in mind to have the MCU actually do.
Typically the first think is to 'blink a LED' - in order to get that working you need to have the development environment set up, the ability to program the device sorted out, and for the code you need to make sure the device is set up correctly, the oscillator is correctly configured, the timer is running correctly and you can control a GPIO port. All of those are fundamental to doing just about anything else.
Once you have that sorted (i.e. the LED blinking at all and then at the correct rate) then select something like reading from an SPI/i2C device as you will probably end up doing that a lot. After that, it is whatever takes you interest.
Also you need to decide on the development framework. I've used the STM32Cube framework as it is fairly generic across the STM32 families.
Don't get stuck on the specific chip/development board. once you learn something abut one of the STM32 devices then you can apply it across the board - the differences in the MCUs tends to lie in the peripherals and clock chains that each has. That also means you can learn from just about any of the tutorials. videos etc that are on the web.
I have also read "Mastering STM32" by Carmine Noviello - the book does have some errors (and bad grammar - better than my attempts at writing in some other language!) but these are pretty obvious and the overall contents are very good. He does use the Nucleo boards rather than the Discovery boards but that difference is really minor.
Susan