I use the Pickit3 (as suggested by Mike), cheapish and easy to use, plus its usb and runs directly from the Microchip software. I also use the free microchip software MPASM, and program in assembler.... there's not too many commands to learn. Just design your board with a pin header that matches the pickit and it just plugs in... leave it plugged in all the time and make program changes as you go! My apprentice also bought a 16F877 starter board ... red in color off ebay for like $10 and it already has the pin header to match.... plus rs232 and some leds on the outputs. The processor nearly costs that on its own.