there are many books related to PIC microcontrollers like "The Quintessential PIC Microcontroller", "Programming and Customizing the PIC Microcontroller", "PIC'n up the pace" etc. you can download a number of books from the Ebooks Upload/Download section of edaboard.
i would say that you should go for the PIC16F628A and the PIC16F877A.
"is programming for all PIC µCs the same?"
no and yes. if you program in assembly then the programming for all the 14-bit core PICs are same but for the 16-bit core the programming is different because they have different instruction sets. but if you program in C then it makes no difference at all.
The best book is the " Customising PIC microcontroller by Myke Predko". The programming is more or less the same for all micros of this family. Michrochip website is a great resource for learning since it has a lot of application notes etc
There are three basic groups of PIC µC:
12, 14, & 16 bit wide devices
33/35 instructions for the 12/14 bit wide devices
75/83 instructions for the 16 bit wide devices
Assembly code is upwardly compatible.
The code generated from writing in C may not perform the same on different devices especially on time critical code.
Check this link for a correct description and introduction.
**broken link removed**