El lenguaje dependerá un poco del gusto personal, de la facilidad de aprender, de la facilidad de uso... y de varios factores más.
Yo empecé programando los PIC en asm que es bastante más complicado que C, pero tienes el control de los ciclos de instrucción que consume tu programa y por lo tanto sabrás cuanto tiempo se te consume en hacer algo. El lenguaje C es mucho más fácil de interpretar y se pueden hacer cosas que serían complicadas de una forma sencilla (como el manejo de variables tipo float).
Existe Basic y Pascal para PICs
Para lenguaje C hay distintos compiladores, CCS, XC8 (de microchip, para micros de 8 bits), XC16 (de microchip, para micros de 16 bits), XC32 (de microchip, para micros de 32 bits), MicroC, SDCC (para los PIC 18F).
Los siguientes libros en formato digital los encontré en internet y están bastante bien.
"An introduction to programming PIC in C"
"An introduction to programming PIC in C CCS"
"Compilador C CCS y simulador Proteus para microcontroladores PIC"
"Programming 8 bit PIC microcontroller in C"