百文网 > 职场 > 求职 > 求职面试技巧

面试官如何提问程序员(精选两篇)

面试是个技术活,其本质上是一次沟通的过程。那么面试官如何提问程序员呢?下面是百文网小编给大家整理的面试官如何提问程序员,供大家参阅!

程序员的10大成功面试技巧

1.给自己写一份非常专业的简历

我的建议是,如果你想增加自己的入选机会,那最好还是花点钱制作一份专业的简历。相较于你将来可能得到的巨大收获,这真的只是一个小小的投资。

2.研究面试官

当我联系程序员来面试的时候,我总是会事先发电子邮件给他,并附上我的名字和博客地址。但是让我惊讶的是,当我给他面试的时候,他竟然对我还是一无所知。

再举个正面的例子,我在面试时也碰到过这类开发人员,甚至能对我以前写的一篇博客或者做的教学视频上面的内容侃侃而谈。

你说我会推荐哪个?

面试官也是人,也会有人性的弱点和特点。Dale Carnegie曾说过,要让别人对你感兴趣,最简单的方法就是你先表达出对对方的兴趣。

不管这种方法是否有欠公正,但是如果你想面试成功,那么我建议你事先最好先好好研究一下你应聘的这家公司和面试官(如果知道的话)。

当今社会的信息是如此的发达,我们完全可以在Facebook、Twitter、微博、博客上找到任何人的资料。即使你只是大致浏览一番,也会让你受益良多。

3.获得内部推荐

知道找工作最简单的方法是什么吗?那就是获得内部推荐。

这不但可以增加面试机会,还能提升40%的录用几率。

前阵子,我找到了一家心仪的公司。然后直接投简历?NONO,猜猜我是怎么做的吧?

首先我找到一名和我有共同想法和意见的开发人员,然后开始关注他的博客。

接着我在他的博客中留言、发表建议,并且表现出对他的工作和公司非常感兴趣的想法。最后我成功拿到了这个宝贵的内部推荐资格。

很多程序员会说,"可是,某某某公司里面的人我一个也不认识啊"。如果你想就此放弃,那当我什么也没说,如果你愿意试试,我敢打赌,你总能想出一种方法达到你的目的。

不过这有个秘诀,那就是首先你得在网上创建自己的"名片"——让别人有了解你的机会,所以do it now吧。

4. 学会解决算法问题

这是每一个开发人员都应该具备的重要技能,而且真要掌握起来也并非那么难。

在很多面试中,都会有这样的问题,要求你在白板或者电脑上解决编程问题,但是许多程序员,即使是那些非常优秀的程序员,都会一下子大脑一片空白,完全理不出思路来。

如果你能花时间学会如何解决这种类型的面试问题,那么下次再碰到这种场景,就不会这么紧张了。

我们会紧张其实和怯场无关,主要是因为我们不熟悉这些问题,也没有自信能解决这种问题。

在这方面建立起自信之后,你就再也不会紧张了。

5.活力洋溢地回答问题

只用一个字或者一句话,照本宣科平平无奇地回答问题,或许在技术上是正确的,但是你忘了应该借此机会好好展示自己的激情——这才是一个开发人员能带给团队的最大正能量。

举个例子说,如果我问你什么是多态性,我不是要你按照课本中的定义重复给我听,我希望你能就这个主题阐述一下,然后我们可以更深入地聊一聊。

6.小心"陷阱"问题

你为什么换工作?

说说你最大的优点和缺点。

最近一次你是如何解决和同事之间发生的技术分歧的?

在回答问题之前,你最好明白面试官问这些问题的目的,掌握如何回答这类问题的技巧。

就先说说第一个问题吧"你为什么换工作?"

在大多数情况下,面试官想知道的是你是否是一个爱说三道四、惯于诽谤抨击雇主的人。所以千万不要上当。

7.永远不要撒谎

最糟糕的事就是在面试的时候撒谎。

知之为知之,不知为不知,如果你确实不知道,千万不要自作聪明来编造问题的答案。

相反,你应该诚实地说,你不知道或者你并不是100%肯定,但是你愿意尝试一下,然后再讲讲自己的想法。讲完之后也可以问面试官正确答案是什么,以显示你对此非常感兴趣。

实话告诉你,大多数面试官问的问题都是他们知道的问题,不然如果你滥竽充数给你通过的话就会显得他们像个傻瓜。所以千万不要抱着侥幸心理,一旦发现你在撒谎,面试官马上就会质疑你的人品。

8.不要太诚实

很多程序员会过多地透露自己的信息,不要以为诚实和完全透明就是最好的政策,殊不知过犹不及。

