Hola:
Pues no es difícil programar PICs, ayudan los manuales, se pueden programar en ensamblador, en C o en Basic (PIC Basic), si vas a aprender te recomiendo ensamblador, es un lenguaje de bajo nivel y con el se puede hacer lo que quieras con el microcontrolador, sólo usa 35 instrucciones y no necesitas todas en un mismo programa, si ya conoces alguno de los otros lenguajes pues úsalo, un detalle es que no cualquier software compila el programa en C, hay muchos programadores en la red o puedes comprar uno también, no sé que PIC pienses usar, hay de gama baja, media y alta, lo importante es que sea el adecuado a las necesidades de tu circuito. Supongo que usarás uno de 40 pines de gama media o alta, la diferencia para fines prácticos es cómo se usan los bancos de memoria, la gama media usa 4 bancos y la alta es diferente. Para el programador, debes fijarte en el puerto que tengas en tu computadora (ordenador) USB, serial (DB9) o paralelo, si el programador que tienes es para un PIC con diferente número de pines puedes armar un adaptador buscándolo en internet. Espero te sirva ésta información, soy nuevo en éste foro y seguramente habrá información usable para PICs y programadores en él.