Strong Types
My previous programming experience (PHP, TCL, Java, C, C++) had made me believe that Types were evil, they were there just to add more characters to be typed without any real value. The errors in all these languages (not C and C++ that done have GC, tend to have much more bugs and more complicated to find out) tend to be in places where the type system didnt help anything.
And then i learned Haskell: now i believe strong typing is FANTASTIC as long as you have a good type system! Actually i wish Haskell had even more typing facilities (there is ongoing research on that) as they help so much you to get the right code for the problem...
Even if i dont stick to Haskell (maybe there is another language with a even stronger type system?), it certainly has taught me a lot of things, a mind expanding experience...