I wouldn't say you
need to learn Visual Studio, but in my opinion it is the best environment to learn
C++, especially since it is free for students, and the express variant is free to everyone.
Stefan raises the point about cross platform development, and in my experience >90% of code never has to cope with that. That cuts both ways, much Unix code never goes to Windows and vice versa.
Of course some code needs to work in Win32, Win64 and 5 versions of Unix, which can be challenging.
Very little code needs to be "GNU compliant" and only a vanishingly small % of developers can do that anyway.
The fact is that in most development in this domain, your job is to get it to work on the system in front of you. If it works well and soon, you are a good developer, if you delay it, or it runs slowly or crashes because you refuse to use a feature that is not "portable", your popularity will decline quickly.
Here's an example of how blind patriotism for O/S helped cause a guy to not get forwarded for a good job.
We were discussing s/w dev, and I mentioned how Windows memory management was more sophisticated than Linux. He disagreed vehemently.
That's an acceptable response, what was not acceptable was his answer to my question "in what way is Linux memory handling better ?"
He had no answer at all. Big points loss there.
If he'd have mentioned an ability to finely control which pages are most likely to be written to disk or issues with fragmentation we could have had a good discussion, but it was not to be.
I see too much of this sort of thing, especially from open source people. The difference between opinion and prejudice is evidence, and "this part of Windows I used 10 years ago and wasn't as good as the thing I have now" isn't evidence.
I'm not blind to the defects in Windows, indeed I doubt any here could cite as many as me, especially since IBM paid me a pile of money to enumerate issues in MS code.