There is a lot of posts about this module, but many of them hard to understand.
Good tutorial(s):
http://www.instructables.com/id/ESP8266-Wifi-Temperature-Logger/?ALLSTEPS
My way:
Requirements: Just work, show something, connect or anything else.
Okay first step, to know wiring.
I used FTDI212 to use this module.
Wiring:
(FTDI212)->(ESP8266)
3.3v ->VCC
GND->GND
3.3v->CH_PD
RX->UTXD
TX->URXD
It will work. With Arduino’s serial monitor, you can send/receive commands.
Set it with correct COM port, and 9600baud and “Both NL & CR”.
You can find some commands on this page:
http://www.electrodragon.com/w/ESP8266
“Join router” section worked for me.

Yes, you can use esp-link running on one esp8266 module to flash another esp8266 module, however it is rather tricky! The problem is not electric, it is wifi interference. The basic idea is to use some method to direct the esp8266 flash program to port 2323 of esp-link. Using port 2323 with the appropriate wiring will cause the esp8266’s reset and gpio0 pins to be toggled such that the chip enters the flash programming mode.