I read your original thread on another site. But I can't agree with you in that a system programmer can write quality application code without training/learning and practice. If you just used MFC to generate the code, then modified some bits of the code, it is unmaintainable to the team, hence useless.
System coding and app coding are different, but no one is easier than the other. App coder is easier to start, but tricky to be a guru.
I just read an article to say migrate to Canada is good.
Here is the url
Unfortunately I have no valid visa for Canada. According to a friend in Canada who's working in Microsoft, US, the opportunities in Canada are still far less than that in America inevitably. Presumably US is the best choice for those that like deep technologies.
I read your original thread on another site. But I can't agree with you in that a system programmer ...
I can't say you are wrong. However, one remarkable thing is that coding is just one part of the job platform engineers are doing. I think it's inappropriate to call them a programmer, which would be the prominent difference in my opinion. In most cases, platform/BSP engineers do more analysis over both software and hardware instead of coding. They are able to write code as well, whereas the app programmer can't do their jobs indeed.
境界(十三):
(1) Divide and Conquer,分而治之kernel engineer或者任何engineer唯一需要的工作方法,除了了Brutal Search。但偏偏许多人不会。
(2) The separation of mechanism and policy,机制与策略的分离就是OS的所有形而上学。但就是老师讲不清;学生听不懂;工程师不会用。
境界(结束语):
(1)形而下的最高境界就是“得意忘形”-得其意忘其形。
(2)能down做芯片;就能up做APP。是一个表达逻辑的过程而已。
(3) 人在江湖飘,焉能不带刀。要做tip of the sword,要的是忍受寂寞。钱是个WBD,多点最好;少点也无所谓。
(4) 牛逼的人从来是留下文字,而非铜臭。