Learn/use a language with those concepts, and then you can port your skills to the next 'latest, greatest' language-du-jour.
I've been working in Java full time for over 8 years now. Because of my abilities with OO and the 3-tiered world, I've actually been offered .NET architecture jobs several times. And when something better than Java comes along I'll have skills that will still be marketable (from my experience, I do *not* believe that .net fits in this catagory, but YMMV).