For some reason, many people try to use PICs which are 20-year old. This is really really bad idea.
Because they still sell then and they are cheaper maybe?
Hobbyists get stuck using processors specified in the projects published in books and magazines, back when those were "current" processors (and pretty much all that was available.) (You can occasionally find people trying to find PIC16C84 processors, not even realizing that the PIC12F84 is pin and code compatible.)
If you're used to AVR assembly language then be prepared for a shock.
Yeah, I was going to say that.
The 8bit bit PIC processors are essentially "Accumulator/Memory" architecture. That means that most "normal" math operations require that you move one operand into the "Work register" ("W"), do an operation between W and a memory location, and move the result back to memory. Then you add the fact that the "memory" you can access on those instructions can only be accessed in relatively small "banks", and accessing more memory means doing some sort of bank switching. Oh, and code memory is banked as well. And no stack.
On the bright side, a bunch of "less normal" operations that are useful in many embedded scenarios can operate directly on "memory", and the peripherals are memory-mapped. So you can set and clear bits in peripherals (like IO pins) with a single instruction, without going through W. (if the right bank is selected.)
So it's sort-of opposite to an ARM. On an ARM, you can do lots of math directly between registers, and you have lots of registers. But setting a port PIN is going to take at least three ARM instructions and probably an additional 32bits of program memory space. On the PIC, the math will involve a lot more moving of operands into and out of the W register, but you can set those port pins in one instruction (as long as pin and port are constants.)
Also beware that CPUs vary somewhat significantly. Size of memory banks and "call stack", "base", "midrange", "enhanced midrange" instruction sets, etc. PIC18 is more obviously enhanced (and I think more consistent.)
PIC24/PIC30/PIC33 and PIC32 are completely different architectures, and so would need to be discussed separately.