Pros
I very rarely come across people I can't work with at Microsoft. Clearly, the hiring process is fairly thorough. I'm surrounded not only by highly intelligent people I can constantly learn from, but also by those with strong interpersonal skills as well. The educational opportunities alone are an amazing benefit just asking to be taken advantage of. Classes, books, journals, and mentorships with anyone in any org are just waiting for you to find them. Having just graduated, I'm used to getting in to campus at 8am and getting kicked out at 2am by the janitor. Here, I get griped at for even thinking of staying beyond 7pm. Everyone senior to me always has my back and is willing to give a hand in learning about Microsoft culture, growing as a programmer, general life skills, and how not to kill yourself.
Cons
In general things seem to move slowly. This is from the top all the way to the bottom. This is most likely due to and unsolvable by Microsoft having more than 90K employees. Further, there are many more planning and vision meetings than necessary to nail down a focus or a feature. This is true at the team, project, and org levels. Planning and verification are absolutely necessary, but not to the extent of obnoxiously slow development and response to bugs. In my opinion, there's too much "kool-aid" in the company. I understand people are passionate about our products and what we do, but there's a hypocrisy in teaching "avoid 'Not Invented Here' syndrome" while simultaneously challenging competitor products on purely emotional instead factual grounds. I also feel there's a significant level of hero worship which detracts from seeing superiors as actual coworkers and not as demigods among mortals.