Here is a very good e-book if your starting to use the PIC -
**broken link removed**
Also, if you want to start programming with assembly, here is a very good tutorial. **broken link removed**
Personally, I would start learning with assembly rather than a higher level language. I think it helps alot to really learn what's going on with the microcontroller.