第7条所说的不可撒谎诚然不错,但是我们也没必要将自己所有生活的细节和所有缺点都告诉给面试官。

有个性是好的,但是如果暴露了性格缺陷就坏事了。

试想一下,要是你说自己喜欢赌博或者沉迷于魔兽世界,我敢打赌,面试官肯定会重新审视你。所以在说自己信息的时候一定要慎重,因为这不但会暴露你的缺陷,还会显得你缺乏应有的判断力。

9.掌握计算机科学的基础知识

是的,很多程序员在面试的时候,甚至理直气壮地说,他们不知道链表和堆栈,因为他们没有受到正规教育或者早就还给老师了。

我也承认我们在工作的时候是用不到那些深层次的计算机科学概念的,但是作为一个专业的软件开发人员,你至少应该知道一些基本知识。

举个例子说吧,你请电工来重新给你家的房子布线,但是这电工一点也不知道任何电气工程的基本知识,你还请他干不?同理,我们也是如此。

10.关于经验

这是最后一点,但并非最不重要的,很多开发人员,特别是刚进入这一行的新手,往往缺乏相关的经验,也不知道如何增加所谓的工作经验。

这有点像是鸡和蛋哪个先出现的问题。

那么又该如何增加经验呢?

关键是要用创造性的方式。有很多方法都可以获得工作经验,但是却不必真正去一家公司上班。

面试官如何提问程序员

第一:德行

对于一个程序员候选人来说的话,如何评判一个候选人的德行呢?我觉得有以下几点:

眼神

注意观察候选人眼神是否飘忽不定,是否总是不敢直视你的眼睛,或者回答问题的时候总是往左右两边瞟。一般来说,眼神是一个人性格的直观表现之一,如果眼神不够沉稳坚定,说明此人不踏实,心境飘忽,很有可能不诚信(比如爱撒谎,不诚实,不讲信用等等)。

身体语言

如果一个候选人在跟你聊的过程中,整个人吊儿郎当,身体左摇右晃,一会二郎腿,一会把脚放到大腿上(别怀疑,我真遇到过),那么说明此人一定不沉稳,性格轻佻浮躁,最好谨慎考虑。相反,如果候选人坐姿规矩,谈话间体态得体,自然,不紧张,不做作,那么该候选人应该比较有家教,个人习惯很好,性格比较稳定。

沟通

在跟候选人对话时,注意对方的语气语调。如果候选人语速平缓,吐字铿锵,说明此人准备比较充分,不急躁。当遇到一些一时回答不上的问题时,能够保持冷静,集中精神思考,如果实在不会,没有打算糊弄过关或者顾左右而言他,而是直接答复不知道,那么就说明该面试人性格比较沉稳,而且比较诚实,不滑头。甚至你可以故意说错一些细节,看看对方以何种方法给予纠正或者不纠正。你也可以直接故意用错误去质疑对方正确的表述,看看对方的反映,如果对方一下就被点燃了一样蹦起来,或者总打断你说话,说明对方性格比较急躁,这是程序员的大忌。当然此招能少用尽量少用,而且一次足矣,如果老这样,会让候选人觉得面试官不行,而心生鄙视。

细节

最常见的就是对方电话来了,看对方的反应,一般来说候选人会选择直接挂掉,或者任由电话震动。如果对方当着你的面,直接接起了电话,说明对方在为人处事方面肯能有些欠缺,起码不是很懂礼貌,或者根本不大重视这场面试。另外,一般来说前台会给面试者打一杯水,等到面试结束,或者有需要中途更换面试场所(例如换会议室等等),如果对方随手拿起水杯而不是留在原地,说明该候选人素质比较高的,而且心应该比较细。

第二:技术

技术排第二不是说技术不重要,作为一个程序员岗位,技术当然是非常重要的。很多企业喜欢让程序员做卷子作为首面的内容。我认为这是不妥当的,是面试官在偷懒的表现。不是说做卷子不能反映问题,只是这种方式太死板,并不能真正过滤掉不合格的面试者。比如,我其实没有什么技术能力,但是我面试前背了很多书,那么做卷子这一关我有可能可以过,到真正面试的时候才会被拒。所以,做卷子只能过滤那些真正没有技术,而且没有背书的面试者。但是,即便是直接面试,面试官真的碰到这样的面试者,又花的了几分钟就可以判断出来再拒绝呢?所以,我建议,不要做卷子,直接面试,并且分成以下几个内容来考察面试者。

过往经验

