There are 2 classes of Microsoft developers out there. Those that started programming before VB became prominent in the development world for quickly and easily developing Windows applications, and those who started programming with Visual Basic as their first and mostly primary language. More concisely I'd say, those who know OOP and those who don't.
Theses divisions definitely exist at work. There's what I call the "IT Crowd" - people who learned to program with VB, and did little beyond it. Most of them don't have a formal CS background. They've learned on VB, so they're great with VB quirks, better than I'll ever be. Some probably know COM better than I ever will. But as Andrew points out, all too often this crowd lacks the fundamental skills and understanding. OOP is just the start of it.
What irks me more is that in my experiences not only do they not have these fundamentals, but they don't even care, or at least don't make an effort, to learn them. Personally, I always want to understand how the system works, at least from a high level. If I don't, how can I make good architectural decisions?
Maybe they're just used to the magic hand-waving of Visual Basic.
(And whatever it is, after working with people on both sides of the fence, I certainly wouldn't be heartbroken if many in the latter crowd stopped programming... :)
It's kind of like natural selection for programmers... throw new technology out there, and see who can keep up. If you don't have the fundamentals, you're probably not going to be able to keep up.
