How to prevent breaking my Arduino by mistake?
Not best practices, but an alternative approach: 

Consider the Ruggeduino instead of a standard Arduino. At a price ($39.95) comparable with the equivalent Arduino, the Ruggeduino offers:


Resettable fuse on each GPIO pin, i.e. all GPIO pins are protected from short-circuit to ground or other pins
All GPIO pins withstand 24 Volts
Reverse voltage protection (-30 V) on Vin
Microcontroller overcurrent protection
3.3V and 5V outputs on the board are over-current and short-circuit protected


Besides the above points specific to the question, the boards are designed to survive harsh environments and various mistakes. Also, the clock is more precise than on the Arduino.