Is there a way to program the ARM microcontroller without solder it to a dev board? I mean, if I want to develop a product based in the ARM architecture I suppose that I have to use one microcontroller for prototyping right? but in the moment I assemble my product, how can I program the rest of ARM microcontrollers? should I give the code to the PCBA manufacturer in order to program all the ARMs that will be built in every piece?, sorry for my English tho.
This usually depends on the microcontroller you use, but in general ARM chips have a JTAG interface and even better, a SWD interface.
SWD consists of two pins -- data and clock -- so it is very easy to plug-in an external programmer to flash the firmware in-circuit.
You can either include a connector or a series of pads in the layout for that purpose. If you use SWD only four pins are needed (three if you power the board from somewhere else): SWDIO, SWCLK, GND and VDD. Reset may or may not be necessary as well, depending on the chip.
Using circular pads in the PCB is nice for scale production: one can have needles or pogo-pins to connect the board -- and you can use those also for board testing...
Anyway, you can supply the PCBA with the firmware binaries, or you can program yourself after production for security purposes. You may supply the PCBA a test version in this case.