FWIW I'm not exclusively a .NET programmer and I've had similar experiences on Java and Python. (Sometimes more painful, sometimes less. I think .NET's usually pretty middle-of-the-road on this sort of thing.) My wake-up moment just happens to have happened while I was working on a .NET project.