Embedded systems designing has become much easier to learn with the availability of free high-level compilers. If you are new with microcontrollers and want to learn PIC programming, you should visit these learning-by-doing PIC experiments. These are designed to teach you the underlying electronics of PIC microcontrollers and how to interface LEDs, switches, LCDs, and various other sensors to them. The author writes program in C and compile with the mikroC compiler.
Experimenting with PIC Micro – [Link]