Hola amigo.
Antes que nada, la programación requiere mucho sentido común y aplicación de la lógica, para comenzar a programar yo te recomendaría lo básico.
Iniciar a programar desde C++, C , u otro lenguaje idénticos como son visual basic, NET, C#, etc.
Estos conocimientos te ayudarán a poder programar microcontroladores, porque los PIC's se basan precisamente en eso, la base de esos programas están hechas allí.
Ahora que programas hay para prograr Pics, que yo te pueda sugerir.
- Mikro-C [ Es muy básico, y fácil de programar, requiere conocimientos de programación en C]
- MPLAB [Es al igual que mikro-c muy buen programa]
- CCS - [ Este programa lo recomiendo ya que es el que uso, con MikroC]
Cualquiera de esos 3 programas te servirán para programar bien, ahora también puedes programar usando Ensamblador pero es un poquito más difícil así que confórmate con los 3 anteriores.
Ahora mis compañeros te dicen que uses Arduino, desde luego arduino usa un microcontrolador una ATMEGA, esto hace que la comunicación de PC -ARDUINO sea eficaz, rápida y segura.
Te lo recomiendo también, pero es mejor iniciar por un microcontrolador.