What you are seeing is typically caused by a mismatch between the IDE and the Arduino communication speed (baud). When programming the baud is changed during which information is sent back to the lDE. When finished the IDE switches to your programed baud. If you switch tailing messages from the upload will appear in you code. I always add a delay(3000) at the beginning of setup. I still get a short burst of ???? but after that it is ok.
In all sketches I include a brief delay to minimise/eliminate initial spurious output. Haven't used it with a NodeMCU ESP8266 v3 board but maybe worth a try?
Did you restart the Arduino IDE after installing the board?
Are you using the correct drivers for your board?
After connecting the ESP8266 board to your computer, if the COM port in Arduino IDE is grayed out, it means you don’t have the required USB drivers installed on your computer.
Most ESP8266 boards either use the CP2101 or CH340 drivers. Check the USB to UART converter on your board, and install the corresponding drivers.