合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。
——《道德经》
文章首发公众号:程序员技术专栏
金九银十,跳槽的人相对更多,竞争强度也是一年高过一年。话不多说,根据我个人的面试经验,结合求职者和面试官的角度,跟大家分享几点有用的面经。
01
正确的心态
在这么多年的面试官经验中,我发现很多程序员都很注重技术面试题准备,基本忽略了很多通用问题。比如职场工作习惯、对行业的理解、对自己的职业规划等等。
有些人回答得很差,大多数人的回答都没什么亮点,面试官很难有深刻印象。
我觉得这可能是很多程序员对技术面试有刻板印象,觉得只有技术能力过关,其他都是次要。
在这里我要纠正一下,面试考察的是候选人的综合能力,技术能力是核心点,但并不代表其他问题你就不需要提前准备。
我见过太多技术实力不错的程序员在二面、三面甚至hr面被刷掉,因为越到后面的面试,面试官关注的点就不再是编程实力,而会更倾向考察你的团队协作力、工作态度和习惯、个人的认知、是否有清晰的职业规划、和公司的价值观是否符合等等。
比如很多程序员的工作经历问题,中间几个月空档的、有在职才几个月的工作经历等等,这些也都是面试官关注的点,要看你的稳定性。而你要提前想好一个理由来说服对方。
提前多久准备都不过分,我甚至建议大家在入职一家新公司的时候,就开始准备下一次的跳槽。你的准备越充分,机会的主动性就越强。
02
面试和日常工作不一样
在日常工作中,IDE会提醒你语法错误,你有问题可以参考资料、咨询同事、上网查找等。
理想情况下,技术面试会根据一些客观标准来判断你是否有能力完成一些工作,同时考虑您的特定技术、技能和经验。
但实际情况并不是这样。如今越来越多的面试官倾向于用一套标准问题,针对不同的资历级别提出不同的问题,并反复地拿这些标准问题去确认人才是否符合要求,包括我自己也是这么去面别人的。
当然,大部分面试官也会从候选人简历中的过往项目挑一些问题来问,但这一般都是那些标准问题的补充询问。
原因也很简单,一直提出好的、合适的问题是很难的。而且只有把一个问题问了很多遍,你才知道怎么提出一个新问题,怎么根据新的问题来判断候选人的表现是优是差。
如上,面试其实可以变得更简单。
因为问题就那么几个,你可以提前准备好。但这往往也是最难的部分,因为没有标准答案,不像刷题一样有确定的参考,只有在你面了几次之后,才知道这么优化你提前准备的答案。
这也是为什么我建议大家在面试前先拿几家小公司或者不打算去的公司练手,找到面试感觉,优化简历,再去面心仪的公司,成功几率更高。
03
复习基础知识
基本数据结构和算法,几乎是大厂面试必备。数组、链表、哈希表等等,最好都要熟悉。
基本问题答不出来,通过率会很低。要知道,面试官面了这么多人,了解了大家不同的思考问题的方式,如果你对于基本问题都犯难,和其他人的差距一下就拉开了。
你可以给不了正确答案,但一定要讲出你的思路,千万不要用简单的一句“不知道”结束你的面试。这是很大的减分项!
还有更“致命”的,就是给自己的不懂找借口,我作为面试官时是最讨厌这种回答的,你还不如诚实回答不知道。那我可能会换个问题问你,但一个给自己的不懂不断找借口的候选人,在态度上就有点问题。
说到算法,在这里不得不插一句。很多程序员觉得大厂要面算法就很畏惧,以为它们要考得很深入。
是,有些重算法的公司确实需要你很熟悉这块,但大部分岗位平时是很少用到深度的算法知识的,更多的是你所面试岗位需要的核心技术能力的考察。
了解基本原理、知道不同的算法以及它们需要多少时间,这个程度就够了。不需要学多,推荐看完一本经典书,可能这个书需要花一定时间才能读完,但绝对值得。
除了对算法面试有帮助,还有助于你成为一个更好的开发者,助于你理解很多编程的基本原理。
如果你对于下一次面试准备得还不够充分,那么从此刻开始加倍努力也不晚,什么时候都不晚。重要的是开始。
《道德经》里提到:“合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。”
今天就说这么多,觉得文章不错的记得关注,加我个人微信~
文章首发公众号:程序员技术专栏
-The end-
你好,我是中年码农飞哥,
我会从CTO视角讲述程序员职场/技术/学习/创业等,
分享从码农到CTO的职场和技术经验
扫 码 | 围 观 飞 哥 朋 友 圈