The list can be long...
Incorrect pin numbering, using PIN number instead of result of digitalRead() when checking a pin, mismatched power supply levels, uninitialized variables or wrong type (unsigned long for time), missing break statements in switch cases or having local variables in a case without a compound statement, blocking code in loop and upsetting the watchdog, incorrect baud rate settings for serial communication, using floating pins without pull-up or pull-down resistors, forgetting to declare volatile variables in interrupts, exceeding memory limits causing crashes or unpredictable behavior, ...