As to your question about what an FPGA is, I think the best way to think of it if you are already familiar with microcontrollers (and their normal programming scheme with sequential ordering of processing) is to think of a microcontroller as being told what to "do" and FPGAs as being told what to "be."
I think this is the simplest way to view it :P
FPGAs are programmed differently. You need to have a full knowledge of the circuit which you want to design, the inputs, outputs, and you will need to spend a lot of time considering the clocking, as clock skew and other issues can easily arise when dealing with more complex circuits in FPGAs!
I learned about FPGAs first using a Spartan3E. Have fun! :)