可以让候选人介绍最近一个项目,并且描述自己的工作内容。首先看看候选人是否能够说得清楚这个项目,比如有哪些模块,每个模块有哪些功能,实现了一个什么业务逻辑,自己负责的这一块的详细业务逻辑又是怎样的,等等,如果连这些都说不清楚,那么基本上可以判断候选人在撒谎。了解了项目之后,可以通过候选人负责的内容进行深入技术提问,比如候选人说使用了MVC4,那么就可以就MVC4的相关知识进行提问;候选人说使用了多线程,那么就多线程相关的知识进行提问,但是注意要由浅入深,不要一上来就问一些很难很深的问题。一般来说如果候选人没有撒谎,那么应该来说还是可以回答一些不太难的问题的。

基础知识

一定要考察候选人的基础知识。很多候选人在说起自己做过的项目的时候眉飞色舞,一套一套的,甚至满嘴都挂着一些热门的词汇,比如大数据,高并发,云计算,等等。但是一问基础知识就傻眼,最简单的值类型引用类型都不知道有什么本质区别。很多候选人都会辩称,自己会编程,能够实现业务逻辑,为什么还要去背那些概念性的东西,殊不知,那些他们认为没有的概念性的东西,正是我们构筑大厦的根基所在。举个例子,我造一所房子,地基打了10米,你造一所同样的房子,没有地基。我们都造好以后,在风和日丽的时候,看上去一模一样,你会笑话我,“看,我们一样,但是我比你不知道省了多少工序“,但是你要知道,并不是每天都会风和日丽,总会遇到狂风暴雨,等到考验真正来临的时候,谁的房子更不容易倾塌呢?

分类考察

在面试候选人的时候,最好是分类进行考察,每个类别准备5个问题左右,并且由浅入深。比如基础知识5道题,我一般会问:值类型引用类型什么区别?构造函数什么特点,合适被调用?string和StringBuilder什么区别?子类被实例化的时候会调用父类的构造函数吗?接口和类有什么使用场景上的区别?问完了基础知识,一般会问C#的相关知识,然后是数据库相关知识,然后是框架的知识,例如MVC的知识,最后问一些Web前端相关的,例如ajax,Jquery,JS等等。一般来说我不会考察算法,数据结构相关的内容,更不会让候选人写一个“二分查找法”,或者“单例模式”的代码,什么道理呢?因为我招程序员还是以实际应用为主,而且.net里面已经封装了很多算法,知道如何使用即可,对于原理性(注意,是原理,不是基础)的东西,如果自己能花时间去了解去掌握更好,如果不太了解,但是能够熟练应用封装好的东西就行。毕竟顶尖的互联网公司就那么几个,一般的公司招聘真的没必要搞那么高大上,两个字,务实!。

第三:身体状况及其他原因

为什么把身体状况单独拎出来说呢?因为之前招过一个不错的程序员,但是其身体极其瘦弱,脸色也比较苍白,但是我还是把他招进来了,并且分配了相对重要的工作,但是该苍白弟来了之后没几天,就旧疾复发(我也不知道入职体检是怎么做的),需要住院了,好在他也比较nice,也没算工资,就直接离职了。所以面试官在招聘时,一定要注意候选人身体状态,如果有明显的身体状态问题或者不正常,千万要慎重考虑。另外,需要考虑的还有下面的因素:

候选人是否准备创业

有些候选人因为首次创业失败,需要找个地方打工解决一下生活问题,一旦缓过劲来,就会离职重新创业。说实话,我是不太愿意招此类程序员的,太不稳定。

之前换工作太频繁

一般我认为,正常情况下,IT行业换工作频率在2年一次以上是比较正常的,当然后写不正常情况另当别论,例如公司倒闭老板跑路,例如被收购后辞退,等等。但是,如果正常情况下,连续3分以上工作的更换频率在1年以下,那么这种候选人需要谨慎对待。

其他

比如提一些无理要求的,期望薪水过高的,完全不尊重人的,等等,这些候选人都要谨慎考虑。

总结

洋洋洒洒又写了这么多,希望对各位面试官有些帮助。在考查候选人时,一定要查看候选人的德行,如果候选人德行不好,最后会让负责人非常头疼(亲身经历)。目前我的团队中开发17人,16人是我亲自招的,不说有多优秀多顶尖,但是绝对是一支战斗力极强的队伍,高效,专业,稳定(从去年6月建团队到现在只走了4人,其中老团队成员2人,一人回家,一人被以前同事挖走。新团队成员2人,一人上文提到的苍白弟身体抱恙离职,一人因为对公司有意见主动离职)。所以,千万不要光盯着候选人技术能力,要从各方面综合去考察一个候选人,这样才能找到你真正需要的人才。

相关热搜

相关文章

【求职面试技巧】热点

【求职面试技巧】最新