面试的流程
电话面试
应聘者在投出简历之后的一两个星期,要保证手机电池至少连续通话一小时。另外应聘者不要长时间待在很嘈杂的地方。如果应聘者身在闹市的时候突然接到电话,那么双方就有可能因为听不清对方而倍感尴尬
如果应聘者在面试的时候没有听清面试官的问题,则千万不要不懂装懂,答非所问,这是面试大忌。当不确定面试官的问题的时候,应聘者一定要大胆地向面试官多提问,直到弄清楚面试官的意图为止
共享桌面远程面试
共享桌面远程面试是指利用一些共享桌面的软件讲自己电脑桌面共享给远程面试官。
这种形式面试,面试官最关心的是应聘者的编程习惯以及调试能力。通常面试官会认可应聘者一下几个编程习惯
- 思考清楚再编码。应聘者应该先想清楚解决问题的思路,如算法的空间、时间复杂度各是什么,有哪些特殊情况需要处理等,然后再动手编写代码
- 良好的代码命令和缩进对齐习惯。一目了然的变量和函数名,加以合理的缩进和括号对齐,会让面试官觉得应聘者有参与大型项目的开发经验。
- 能够进行单元测试。如果应聘者先写出单元测试用例,再写解决问题的方法,面试官会对你刮目相看,因为能做到测试在前,开发在后的程序员实在太稀缺了。
现场面试
- 规划好路线并估算出行时间。如果面试迟到,那至少印象分会大打折扣
- 准备好得体的衣服。一般舒服干净的衣服就行
- 注意面试邀请函里的面试流程。
- 准备几个问题。面试官一般会让应聘者问几个问题,可以提前准备。
面试的三个环环节
行为面试环节
不少面试官会让应聘者做一个简短的自我介绍,30秒到1分钟的时间介绍自己的主要学习,工作经历即可。
1. 应聘者的项目经验
应聘者自我介绍之后,面试官会对照简历去详细了解他感兴趣的项目。应聘者在准备简历的时候,建议用STAP模型描述自己经历过的每一个项目。
- 简短的项目背景。比如项目的规模,开发软件的功能,目标用户等。
- 自己完成的任务。这个要写详细,要让面试官对自己的工作一目了然。
- 为了完成任务自己做了哪些工作,是怎么做的。这里可以详细介绍。做系统设计的,可以介绍系统架构的特点,做软件开发的,可以写基于什么工具那个平台下用了哪些技术,做软件测试的可以写自动化测试还是白盒、黑盒。
- 自己的贡献。这方面信息可以写的具体些,最好能用数字加以说明。如果是参与功能开发,就可以写按时完成了多少功能。如果是做优化,则可以说性能提高的百分比是多少。如果是维护,则可以说修改了多少个bug。
如果应聘者在简历中上述四类信息还不够清晰,则面试官可能还会追问相关的问题。除此之外针对项目经验最常见的问题包括如下几个方面。
- 你在该项目中碰到的最大的问题是什么,你是怎么解决的?
- 从这个项目中你学到了什么?
- 什么时候会和其他团队成员有什么冲突,你们是怎么解决冲突的?
2. 应聘者掌握的技能
描述技能掌握程度时也要注意“了解”、“熟悉”和“精通”的区别
“了解”,指对某项技术只是上过课或者看过书,但没有做过实际的项目。
"熟悉",在实际项目中使用某项技术已经有较长时间。
“精通”,能够轻松回答这个领域里的绝大多数问题。
3. 回答什么跳槽
应聘者尽量避免以下四个原因:
- 老板太苛刻。如果面试官就是当前招聘职位的老板,那么当他听你抱怨现在老板太苛刻,那么就会觉得接下来你也会抱怨他。
- 同事太难相处。如果应聘者说他周围有很多很难相处的同时,则面试官很有可能觉得这个人本身就很难相处。
- 加班太频繁。这个懂的都懂
- 工资太低。虽然现在大部分人跳槽是因为这个,但是不建议在面试的时候对面试官抱怨。面试的目的是拿到offer,要尽量留下好印象。面试不是谈工资的时候,等技术面试完之后谈offer时在跟HR谈工资也不迟。通过面试之后我们就掌握了主动权,这时候谈工资更有优势。
技术面试环节
面试小提示
面试官出来希望应聘者的代码能够完成基本的功能,还会关注应聘者是否考虑了边界条件,特殊输入(入null指针)及错误处理
docker