Things you wish you'd learned about programming in college?
teeja: Make up (or find) as much gnarly, twisted data as needed to throw at your code to convince yourself that it will respond gracefully no matter what comes along. (Then if you can, get someone else to.) If it can't - or you can't test all conceivable ways it can fail -  then you need to either rethink your design or switch languages.