写给正在面试程序员

写给正在面试程序员

作者:Ranks的职场学习日记

首发于微信公众号:Ranks的职场学习日记(ID:Ranks009)。

本文已获原作者转载授权,如需转载,请联系原公号 Ranks的职场学习日记

        很多面试者不大重视自己的过往项目经验,这是我不能理解的地方。我每个做过的项目,虽然我在其中可能只是做一个模块甚至一个功能,但是我都会想办法搞清楚整个项目的业务流程,研发背景,内部模块功能,和外部如何实现集成,底层数据库的设计,整体系统架构设计等等。

        我在面试求职者的时候,通常都会问最近一个项目相关的东西,有很多求职者都会表示是ta自己一个人设计开发了这个项目,但是连有哪些功能模块,系统结构(不是架构)都回答不出来。有些面试者,在面试一些中高级的程序员时,很喜欢从过往经验入手,你再一遍介绍的时候他可能随时提问。

        因为这样有两个好处,第一是预防一问一答的形式,求职者事先背了很多问题的答案,第二是从求职者过往项目经验入手,除了可以看出求职者是否虚假构建了项目经验,还可以判断该求职者对开发细节的把握以及对一些技术点的反应能力和掌握情况,毕竟“突然袭击”比“瞄准射击”要更加考验求职者。

        所以,在面试前,应该好好把自己以前的项目经验都捋一捋,特别是上一个项目,从业务流程到产品设计到系统开发,特别是项目内一些你做过的细节地方,你准备在面试时拿出来说的,必须以此为点,相关的东西都查查资料看一看。再一个就是项目里面的闪光点,什么叫闪光点,就是高大上的东西,需要自己多了解了解,在面试的时候拿出来说也可以加分。

        比如我很久前做过一个类似开心农场的页游,在地图上种植或者修建各式各样的房子,而且都有不同阶段的。当时我还是比较小白的阶段,懵懂的听人说多线程好像效率比较高,于是就用到了new Thread的多线程方式,确实解决了一些效率上的问题。后来换工作时,我又把这个项目拿出来看了一遍,并且着重看了看多线程相关的东西,知道了还有异步编程,于是就自己学习了一番,然后动手把多线程这一块理论联系项目实际又巩固了一遍。

        也巧,后来面试的时候谈到这个上面的时候,面试官对这一块很有兴趣,越问越深,我就按照前面动手做的情况及思考给讲解了一次,为自己增分不少。

        上面也是一个举例而已,其实还有很多类似的经历,只是告诉大家如果你真是在公司用心经历了一个项目,你会学到很多东西,这些就是你的项目经验,而你后续把以前做的项目或者模块功能拿出来再看的时候有时候你会有新的思路和更好的优化方案。

写在笔试中-不要作弊,技巧作答

        有些企业在面试程序员的时候,会给试卷让求职者先做,然后再去面试。先不说试卷本身难度,千万不要去用手机边做边查询试题答案,本身作弊的行为就让人不齿,如果hr在暗处进行观察,发现你作弊,那就太尴尬了。会就是会,不会就是不会,即便你用手机查答案把试卷写的满满的,在接下来面试的时候,面试官再就试卷上的问题展开深入一问你,你就露馅了。所以不管有没有人监督,在面试的做试卷环节,千万不要百度。

 

        我要的是知道你的真实水平能力,虽然我也知道程序员工作的时候遇到部分不会的都可以去百度解决,但是如果面试的时候你都百度,那我便无法了解你的真实能力,那我怎么敢用你!原来在广州一家公司就职,一个男的求职者公司笔试区明明有监控摄像头,他还边做一边百度(HR告诉我的),8道试题答的满满的,但是面试的时候答得吱吱呜呜,问他是不是自己做的,他还给我坚定的回答说肯定自己做的啊,只是有点紧张所以回答不上来。然后我就说不好意思,面试结束了。


        后续我让hr给他回了个不通过原因的邮件,就让其放了个截图,大家都应该想到是放的什么了。PS:此人至今还是一个中级程序员,有段时间还长时间在我的一个招聘求职群了求工作。

所以说千万不要耍小聪明!

 

 那么在做笔试题的时候遇到不会的问题如何操作呢,那么我建议你:

1、围绕题目的大概意思,写上你的解题思路,分一二三这样的步骤走,当然你的解题思路越是往题目的问题的知识点上靠越好,这样面试官心里至少会认为你了解这个问题的大概,有自己的想法,虽然方法不完全对!

2、千万不要在不会做的地方留空白,这个是大忌,相信读书的时候老师也讲过。如果你觉得你写上面的步骤都有问题,那你就画技术流程图在答题区域,这样也比空白好很多。

3、当面试官在面谈的时候问到你上面的答题不是很完整的时候,要带着谦诚的态度告诉他,自己目前还没有实际操作过这个具体功能,只能凭借自己目前掌握的知识结构来设想大概的解决思路及步骤,还望您给出指导不足的地方。大体就这样的话术,反正一定要谦虚诚恳,这样往往即使不会也会被面试官接纳理解一些。


写在辅助面试-增分项

        如果上面几点都已经通过面试的考核,那么这一点就会成为你绝对的亮点。首先要先自己了解一下当前热门的技术,然后通过分析自己申请的职位,去看看可能涉及到哪些相关或热门的技术,然后再去找资料进行学习了解和动手实验。比如你是搞互联网开发的,那么最好学习一下负载均衡相关的技术,分布式数据库的技术,学习缓存技术,学习什么是服务器集群;如果你是搞游戏开发的,那么最好学习一下图形处理、算法、网络通信等;如果你是搞iOS的,那么可以看看Swift,可以看看Xamarin,可以看看WebSocket等等,当然,这里只是举几个例子,不一定非要这样对应,你如果是搞Java的,也可以去看看Python如果你是搞.net的,也可以去看看Ruby on rails,数据库等等。所谓技多不压身,就是这个道理。

 

        还有一个就是对行业的了解,这个是衡量你眼界和格局的重要指标,作为一个行业从业者,你连行业的前几个知名企业或者产品都不知道,最新的技术,行业动态等等。这些都是你和同事闲暇的谈资,而且在面试的时候和面试官适当交流到这些会让面试官感觉你至少是对行业有较深的了解的,至于技术肯定也不差。

 

结语

        面试还是得靠自己的实力,所以技巧再多都是辅助,只有自己的技术水准达到一定的程度,才能找到心仪的工作。

        整理这篇文章只能说帮大家做做参考,提供一点帮助,最重要的,还是要在日常工作和生活中多学习多思考,把理论和实际应用真正的转化成自己的经验。希望各位程序员们顺利的通过面试,找到自己满意的工作!


作者:Ranks的职场学习日记

首发于微信公众号:Ranks的职场学习日记(ID:Ranks009)。

本文已获原作者转载授权,如需转载,请联系原公号 Ranks的职场学习日记




  • 1、刺猬实习遵循行业规范,任何转载的稿件都会明确标注作者和来源
  • 2、刺猬实习的原创文章,请转载时务必注明"来源:刺猬实习",不尊重原创的行为刺猬实习或将追究责任
  • 3、作者投稿可能会经刺猬实习编辑修改或补充。

相关推荐