继续码然后睡觉。。。
======================
关于简历补充两点,一是简历上技能方面请尽量避免诸如熟练使用office word, excel之类的(这个还有人不熟练使用么?), 其他的一些编程相关的软件,IDE比如VS, Eclipse, version contro的比如Mercurial, Git, CVS, SVN基本也没啥用,这是程序员需要懂得最基本的东西, 另外一个关于哪些懂得语言需要列上去,并不是越多越好,而且最好标出水平程度,不要把所有知道一些皮毛的,C, C++, JAVA, .NET, PYTHON, PHP, JS都列上去,万一被问到一个你不怎么熟悉的就歇菜了。
好了,说完简历开始说说电话面试。不同公司电话面试形式不同,有的公司电话面试是非技术的,比如HR啊或者manager面,基本不涉及技术层面,这里不提。只说说技术面试。
根据应聘者的工作经验多少不同,面的东西也不同,一般来说如果工作经验超过两年,俺会对应聘者做过的项目来问,用到的技术啊,他/她在项目中担当过的角色呀,碰到哪些难题他/她是怎么解决的之类的,嵌入式方面一般会问到项目中RTOS/Kernel是in-house built的还是open source, 项目中用到多少tasks, 如何实现的semaphores, 有哪些主要的Interrupts, interrupt latency大概是多少,是怎样解决latency的问题的。对有经验者一般不会问C的问题。
下面主要说说RCG的电话面试,和有经验应聘者的面试类似,开场一般也都是先问问简历上的东西,拉拉家常扯扯蛋,学校里做了哪些项目,career计划之类的,然后会介绍下这个职位的要求以及日常任务(WOW, 哈哈),毕竟选择是双向的嘛,我就碰到一个Purdue的牛女打击了我一次,还没开始面技术呢,刚介绍完职位,她就说,我对嵌入式不感兴趣,我希望去的公司是FB和TWITTER做social media,靠,也不知道这个简历HR是怎么弄过来的。。。
电话面试一般一个小时,扯个半个小时开始面技术问题,对RCG,主要问C和embedded的一些很基础的问题,也许你任何一般教科书上都能找到答案,但你一定要对C有比较深的理解和一定的编程经验才会回答到点子上,说说俺偶尔问的问题:
C相关的:
1. 什么时候需要用到keyword static?
2. keyword const是什么意思,我们为什么需要用到它?
3. Macro和function相比有哪些优点,举个例子你为什么会用到它。
4. 指针的问题一定会问,比如指针是如何初始化的?const char * p和char const * p有何区别?
5. 什么时候需要不能用type cast?
Embedded相关的:
1. 我们什么时候需要用到volatile变量?一个变量可不可以定义为const volatile?
2. 什么是hardware interrupt和interrupt latency? 引申问题为如何降低interrupt latency?
3. 什么是FIQ和IRQ,他们有什么区别?如果这个问题回答出来,可以接着引申ISR和普通的C function有什么区别?
4. 什么是ROTS, RTOS中的scheduling如何实现?如何实现semaphore? Virtual memory和kenerl paging是什么意思?
学C和嵌入式的同学请对号入座,看看如果你不查书,不上网查大概能回答出来多少?一般来说不要求回答的很正确,但通过问答至少可以知道应聘者对C和嵌入式的理解程度。
所以劝童鞋们学习的时候不要囫囵吞枣,一定要把基础打牢吃透.