I spent the first few years of my programming career as a VB.net developer. I worked on the systems side with multi-threaded applications. Over the course of the job I dealt with classes/objects/interfaces/events/cross thread delegates/threads/socket communication. I read about design patterns to structure my code well. I understand that there is an amount of abstraction that lets you achieve what you want to slightly easier, but I assume that this is just the mark of a well designed higher level language.
Since then, I have moved to an open source shop. The database design is a mess, the code base has been sloppy, frameworks have been used without any understanding of their benefits. The day I joined a sys admin asked me what my background was. When I told him I worked at a Windows shop, he asked me "Why did they hire you?"
Today, I received an email about how a company was interested in me, but they would continue their search somewhere else because my prior experience was all VB.net.
As a collective, open source developers seem to look down on Microsoft shop developers. Is there any substance to this?