I found a trick that makes it a bit easier to program the arduino micro in some situations. If you watch device manager on windows, you might notice that the arduino micro shows up as "arduino micro bootloader COM4" for a few seconds after hitting the reset button, then it disappears and another entry shows up "arduino micro COM5" when the board starts executing the user program. So what I did was, right click the com port -> properties -> port settings -> advanced -> com port number, and changed it from COM5 to COM6. Then, I hit reset on the arduino and super super fast went into the com port settings for the "arduino micro bootloader COM4" and changed it from COM4 to COM6 as well.
This solved a problem for me where I had to select the com port in the arduino menu every time before uploading, or I had to reset the micro at just the right time during upload. Now, the auto reset and upload works perfect every time.
On another note, I personally find the serial monitor in arduino IDE to be annoying. You have to open it and close it between uploads. I recommend using a ttl serial port (a spare arduino uno works well), and just using "Serial1" on the micro for debug printing. You can use any serial monitor program (like Terminal by Bray++) and leave the port open all the time this way.