现如今好工作越来越难找,一份称心如意的工作更是难上加难。而程序员的面试与一般岗位的面试不同。在你羡慕程序员几十万甚至上百万的年薪的时候,而你却不知程序员面试时,要经历的压力有多大,内心的煎熬有多大。今天,我就来总结一下程序员面试时的技巧与技能,希望对大家的面试有所帮助。
最近在程序员面试论坛上看到这些帖子:
通过程序员求职者的吐槽与疑惑,足以说明这个行业的竞争压力与求职不易,接下来是我为大家总结的面试攻略,希望对大家能够珍惜每一次的面试机会并加以利用。
1 、你的定位
面试前,要给自己的职位和角色做一个定位。其中你最应该关注的是你自己的岗位职责还有技能是什么,你在这个行业区域沉淀了什么。只有仔细地分析清楚了这些,之后才能在面试中更加自信地表现你自己。
2、知道自己想要的
你的目标是什么?根据你之前的工作经历和行业发展,给自己制定一个不少于3年的规划,其中包括业务、技术上的提升计划。还有综合能力的提升规划,比如协调、沟通、执行能力等。这个规划不是执行很久都一成不变,而是根据实际情况不断微调,以适应最近情况,让自己的职业规划可以衔接下去。
比如在程序员中有一个比较常见的话题:应该走技术路线还是管理路线?尤其是一些工作了6、7年的程序员会面临这个烦恼。该如何权衡?
首先,你需要了解技术和管理职位的区别,其次,要结合自己的性格和特长做选择。比如你是一个极客型工程师,狂爱技术,就应该坚持技术路线、往架构师方向发展。
如果你更擅长团队方向、技术规划、和人打交道,擅长处理业务问题、协调推动、业务落地和创新,愿意做工程师的幕后资源支持等工作,也可以转型技术管理。其实30岁到40岁是一个人职业发展的黄金阶段,一定要在业务范围内的扩张,技术广度和深度提升上有自己的计划,才有助于在职业发展上有持续的发展路径,而不至于停滞不前。
3、回顾和总结
首先,一定要用自己使用比较多的开发语言作为核心开发语言。一般核心开发语言不超过两个,必须精通才行,深入到原理层。其次,把自己所在的公司,参与过的核心项目都梳理清楚。把跟自己求职岗位相关的公司经历和项目重点做一次回顾,尤其是业务细节非常重要。
下面是一个梳理项目的参考步骤:1.项目背景2.项目怎么设计的3.技术选型和对比4.实现的细节5.项目最终的效果。
4、了解企业所需要的人才
可以通过浏览公司网站、职位描述、app产品、研究岗位职责等方式判断产品的用户量,可能用到的技术,从而做相应的准备。
5、了解面试公司和岗位的情况
全方面地了解面试的公司,包括公司业务发展历程、迭代周期、产品愿景、技术氛围、团队风格、公司目前遇到的问题和挑战等。
如果准备充足,面试官是可以感受到的,这也会给面试官留下很好的印象。毕竟跳槽是双向选择,你需要对去面试的公司有充分的了解,在面试中可以提出一些比较有深度的问题,把所有疑惑都在面试中解决掉 。
面试官向你提的问题很多是基于公司目前实际情况提的问题。毫无准备会处于比较浅的层次,了解的话面试沟通的质量会更高,回答问题更有针对性。
6、所求职的岗位面试流程
通常的公司都有3-4轮面试。
一面技术面试,考察技术基本功。
二面业务面试或者项目面试,通过不同项目考核你的技术广度和实践能力。这种提问会根据你的简历做结构化面试,比如请你梳理你之前做过的项目,这个要遵循STAR法则:Situation,Task,Action,Result。从项目背景、任务、采取了什么行动、最终结果如何去回顾,梳理自己的业务亮点。分析一下现在回想起来,当时是不是可以有更好的解决方案。
三面是综合面,会考察技术以外的其他能力,比如软性技能:执行、沟通、协调等。最后一面是HR面,会比较关注你的离职原因、求职动机、薪资期望,这些要提前想清楚,避免回答的时候逻辑混乱。
7、准备好一些问题去问面试官
通常面试到最后,面试官会问:你有什么问题想问我们的吗?这时候不提问题是不可取的,会给人一种不够积极的印象。其实,面试官让你提问是有目的的:一方面,他可能想知道哪些问题是你最关心和重视的 ;另一方面,给你一个机会提问,可以突显你的专业和态度。问得好的话,有加分的可能。如果完全不问面试官问题,对方可能会认为你不是那么想进这家公司,或者对这份工作的积极性并不高。
同时最后的提问也要讲究技巧。有的人问的问题格局太小,比如:几点上班几点下班?有没有加班费?有没有微波炉热便当等。这些不是重要问题,应该在问完与工作相关的问题后再问。就算要问也要讲究方法。比如:我比较遵循时间,喜欢按时上下班,请问贵公司在上下班时间上有没有什么要求?
再就是,提什么问题比较正确?一定要提和工作相关的问题。比如更细节的工作内容有哪些?胜任这个职位需要具备哪些条件?主管的管理风格如何?公司未来的发展规划?这些问题都比较切题,会给面试官留下很好的印象,他会认为你是很想进入这家公司,才会问这么多细节。
关于具体可以问哪些问题,下面总结了几个还不错的问题供大家参考:这个职位在公司的具体职责是什么,目前最紧要的任务是什么?公司对我面试的这个岗位的定位是什么,最希望这个人达成的工作指标有哪些?如果我有幸加入,公司您希望我三个月完成哪些工作?公司希望通过这个职位实现的长期目标是什么?公司的价值观和愿景是什么?公司未来一年的发展计划和团队规划?公司是一群什么样的小伙伴,这个岗位所在的的团队是什么氛围?通过刚才和我沟通,您对我的评价是什么?
最后再补充一点,有的面试官在考察完硬性技能后,还会考察你的软性技能,比如学习能力、团队协作与沟通能力、自我驱动能力等。
如何展现你的软技能呢?这里有一些tips供你参考:如何考察目标导向?面试官可能会问你做这个项目的目标是什么。他会问你目标后再追溯你做这件事情的过程,如果你做的过程并不是围绕着目标展开的,或者后来做的事情偏离了目标,说明你不是一个目标导向的人。
如何考察学习能力?大部分情况下,面试官会追溯你所描述过往经验的细节来判断。比如有一个项目你花了半年来完成,别人却用了一年,这说明你的学习能力比较强;再比如你做了一个开源项目,在github上很多人点赞;或者以你的资历来说,你掌握的技能高出行业平均水平。
如何考察团队协作能力?有两个问题专门用来考察团队协作能力,比如:你有没有做过团队其他成员的决定? 当时是怎样的情况?你是如何和其他成员沟通的?最终结果如何?大家可以根据这些问题在面试前提前做好相应的准备,综上就是面试官在考察能力时通常会用的方法。
以上就是我为大家分享的面试方法与技巧啦,有一句老话说的好:“比你优秀的对手在学习,你的仇人在磨刀,你的闺蜜在减肥,隔壁老王在练腰,我们必须不断学习,否则我们将被学习者超越。”
当然一个人学习是枯燥的,还需要一个良好的学习氛围,因此我组建了一个学习交流探讨的社群,欢迎大家一起来交流探讨共同进步。还有一些收集整理的资料,感兴趣可以加群“833985970”,一起学习,共同进步!