This is a really good "getting started" article. But I would add a couple more pointers for anyone out there who is interested in getting started with FPGA programming. First, it is not programming. It really is hardware description. I did a lot of the things they said in the article but the thing that helped me the most was first, getting a board (I started with the Terasic DE0 but there are a lot of good cheap ones out there, you don't need to spend a lot of money). I started out using the Altera Quartus II development software because it has a facility in it that allows you to draw a schematic diagram of standard gates and flip flops and it will then generate the equivalent HDL code. What that did for me is "learn by example" and helped me bridge the gap from real hardware to the Hardware Description Language.
I started with a Digilent Basys2[0], it could be a slightly cheaper alternative to the Terasic DE0. It uses a Xilinx chip, has a free design/development software called ISE Webpack, which also has schematic diagram support.
Unfortunately, it still relies on the same Xilinx ISE (webpack is sufficient), so, it's not possible to cook bitfiles on the Pi itself. But the board itself is nice, easily programmable via SPI, has a decent Spartan6 LX9.