To program a PIC (Microchip) microcontroller, a hardware programmer is required. There are a lot of programmers, from DIY to expensive one that can also program other microcontrollers.
I used to program via a Wisp628 programmer but the last years, I’ve used the original PicKit 2 and I am very satisfied with it. Note that you can buy a clone very cheap from China, but the internet is mixed about them. Some have no problems, others have. But why not try it out for a couple of euro’s?
Note that some microcontrollers like the 12F629 have the oscillator calibration value stored inside the program memory. The Pickit2 keeps that into account, but other programmers might not. See this website for more information.
I bought a cheap programming adapter for ease of use and some adapter sockets to program SMD devices.