FPGAs are programmable digital logic chips/circuits. This means that they can be programmed to perform almost any digital function. You use a computer to describe a "logic function" that you want. You can even draw a diagram or create a text file describing the function, whatever. You compile the "logic function" on the computer, using software provided by the FPGA seller. This creates a binary file that can be downloaded to the FPGA. A cable is connected from the computer to the FPGA, and the binary file is downloaded to the FPGA. To put this in context with the hardware : You can download FPGA code as many times as you like - without limit - with different functionality each time you like. If one makes a mistake in the design, just fix the "logic function", recompile and re-download. There is no PCBs, soldering or components to change.
Designs can be executed much faster than designing a board with discrete components, since everything works inside the FPGA, on its silicon chip. FPGAs lose their functionality when the power goes out (like RAM in a computer losing its contents). They must then be recharged when the power returns to restore their functionality. However, newer FPGAs are equipped with flash memory to save the program. The FPGA market is smaller than the microcontroller market, but it is still growing. The main manufacturers are : Intel, Xilinx, Altera, Lattice semiconductor...
All has been writen with a MachXO3-9400 Development Board