Your worth as an engineer, over time, will be measured by breadth, not depth. I know engineers that have be come industry-class experts on font rendering or compiler optimization. You know what happens? It's tough for them to switch jobs.
For the most part this industry, at the most successful end, values rock solid fundamentals and versatility.
Your co-worker's path is dangerous. Replace "Microsoft" with "COBOL" or "Fortran" or "Mainframe" and you'll see that this is a problem.
At this stage of your career, you should be focused on learning how _software works_, not a particular stack. Stacks come and go, rapidly. Technology changes. But software and how it works doesn't change all that much.
So pick the right tool for the job and build your skills portfolio. Write some iOS apps. Write some browser-apps backed by Node, or Go. Write some client apps, build some APIs.
I will say, however, that if you are interested in startup stuff I'd recommend against the MS stack. My company is partly on MS, partly not, and the licensing issues with Windows become painful very quickly just for flexibility. Windows licensing and things like Vagrant don't get along very well if you want to have N flavors of a VM and use them at will. There are other reasons here but I'll tell you that Linux machines are just a lot easier to manage in general, and I'm historically a Windows guy (I worked at Microsoft for a _long_ time).
You're still in that stage where you don't know what you don't know. You're not choosing a wife or a house here, just go play the stack field.