身为技术人,谁没有参加过几场面试呢?作为资深技术人,面试别人和被别人面试的次数都不少。这里来说说技术面试那些事。
1,简历:今天的简历已经同质化严重,从简历中看面试工程师的似乎都是技术大拿,知识渊博,熟悉多种语言,使用过很多流行框架,对主流组件(服务器端lamp及nosql、异步队列,前端jq、extjs、sass等,移动端对ui网络存储等)都有使用经验,拥有多个成功上线项目经验丰富。单看简历,你会以为个个都是高级程序员甚至架构师。如何筛选简历?如果没有详细项目介绍,只能从所在公司、项目名气或规模、甚至学历来筛选了。(知道如何让简历这一关脱颖而出了吧)。另外,美女贴上照片可能会有一点小优势,尤其在男女比例悬殊的团队。帅哥?也有用。我就接到过从女性hr那转过来的简历一看履历没啥特别,hr说:是个大帅哥,面面看吧。于是始知这位hr有颗90后少女心。
2,面试题
不同岗位例如服务器和移动端的面试题自然不同。同一岗位不同层级例如ios开发的普通、高级工程师、架构师理想情况是有不同面试题。现实中,多数企业常常是一套试题覆盖多个范围,看你答的层次。这当然有不科学处。然而现实中常常如此,所以很多时候面试题中一部分未答好也未必就面试失败了。
面试题应该包含哪些内容很有技术含量。一般来说:文件处理、网络请求、数据类型、内存概念、面向对象、进程线程都是语言相关基本功。移动app还会有ui以及界面与其它界面或服务交互也是常见问题。
数据结构算法方面则往往涉及案例,例如如何在几百万或千万或亿的内容中查找或修改,时间复杂度如何。
架构方面也有问一些开源框架的相关问题(用过没有,为什么用或不用,优点缺点)。此外一般涉及的是存储、并发、性能、安全几个方面。我自己最常问的则是如何从架构上优化一个已有系统(服务器、iOS、android、前端)、或者发现系统瓶颈,然后根据回答进入其中一个或几个主题,例如移动端如何优化tableview如何合理使用gcd和nsoperationqueue或delegate与kvo等,服务器端则了解如何对mysql和redis优化。当然也会想办法识别这是对方实践过、还是仅仅碰巧看过相关文章。
团队合作则会了解工作流程相关包括工具及其效果,以及认为是否有更好的。
3,面试过程。
除笔试,一般更重要是面谈。只要面试官专业细心点,真实专业能力还是比较容易面试出来的。
很多公司看重的一些软素质包括是否忠诚、有责任心相对并不容易正确辨别。因此软素质主要看的还是沟通能力,被面试者如果能通过适时插话调动气氛,则表示沟通能力比较强。尤其面试官比较严肃情况下,如能做到则表明心态好、情商高、反应敏捷,这几个特点对具有管理性质岗位(teamleader、技术经理、技术总监、cto)比较重要。
其它:
4,面试是双方相互认知的过程。面试和被面试对双方都是一次提升或扩大视野机会。出于礼貌面试方应在问题问完后给予被面试者询问一些问题的机会。被面试方通过面试官的问题其实也可以对面试企业和面试官有一定程度认识,对技术类型的面试人,面试后仔细总结这些问题以及透露的企业和面试官信息,会发现收获很多。面试方也亦然。
5,面试前做一些准备是很有必要的,会让面试通过机率得到一定程度提升。尤其要自我审视下有哪些优点是你需要表现出来的,即使面试官没问到相关问题,也要想办法表达出来。
一般,作为面试官我会问这样一些比较开放但却必须是具体回答的问题:
(1)你的项目中哪个最值得向别人介绍,有哪些技术含量高的,你自己做了哪些?
(2)你认为自己还需要在哪些方面提升?考虑过准备如何提升?
通常,那些不应该通过面试的在这两个问题上的回答都不会让人满意。
网友评论