GPIO15 should always be low at boot up for flashing or running. This can be done by pulling down to gnd with 4.7K resistor or less. Can be shorted to ground but then never put it into an output mode, so safer to use a resistor.
GPIO2 should be high at boot up time for flashing or running. Can be left open circuit as it has a weak pull up, but recommended to use an external pull up (e.g. 10K), although I find it works ok.
GPIO0 should be low during reset for the chip to enter flashing mode or high for normal running. So to flash pull it low, reset, then release it. The chip will stay in programming mode until either it has been programmed or you reset the module again. Like GPIO1 it has a weak pull up and recommended to use external pull up.You can pull it down with a jumper or switch to get it into flash mode but then release it before starting the download.