My latest board uses a footprint that supports a *press on/press off* programming cable called a Tag-Connect.
Tag-connect Cortex-M (no-legs) programming cable
You can get the cable, the adapter for 20 pin to 10 pin, and the clip that it uses, if you don't want to hold it to the board, as a package direct from Tag Connect
The above covers the cable kit that would be needed to program my boards.
For a programmer there are a couple of options. Neither are all that expensive in the grand scheme of things and the more expensive of the 2 is *much* faster that the other, it also has Linux, Mac and Windows software whereas the cheaper one only has software for windows. Either of these will double as a Jtag/SWD interface for development if so inclined or just as a flash programmer.
My favorite for both development and programming is the Segger Jlink EDU
These are available from a handful of places I usually get mine from Digikey
The other options is the ST-Link V2 from ST also available from Digikey. It's this one that only includes Windows programming software
Either will work just fine, and with both you simply load the file to be programmed and press the go button to program the board. Very little else is required.
The above - my programming/development tools