This message was posted on behalf of Intel Corporation
Thanks for your interest in the Intel® Edison Platform.
The USB port (J16) is used for programming the board using the Arduino IDE, uploading the firmware, and powering the board (5v), moreover, the USB port (J3) is used to create a terminal connection by serial over USB. Additionally, you can power your board using the following methods: with an external DC power supply (recommended) plugged in the barrel connector (J1), using this method is not necessary plugged the USB (J16); the other method is power the board through the middle USB port (J16), in this method you have to plug both USB ports in order to work with the Linux console. Here you will find more details: Connectors on the Intel® Edison board.
Regarding your other question, there are two approaches to write C/C++ code: using the Intel System Stidion IoT Edition (Eclipse), you will need to set a password to your Edison and connect it to WiFi because the Intel System Studio uses SSH to communicate with the board. Please take a look at this link for more details: Intel® System Studio IoT Edition User Guide for C/C++. The other way is through the console, you will have to copy the .cpp file and then use the GCC command in order to compile your code.
Hope you find this information helpful.