With the FT232RL FTDI USB To TTL Serial Converter Adapter Module For Arduino (link below), you can program an ESP8266-01 module as fluidly as you can a standard Arduino. No need anymore to initiate two resets for each programming cycle.
Here is the Serial Adapter: https://www.amazon.com/gp/product/B07BMNB6CM/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1
And you will need this for the ESP8266: https://www.amazon.com/Gikfun-2-54mm-Female-Straight-Connector/dp/B01IHBCO2K/ref=sr_1_1?keywords=4x2+header&qid=1571127167&sr=8-1
Pretty much any N-channel MOSFET will work, but the origial design calls for a IRF540, although I am using a 20N06L and it works perfectly.
The 100µF capacitor is necessary for proper timing with bringing the RST and GPIO0 pins low then high in the right sequence, but once you use this circuit, you can program an ESP8266 just as you can with any Arduino, leaving the serial port connected and the Arduino IDE will connect the serial monitor once the program has uploaded it and it will reset the device properly before the program uploads and after it is done.
On the home etched board, you will need to solder two jumpers indicated by A and B.
Set the Serial adapter to the 5 volt setting. The only pin on the ESP that is sensitive to 3 volts is the VCC pin.
This project was inspired by RuiMonteiro's Instructable, which you can find here: