Spend some weekends reading up on feature detection[0] and documented "bugs" (read: expected behavior) on MSDN. The time I've spent on both has transformed my perspective as a developer.
We really don't work hard enough because we decry the DOM and blame Microsoft for problems research can and will solve.
[0]: http://peter.michaux.ca/articles/feature-detection-state-of-...