I'm a great fan of the ESP8266. It's a great little Arduino chip with WiFi built in. I'm only using the ESP-01 at the moment with just two GPIO ports, but that's enough for a temperature sensor using MQTT to ping data back over the network.
To programme the ESP8266 I used my Arduino Uno (which is not recommended as the ESP is only suited to 3.3v, not 5v).
To programme it connect the following lines:
vcc --> 3.3v
vcc --> CH_PD
gnd --> gnd
gnd --> GPIO0
tx --> tx
rx --> rx