There are plenty of resources by ST. I have learnt a lot from STM32F4 Discovery documentation for example. It is a pretty good board in my opinion so it makes a good reference material.
Personally I prefer SWD programmer when it comes to STM32 because with a Discovery and its on board ST-Link you can program any other custom STM32 board through a four pin connector.
The other important document is the Getting started with STM32F4xxxx MCU hardware development. Of course there are one for each series.
All necessary points are covered:
This application note is intended for system designers who require an overview of the hardware implementation of the development board, with focus on features like
• power supply
• package selection
• clock management
• reset control
• boot mode settings
• debug management.
Reference designs included as well and some recommended PCB routing guidelines for STM32F4xxxx devices. All in all really useful.
More application notes here if you are interested in specific peripherals.