本文共 3502 字,大约阅读时间需要 11 分钟。
本文讲述一个Windows Mobile, Windows Embedded CE工程师在海外找工经验。
之前写了两篇关于Windows Mobile, Windows Embedded CE工程师的找工经历,得到了一些反馈,其中有些朋友认为Windows Mobile, Windows Embedded CE不好找,影响了正在从事或者打算从事Windows Mobile和Windows Embedded CE相关工作的朋友的信心。
我在此简单说明一下我的个人背景和找工市场的背景,作为参考。本人国内硕士毕业,开始从事了两三年事金融交易中间件开发,然后从事电信核心交换网网管系统开发4年多,两年前到墨尔本从事Windows Mobile和Windows Embedded CE的开发工作。我找工作的范围是在大墨尔本市里面,主要寻找Windows Mobile和Windows Embedded CE相关的开发工作,由于澳洲的IT以商业应用为主,对于消费者市场的应用极为稀少,特别是嵌入式相关的应用和国内的需求相比不能同日而语,所以增大了找工作的困难。从去年年底开始到现在,市场上出现过Windows Mobile和Windows Embedded CE相关工作大概就5,6份,而且有部分是junior的工作。尽管那样,我对Windows Mobile和Windows Embedded CE还是很有信心,这也是我一直坚持寻找Windows Mobile和Windows Embedded CE工作的原因。如果阅读文章的您还在国内,已经从事或者打算从事Windows Mobile和Windows Embedded CE相关工作,那没必要担心其前途,由于国内制造业发达,与制造业紧密关系的硬件和嵌入式的开发工作需求会越来越大。有越来越多的公司开始在国内慢慢从OEM到ODM,提供越来越多的机遇。
关于前文,请参考 和
现在这份工作,从我投简历到得到Offer,经历了两个多月,进行了三次面试,每次面试相隔差不多2个星期。这里的公司办事效率真得不敢恭维。随便一件事情就是几个月的时间。我在上篇讲述的那个雇主面试,从他告诉我拿推荐人信息和准备出Offer的时候开始,过了两个月才告诉我招聘进程给挂起了,要到半年后才联系我,到时候才确认我是否还有兴趣加入他们公司。另外一个做移动GIS公司的职位,在我投了简历两个月以后才通知问我是否有兴趣去面试,这是一个不错的公司,是Google的竞争对手,产品也很多人使用。因为我一个以前的同事在这公司里面干,经常和我汇报他老板的信息,一会说他老板去了美国出席展会,过了Easter才开始找人面试,一会说他老板回来,但是没有开始面试过程。他甚至把我找到工作的消息也告诉了他老板了,所以他老板直接就问我是否indeed有兴趣,我还是委婉拒绝了。
总共有三次面试,第一,二次都是技术面试,每次大概2个多小时,问的问题很广泛,也很细,一些问题如下:
进程和线程区别和联系。
DLL和EXE的区别和联系。
C#的抽象类和接口的区别。
C++和C#的抽象类的写法,直接到黑板上写出代码。
C++和C#的继承的写法,直接到黑板上写出代码。
C++和C#多线程的同步和通信,直接到黑板上写出代码。
C# == 和equal的区别。
C# new 和override的区别。
一些C#的接口的功能作用。
进程通信的方法,包括Windows Message Queue, MSMQ和共享内存。
Windows Embedded CE 5和6内存结构的区别。
工作上用过的设计模式,直接画出UML图。
源码管理软件和源码管理流程。
项目管理流程和项目管理系统。
文档管理系统和文档的类型与结构。
很多很多的问题,有些我也忘记了,我后来也把其中一部分问题总结出来,写成blog。可以参考:
经验总结
我觉得应聘.NET相关的工程师职位,复习和掌握.NET的基础知识很重要,有些人认为C++工程师比C#工程师更加值钱,因为C++难度更大。这说法有一部分是对的,从学习角度来说,如果一个没有任何经验的工程师,学习并使用一个语言并进行实际项目开发,C#会比C++快很多很多,因为使用C#可以不用管内存那些细节问题,加上Visual Studio可见即可得的编程模式,编写C#比C++效率高不少。但是如果一个新手C++程序员不懂内存那些,程序运行起来就会Crash了。可是这并不代表写C++的人比写C#厉害。其实这与语言无关,还是和编写代码的工程师有关。我认为编写C#或者说.NET Framework代码,还是有很多基础和细节需要注意的,如果不注意细节,使用C#编写的代码可能还可以运行。但是主要学习和注意哪些细节,可以写出高质量的C#代码。一个编写高质量C#代码的工程师与一个编写高质量C++代码的工程师的价值是一样的。从这些面试过程我体会到学习和掌握那些基础知识的重要性。幸运的是我在去年考过一个Windows Mobile相关的微软认证,同时还阅读了MSDN的C# reference,学习了一些工作上不怎么注意的基础和细节,所以才可以在面试中回答他们很多细节问题,如果想在C#这方面发展,学习和考取认证是个不错的选择。我去年考的认证叫做 。有机会我还想继续考 认证和 认证。
经过了两轮的面试,从中介得到的反馈,那边面试我的Team Lead觉得和我技术很不错,他一直帮我和他的老板沟通,希望尽快让我加入到团队中去。我也十分感谢他,他人非常的好,技术也好,我走的时候还专门送我到楼下,我想以后大家合作会非常愉快。这里有个小插曲,在第二轮面试结束的时候,我直接问他还有几个人要面,他说第二轮一共有五个人,我是第三个,我那时候就觉得完了,市场真tmd的差,一个位几十个人争,到第二轮还有那么五个人,我把我的担忧直接告诉了中介,中介情不自禁的跟我说了一句damn。估计其他candidates不是他的人,他立刻就帮我猛向公司push。
之后中介帮我争取了第三轮面试,面试的是公司的CEO和市场部经理。严格来说,第三轮面试是我去了解公司,并决定这个公司是否符合我发展,但是由于面试的不是技术人员,对于我来说还是比较紧张,可以说是这么多轮面试中最紧张的一次,主要原因是我的英语不是很好,不能很容易和别人拉家常。
公司的CEO说自己是做硬件出生的,不懂软件,所以不能问我软件问题,让我介绍自己,然后他也介绍公司的发展。接着他问了一个相对比较奇怪的问题,和我做技术无关。他说现在印度和中国虽然工程师水平不怎样,但是越来越多工作外包给印度和中国,他说他一个朋友常年住在台湾,专门接活然后外包到台湾或者大陆去做。在这样的情况下,你觉得本地的开发公司在嵌入式方面有什么优势呢?我说首先,印度的情况我不了解,中国确实有越来越多工作机会,但是中国的工程师都不差,我们用的Windows Embedded CE 6 R3就是中国工程师做的。由于本地市场消费者市场不大,公司参与本地的项目开发机会比可能较大,如果做消费者产品,和中国比没有大优势,缺乏人力成本优势和制造生产的优势。反正答的不好,屁股决定脑袋,我不做这个,也不知道怎么回答。
然后那个市场经理又进来,直接和我说他不懂技术,只是想相互了解下,我又重新介绍了自己,他又重新介绍公司。问了很多Soft skill的问题,例如你的职业发展之类的,然后Team Lead带我介绍给公司的人认识了。介绍各个部门,项目进展情况,办公座位,休息室,BBQ等等。然后回到Boardroom就直接和我说会向中介发出Offer。Thanks God,剩下就是等Offer letter了。然后我还和那个Team Lead聊了很久有个项目和系统结构的问题,直到6点钟,大家都想回家就散了。
经验总结
准备一写Soft skill的问题也很重要,例如介绍自己,平常喜欢做什么等等。因为有时候面试面对是不懂技术的管理者,他们比较喜欢问Soft skill的问题。
写完结了。为中国地址灾区的人们祈福,希望天灾不再降临,制造人祸者早点混蛋。
本文转自Jake Lin博客园博客,原文链接:http://www.cnblogs.com/procoder/archive/2010/04/21/Windows-Embedded-CE-Job-Seeking-3.html,如需转载请自行联系原作者