1) I guess you're nearly 30 years old. At that age, you should not consider career only. When you work on a long term plan, that should be your family's plan.
2) If you're already applying for immigration to Canada, you should also consider how to find a job in Canada and how to survive there. Canada may be a better place to work/live than Singapore.
3) If you want to find a job in Singapore. It helps to understand the situation of job market there. If you can find friends already there, it can help a lot.
4) If you want to work in companies like Microsoft and Google, C# is not enough. Be an expert in C++ at the same time. Also note that programming language is only a small part, generic programming skill is more important.
5) There are also lots of other skills to learn to be successful outside of China: English (both oral and written communication), general communication skill, driving, money management, basic understanding of western culture.
6) Pick a domain or two to be expert in.