You can program the ESP8266-12E as an Arduino, using the board manager plugin in the Arduino IDE. It’s great for deploying simple code with access to wifi, and at less than $2 (including shipping) it’s really affordable.
Because it’s made by multiple sources in China, and because they don’t seem to talk to each other, you get some inconsistencies between the seemingly identical boards.
Pins 4 and 5 are swapped on some of them, which means you have to account for this in your PCB designs. I2C runs on these pins, and so it’s important you have them the right way around.
The operation of the reset button is also different on different boards. Usually you need to press the reset button on power up to be able to program, but on some boards you need to keep that button pressed until the upload has started.
This makes the ESP8266 a potentially tricky board to use at first, if you don’t know the quirks.