Have a good understanding of the PIC architecture in general and then of the specific PIC you are using (i.e., read the data sheet and errata thoroughly).
Have a deep understanding of how to use the C language on the (rather constrained) PIC architecture.