The ESP8266 is like a mini-Arduino with WiFi, and you can find it for as low as $5. Initially it was marketed as a Serial-to-Wifi adapter, but when smart folks figured out it's fully programmable it quickly rose in popularity.
For my projects, I use the $9.95 Adafruit HUZZAH ESP8266 Breakout (or on Amazon), because it comes with a bunch of stuff on the board that makes it easier to work with, AND it's breadboard compatible.
When you receive the board, you'll first need to solder the header strips to the board. Adafruit has a good guide on how to do that.
Next, connect your freshly assembled ESP8266 to you computer via either a console cable or FTDI cable. I used a console cable, where you connect black to ground, red to V+, green to RX, and white to TX.
A quick test to see if the board is functioning (and if your soldering was up to snuff) can be done using a terminal. You can use MobaXterm to open a serial session to the COM port. Once connected, pressing the little reset button on the board will make some text appear in the terminal (with the first line probably gibberish).
Connecting to the ESP8266 using MobaXterm
Next you can set up your Arduino environment. Make sure you have the latest version of the IDE installed. Then go to Preferences and add this to Additional Board Manager URLs:
When you open Boards Manager (at the top of the Boards submenu under Tools), you should now see a new entry for the ESP8266 - select it and click the Install button (bottom right).
Boards Manager in the Arduino IDE
After that's done, restart the Arduino IDE. The Adafruit HUZZAH ESP8266 should now show up as an option under Tools > Board. Select it, as well as the right port (usually "COM" followed by a number).
Now you're ready to start using the ESP8266 in your projects! See the next page for some sample programs.