Hi there,
Yes, from what you have explained that about right.
1) Write you code.
2) Assemble you code.
3) Program you PIC using the .HEX file your assembler create using you desired PIC programmer & Supported Software.
As far as different PIC's are concerned there are so many on the market these days will all sorts of different features. It's all depending on what you want to do with them.
Using more than one PIC for a project isn't the best way of doing things as you will probably find that there would be a PIC on the market that would be better suited for what you're doing.
Communicating between two PIC's also depends on what your application requires. There are many different ways,
E.g. SPI, Parallel Slave Port ect, ect.
As for a good device to start withb there are a number of devices here are a few,
16F88, 16F627, 16F628, 16F877 ect ect
If you want to be a bit more daring you can also try the 18F series which I have found are easier to use in some ways.
It's also depends on what programming background you have if you have a C programming background then PIC C programming may be better suited to you.
Hope this helps
Regards
Pete