Error while uploading code : stk500_recv(): programmer is not responding

ieee488:
no driver
or
not a data cable

are the 2 major culprits

This is incorrect.

If it's not a data cable, there will be no port to select. Same with no drivers.

Sync error indicates wrong port or board selected, things connected to the serial pins (which can interfere with upload) or reset pin, or any sort of wiring/bootloader problem (if it's a custom board). It basically means "There's a serial port here, but whatever it's connected to didn't reply to programming commands the way the board you selected should"

In rare cases, strange driver issues can lead to it projecting a non-functional port; this is rare though.