Firstly I'd like to apologize if the forum is wrong but I can't find the forum for my topic.
I'm a software engineering student from Turkey and I'm trying to lead my career as best I could.
A software engineer should have knowledge of any technology, C, C++, Java, C#, Linux, Windows etc. But a human can't be a real professional at all of them. They are technology oceans continuously grow...
For a software engineering student who wants to work firstly in Australia or Canada, after if they can't happen Usa or Europe what would you suggest, trying to be a professional on Microsoft solutions like C#, .NET, Silverlight, SQL Server etc or trying to be a professional on open source solutions like Linux, Java, MySQL etc...
For example in Turkey C# is more widely used than Java. Corporates prefer Microsoft solutions. What about the countries I've listed above..?
What would you suggest, what would be your opinion?
Also please consider this question in a long time period like 2-3 years, not just for now because everything changes rapidly in software technologies. (I've written this because Microsoft is in a attack of developing new and good technologies.)