导航:首页 > 信息技术 > 如何面试it技术人员

如何面试it技术人员

发布时间:2022-05-16 07:17:37

❶ IT技术人员面试,如何回答最巧妙

一、面试前准备

(绝招关键词:介绍+预演+暗示+清单)

1、自我介绍

准备不同时间版本的1分钟、3分钟的自我介绍。反复练习,并脱稿,但不是背诵。因为背的话自我介绍就显得十分的生硬,一定要用自然的语言将自我介绍说出来。

2、预演

搜索一些你应聘的公司和职位的面经。在宿舍里、家里,先自己预演下,可能会被问及的各种问题和答案。即使你不能猜中所有问题——当然HR也不会面面俱到、一直不停的提问,最关键词的只有那么几个。思考问题的过程会让你减轻紧张而且在面试时心里有底。

3、积极自我暗示

在群面的时候,我们可能会因为别人的发言而扰乱了自己的思路。这时候千万不要乱,适当的做深呼吸调整一下自己,做到沉着冷静,整理好自己的思路,努力回忆自己所学和所掌握的知识,给自己积极的心理暗示,一句话:相信自己能行!你是最棒的。

4、优点清单

自制一份自己的优点检查表,这样你会了解自己比想象中有着更多的优点,充分掌握了自己的优点才能在面试的时候表现的比别人更自信:

(1)人格上的优点:有热心,有说服力,有勇气,坦白,诚实,公平,幽默感强,表现自然,有口才,思想开放,有趣,弹性大,负责任,有号召力,活泼,内省,温和,热情,整洁。

(2)智能上的优点:善于分析,善于掌握观念,善于思考,知觉敏锐,聪明,智慧,反应快,语言能力强,有良好的逻辑推理能力。

(3)美感上的优点:对颜色敏感,对设计敏感,有创意,有想象力,能发明,能即兴发挥,机智,懂得配置家具,懂得选衣服,能安排食物和花卉,懂园艺,能弹奏乐器,能绘图,能唱歌,能演戏,能做手工艺活,能跳舞,爱好广泛。

(4)情绪上的优点:温暖,敏感,关心别人,有同情心,能针对别人的需要做出适当的反应,慷慨,慈善,能鼓舞别人的信心,了解别人,照顾别人、体贴,考虑周到,接纳别人,支持别人,原谅别人,判断准确。

(5)体能上的优点:平衡能力强,体力好,有忍耐力,协调性好,动作敏捷,具备竞赛的精神,双手灵活,体形良好,力量大。

二、去面试

(绝招关键词:简历+时间+表格)

5、多带几份简历去面试

面试你的人可能不止1个,预先料到这点,并准备好会显得你做事正规、细致。没有比当被要求提供多一份简历而你却没有,更能表明你缺乏准备的事了。你说呢?

6、不要准时到达——要提早到

如果你迟到,不管你的面试官多么谅解你在路上碰到的意外情况,要改变负面的第一印象几乎是不可能的。尽一切能力准时,包括预先给可能发生的意外留下时间。

7、完整而认真地填写公司要求的表格

尽管你认为它们用处不大、尽管你带了简历来,很多公司都会要求你填一张表。你愿意并且有始有终地填完这张表,会传达出你做事正规、做事善始善终的优点。

三、面试中

(绝招关键词:印象+自我营销+总结经验)

8、深刻印象

最初和最后的五分钟是面试中最关键的,在这段时间里决定了你留给人的第一印象和临别印象以及主考人是否欣赏你。最初的五分钟内应当主动沟通,离开的时候,要确定你已经被记住了。要让人产生好感,富于热情。人们都喜欢聘请容易相处且为公司自豪的人。要正规稳重,也要表现你的精力和兴趣。

9、自我营销

营销自己十分重要,将你所有的优势推销出去,包括你的技术资格,一般能力和性格优点,雇主只在乎两点:你的资历凭证、你的个人性格。你能在以往业绩的基础上工作并适应公司文化吗?谈一下你性格中的积极方面并结合例子告诉对方你在具体工作中会怎么做。

展示你勤奋工作追求团体目标的能力,大多数主考人都希望找一位有创造力、性格良好,能够融入到团体之中的人。你通过强调自己给对方带来的好处来说服对方你两者皆优。

10、总结经验

不要害怕承认错误,雇主希望知道你犯过什么错误以及你有哪些不足。不要害怕承认过去的错误,但要坚持主动地强调你的长处,以及你如何将自己的不足变成优势。谨记每次面试的目的都是获聘。你必须突出地表现出自己的性格和专业能力以获得聘请。面试尾声时,要确保你知道下一步怎么办,和雇主什么时候会做决断。

❷ IT工程师如何成功通过面试

IT行业有一个怪象,应届生去找工作,最先找到工作的往往不一定是技术最好的,而是沟通能力最好的,那么在IT面试中我们有哪些要注意的地方,今天浙江优就业的小U老师就为大家带来一篇,IT工程师要成功面试该做到哪些。

一、面试前准备

1.简历的几个注意事项

不要给自己挖坑

你要对你自己写的简历负责。因为面试时,面试官通常会拿着你的简历,问里边的各种细节。技术细节、工作经历、项目情况等。你必须对自己写下的每个字后面的隐藏话题做充足的准备。举个例子,简历上有这样一句话:

熟悉运用 Chrome Dev Tools、Firefox 的 Firebug 调试页面

那面试官可能会问:讲讲你用 firebug 调试页面时,都有哪些经验技巧感觉比较有用?这样针对一个话题进行展开谈话。

2.针对不同的公司对简历进行微调

有时候有必要针对面试公司的业务对你的简历进行微调。比如对方是个做移动医疗的公司。而你恰好做过类似项目,就可以将该部分的项目介绍的排序提至第一位。并将对移动医疗的经验加重描写。以达到和职位更匹配的效果。

3.了解公司的相关情况

面试前应到公司的网站上或别的渠道,提前了解公司的企业背景、业务模式、主营产品等,面试的时候就可以做到有的放矢。

“你对我们公司有了解吗”“我提前了解了一下,贵公司从事的是??理念是??我觉得和我的理念挺吻合的??”

“你对我们的产品有什么看法”“我仔细研究了贵公司的产品,发现有如下优点??还发现几个问题??我觉得可以这么改进??”

这样的对话,会和面试官迅速拉近距离。面试官也会认为你做足了功课,是一个用心的人。

4.干货储备(核心技能)

专业知识准备收集相关面试题并熟练掌握。面试官有时候也会照着网上的题库问你问题,哈哈。最好能按自己的理解,用自己的语言去阐述问题。

项目经验项目的研发背景、整体业务流程、开发周期、负责的模块、技术实现细节、技术亮点等。你自己做过的每个项目都要搞清楚。

了解热门前沿技术比如你面试的是 iOS 开发岗位,除了 OC 你还能聊聊最新版本的 Swift;比如现在微信小程序开发又火起来了,你也在关注和学习,甚至能解决面试官的一些问题。了解这些热门的前沿技术绝对会成为你面试时的加分亮点。

四、面试后的复盘

复盘很重要,没有复盘的行动往往是无效的,因为没有经过总结和沉淀。大家要养成经常复盘的习惯。面试的复盘我们可以这样做:

1.复盘自己在面试现场的整体表现

是否表现得沉着自信、充满活力、轻松自如?

对面试官提问的反应是否恰当、准确、灵活?

2.复盘自己在面试中的所有问题及答案

分别记录下 HR 面试问题和技术面试问题及回答

关于面试官的提问,你是否还可以做出更好的回答?

3.其他心得感受

最好将以上内容写成一篇面试总结,存在印象笔记里。比如形成这样的笔记本,在以后面试时这些经验就是最好的资料库

❸ 如何面试一名程序员

如何面试程序员
一、提问之前的准备
首先,最重要的是,你自己一开始就应该想清楚:
1. 需要新员工完成什么样的任务?
2. 怎样的人能完成这样的任务?
3. 哪些途径和方法可以发现这样的人?
只有明确这些根本性的问题,才能正确高效地完成面试。
二、提问的原则
假定你对上一节的三个问题,已经有了清晰的想法,那么接下来就可以设计如何提问了。
有一些提问的原则,是你应该遵循的:
每一个面试问题都有明确的目的。你不仅自己了解,还能向其他面试官解释清楚。
多提一些开放性(Open-ended)的问题,而不是那种用Yes/No就可以回答的问题。这样做使你有机会与面试者展开讨论,并且提出后续的问题,尽可能多地了解对方。
不要问宗教、家庭、健康、个人隐私等方面的问题。
不要问太复杂的问题。因为面试者没有太多思考时间,所以无法周全地回答,你也就无从判断他的能力了。
三、考察专业能力
为了确认面试者是胜任的,你可以问一些与职位相关的专业方面的问题。(不过通常来说,一次面试不足以看出一个人的专业能力。)
比如,你的招聘职位是系统管理员,你可以问"如何快速地在50台机器上部署Linux?"(提示:正确答案不是刻录50张安装光盘。)
另外,你还应该向面试者了解他的过去,因为过去是未来的最好预测依据。不过,提问的重点不要仅仅是他过去的成果,更要关注在当时的环境中,他是如何决策和实施的。
四、考察综合素质
因为人是会发展的,所以某种程度上,面试者的综合素质要比他的专业能力更重要。
所以,具体的技术问题(如何调用API、什么是设计模式、编程语言的语法等等)可以少问一些,更应该关注面试者的事业心、对工作的热情、进取心、自律能力、毅力等方面。
下面是一些典型问题:
Why did you get into development?
你为什么开发软件?
How many technical books did you read in the past year?
去年你读了几本技术书籍?
What was your favorite technical book in the past year? What did you learn from it?
去年你最喜欢的技术书籍是哪本?你从中学到了什么?
What websites do you read regularly, related to development?
平时你经常访问哪些编程类网站?
Do you maintain any open-source projects?
你有自己的开源项目吗?
Do you code in your spare-time?
业余时间你编程吗?
Do you love programming, or do you do it for the money?
对于你来说,编程是一种爱好,还是一种谋生手段?
Have you accomplished anything important in your career yet? Do you want to?
你的职业生涯之中有什么重要的成就?它是你主导的吗?
What would make you feel that you have done something important?
什么事情会让你很有成就感?
五、考察理性思维
某些情况下,你可能需要了解面试者的分析判断能力,看他能否全面地思考问题、客观地评价自己。
那么,你可以依次提出这样三个问题:
What's your favorite programming language? Why?
你最喜欢的编程语言是哪种?为什么?
If you could add one feature to your favorite language, what would it be? Why?
如果允许你为这种语言加一种功能,你会加什么功能?为什么?
If you could remove one feature from it, what would it be? Why?
如果允许你取消一种功能,会是什么功能?为什么?
这里的重点是,让面试者从正反两方面评价一件自己熟悉的东西,看看他的思维是否片面。答案无所谓对错,只要面试者有一个明确的立场,能够从正反两方面说出令人信服的理由,就可以了。比如,某个软件的口碑不好,但是面试者说他很喜欢,而且说得出一大堆理由,清楚地解释了这种软件的优点和缺点在哪里,这样就很好。
你还可以把这些问题,套用在其他东西上面,比如操作系统、文字编辑器等等。

❹ 请问Java等技术岗位的面试流程是怎样的

IT技术岗位的面试流程其实都大同小异。主要包括以下内容:

面试之前,一般是准备自己的简历或者学历证书(有些公司可能会需要,视情况而定),所以要提前准备好。
到了公司后,一般的公司都会先拿一份笔试题给你做,当然也有些公司也不会有笔试题。总之自己要提前准备好如何去面对,毕竟这个是经常会发生的事情,很多公司基本都会有笔试题的。
然后是人事的面试,这个就需要临场发挥了,一般毕业生的问法就是,你为什么想要来我们公司,我们公司有什么吸引人的地方,还有就是你在学校都有什么成就,举例说明一下,当然这些都是很简单的,但是有过工作经验的就不一样了,会问你为什么从上家公司离职,然后说一下上家公司做的项目是什么等等。
接下来就是重点的技术面试,这个就是考验你的时候了,一般这个过程会持续半个小时到一个小时左右,技术面试官会问各种各样的问题,比如java,会问你在项目中你是怎么解决你碰到的难题的,你对redis的理解,谈谈spring的优势等等,这些都是需要去理解的,因为这些都是对你技术上的要求,所以你自己这些在去面试的时候都要看一下,因为以后工作中也肯定会碰到,对于技术而言,有些不懂的你可以学也可以问,千万不要憋着不说不吭的,要不然会耽误项目的进度什么的。
技术面试完后,如果跟你谈了工资什么的,大概率说明这个offer就稳了。如果说再联系,就只是后话了,当然谈工资还是需要你跟人事去说的,这个的话你自己看自己的面试情况而定,或者视自己的实力情况而定。
以上就是面试的一般流程了,当然有些公司的流程可能会不一样,所以还是要自己去经历。

❺ IT人员面试有什么技巧

1、稳定自己的情绪,沉着而理智
有时面试时,考官会冷不防地提出一个应试者意想不到的问题,目的是想试试应试者的应变能力和处事能力。这时,你需要的是稳定情绪,千万不可乱了方寸。
2、留足进退的余地,随机而应变
面试当中,对那些需要从几个方面来加以阐述,或者"圈套"式的问题,应试者要注意运用灵活的语言表达技巧,不要一开始就把话讲死。否则,很容易将自己置于尴尬境地或陷入"圈套"之中。
3、考虑问题周到 准备充分
在面试中,有时考官提的问题并没有什么标准答案,这就要求应试者答题之前要尽可能考虑得周到一些,以免使自己陷于被动。面试在某种程度上就是一种斗智,你必须圆好自已的说词,方能滴水不漏。
4、话不能说得太死,要给自己留余地
面试当中,对那些需要从几个方面来加以阐述,或者“圈套”式的问题,你要注意运用灵活的语言表达技巧,不要一开始就把话讲死。否则,很容易将自己置于尴尬境地或陷入“圈套”之中。

❻ 对于IT这行业,请问面试时大概会提哪些问题会有考试吗比如应聘前端开发工程师

对于你的这个问题,在it行业,我也面试过不少人,我觉得我还是有资格回答一下。
请你自我介绍一下自己好吗?
回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答每个问题之后都说一句“谢谢”,企业喜欢有礼貌的求职者。
除了这个问题,其他这些常识性问题你也需要注意:
一、守时,迟到乃面试第一大忌
守时本就是诚信的一部分。另外,作为一个求职者,姿态不要放得太高,毕竟你是想加入别人的公司,迟到会给人一种不重视的感觉,企业不希望面试的成本用在不重视的人身上。
二、穿衣搭配,符合公司形象
我曾经作为HR参加过公司的一次面试,第一个进来的面试者因为衣服扣错了扣子,我已经给他打上了做事不认真细心和随意地标签,后面表现的再好,我都不会有兴趣了解。穿着符合公司形象很重要,去互联网公司就穿互联网元素的衣服,面试销售,你得穿正装,这些最基本的会为你加不少的印象分。
三、言语得当,有礼大方
见到面试官你得主动问好,这是最基本的尊重,也是有礼貌的体现。说话大方自信,语言流畅,能做到言简意赅思路清晰当然是最好的。切忌打断别人说话,不要觉得你口若悬河,当面试官打断你说话,那你也就游戏结束了。
四、行为得体,展现气质
进门之前先敲门,得到指示再入座,这些简单的常识却不是每个面试者都能够做到。一个人的行为反映他的气质,一个腰都直不起来的求职者,你说会不会影响公司的形象?站立笔直,双手自然。入座以椅子的三分之二为宜双手放于膝盖,身体微微前倾,不要给人以蹲茶馆的感觉。
做到以上几点,“面”这一关基本就不会有太大问题。当然,表达能力是需要长期的锻炼而非一朝一夕,这就看你平时的积累了。下面再说“试”的问题。

何为“试”就是看看你是否能胜任公司的工作,包括你对企业以及自身的认知,其次就是对知识技能的掌握程度。希望以下几点能给你一些帮助。
一、知己知彼,百战不殆
面试前,对所要去的企业做一个大致的了解,包括企业规模;企业文化;主营业务以及目前状况。另外,你还需要了解公司对你面试岗位的要求以及特殊需求准备应对方案,证明你确实能够胜任这个岗位。
二、有自己的职业规划
企业一般都会关注职业规划这个问题,综合考虑稳定性等因素,要有自己的展望同时也要让公司看到你至少短时间内(两年)的稳定性。公司培养人才是不容易的,自然不会希望人才的流失。
三、知识技能的系统性复习
俗话说“有豆子,你要能倒出来”,知识技能也是如此,别人问你或让你实际操作时你做不出来那别人只能认为你不会。面试前做一个系统性复习和知识梳理就尤为重要了。
四、机会是留给有准备的人
这里所说的准备不仅包括面试服装,简历,以及知识技能的准备,小到一支笔一个笔记本你都得自己准备。抛开面试需要不说,有准备的人会给人一种很有条理的感觉。
IT属于技术岗,也会准备一些技术面试,一般都是由技术总监根据你的简历进行提问或者准备相关试卷,曾遇到UI面试,面试官提出诉求由面试者进行设计,建议做好充足的准备

❼ 如何做好IT类的技术面试

尽可能清楚和了解所面试单位的一切,尽量用对方的用词风格,来为自己量身定做一套面试答案,尝试对所要被问到的问题和答案进行一次预演。平时的积累还是要多一些,最起码回答问题(打马虎眼的时候)有话可说。 既然想在高端领域里去寻求发展,还是真才实学的好一些。另外每个人学习经历,成长经历不一样。在每份工作中加的技能点也不一样,很难找到和你业务一致的人。

❽ IT面试技巧:面试常见的几个问题

IT技术岗位面试常见问题包括以下几类问题及回答技巧:
Q1: 挑一个应聘者觉得做的最好的项目讲一下。
最好事先把简历上面写的项目或者课程设计过一篇,拿张纸写一写,尽量把以前做这个项目的时候承担的任务、角色、遇到的问题用最简练的语言说出来。同时,处理这个问题时不同的企业可以选择不同的项目来回答。如果你没有项目经验,可以把以前自己做过的作品或实验拿出来讲。要思路清晰,然后重点突出对项目的贡献以及其它方面的能力。
Q2:应聘者在项目中遇到的最有挑战性的问题是什么?
要把之前碰到过的有挑战性的问题以及如何解决的回想一下,首先精简的描述问题,然后重点在你是如何处理这个问题的。
Q3:从项目中得到的最大收获是什么?
这个问题比较好回答,答案也可以很发散,比如:技术水平有了很大的提高;通过解决项目中出现的各种bug,解决问题的能力有了很大的提升;通过几个人协同完成一个项目,增强了团队合作精神等等。
Q4:挑一个写程序中遇到的bug以及如何解决的讲一下。
这个问题和Q2有点像,但是限制性小了一点。其实程序中遇到的bug肯定很多很多,但是在没准备的情况加上面试的紧张下,可能会大脑空白,思路混乱。所以需要事先准备一下。
Q5:项目中用的最多的语言是什么? 或者最擅长的语言是什么?
这个问题出现的概率也是相当之高,回答也要谨慎,要根据应聘的职位灵活回答。假如申请的职位要求C/C++,那千万不能只说C,如果你确实对C++不是很熟悉,那么可以换一个说法,比如C++也用,但是用的少,然后举几个例子证明你的学习能力确实强。总之不要谦虚也不要撒谎。
Q6:如果遇到不同意见,如何处理?
这个问题面试官也非常喜欢问,主要考察你的团队合作精神,是否有包容心接纳不同的意见,以及如何处理与他人的冲突。

❾ 如何招聘IT行业技术人员

1、工作经验:非常重要 是否有大公司的工作经验:判断是否能很好的适应大公司的一些制度及工作方式; 是否稳定:看在一家公司的最长的工作时间,至少有两年以上的经历 技术能力:是否有和公司目前用到的技术相匹配的技术水平,是否有实践经验。 业务知识:是否有和公司相匹配的业务知识,是否有实践经验。(尤其是一些业务比较复杂的公司,这点很重要。) 工作年限:看在这一行业中,用这些技术工作了几年。 2、人:主要是看这个人是否能很好的融入团队,如果不能融入团队的话,技术再好也不要;二是看这个人是否好管理,是否能认真做项目。 3、学习能力: 学习新技术的能力,通过面试者对某些问题的理解,及学习方法来考察。 4、学历:对于技术人员来说,三年以下工作经验的人,还是需要看学历的。因为好的学校出来的人掌握新技术确实是挺快的。三年以上的就可以放宽政策了。 5、简历:写简历也挺重要的。 明确列出在几家公司干过; 明确列出做过哪些项目,充当什么角色,用到了哪些技术; 明确列出每项技术的使用时间; 明确列出参加过哪些技术的培训或研究; 问:人力资源部如何对技术岗位人员进行面试?提问哪些问题较为合适? 答: 对技术岗位,尤其是你不了解的岗位,大部分我们会找专业的技术管理者来面试。但是对面试者的综合素质及发展前景,需要你来判断。如果是有工作经验的就很好考核了。 1、请他描述他所从事工作的职责及内容,与你想招聘岗位相比较。 2、请他阐述他以前所从事工作中最自豪的一件事是什么?原因?用来考察他的价值观、责任感及敬业程度,并通过他言语的描述来判断他的发展方向。 3、做技术的人一定要心胸开阔,思域广阔,因此通过他对待遇、合同等是否斤斤计较来判断。 一、熟知本岗位的工作职责与任职资格; 二、清楚本岗位三个核心的胜任素质能力; 三、HR必须熟悉本岗位的工作日常的工作内容,对候选人的工作的虚实进行核实,了解原来的工作情况; 四、工作稳定性--看应聘过往的工作跳糟频繁程度、求职意向等。 技术岗位的技术力量还是以用人单位为准,但HR要了解基本的技术流程与工作内容。还有一些行业内的专用名字,逻辑方法。基本能测试出候选人合不合适本岗位。

❿ IT面试经验:程序员面试什么最重要

程序员面试一直是社区乐于讨论的热门话题。我自己从06年实习以来,先后经历了4家软件公司,全部是外企,其中有世界500强的通信企业,有从事期权期货交易的欧洲中等规模的金融公司,也有为大型汽车制造商开发Android智能汽车的新兴公司。跨入IT行业以来,我在求职过程中经历过多次面试,最近两年也有过多次面试别人的经验。我感觉现在到了对这个问题发表自己看法的时候,这篇文章是我站在面试官角度对于程序员面试问题的一个阶段性反思和经验总结。
目标
相信和不少朋友一样,有了几年工作经验成为Senior后就开始了面试别人的经历。我在最初这个阶段只是按照自己的想象把”找到基础好的程序员“,”找到算法能力优秀的程序员“,”找到有Android开发经验的程序员“等作为面试的目标。但是,实际的经历告诉我,尤其是按“基础好”,“算法好”这些目标招到的人最终效果并不好。比如,有的面试者基础知识和算法掌握情况不错,进程、线程、内存等概念清晰,基本的Hash,二叉树,快速排序等数据结构和算法也比较熟悉,但是进公司后在实际工作中表现得很糟糕。后来,我才发现原来是我的面试目标出了问题,我原先的面试方法更像是大学的算法或操作系统期末考试,按照这种方法让许多并不合适的人通过了面试,同时也可能错过了许多合适的人。
后来,我的反思是,从公司的角度讲,面试的根本目的是找到“能够干好工作”的人,而“高学历”,“算法好”,“基础好”,“有经验”这些都是表象而不是根本,它们并不能直接和“工作好”划等号。
方法
目标明确了,但接下来的问题是假设面试者是一个黑盒系统,“工作好”不是直接可观测变量,你所能直接观测的变量是基础、算法、经验、学历、性格、谈吐、年龄等等。所以,实际上,你只能从“基础好”,“算法好”等可以直接观测的量去推测“工作好”的概率,这就是一个在“X好“条件下”工作好“的条件概率问题:P(工作好 | X好)。
根据这个模型,面试所应该考察哪些方面就很明显了,那就是选择那种最具有区分性的方面来考察。比如,考察面试者的体型特征没有太大意义,因为P(工作好|高),P(工作好|矮),P(工作好|胖),P(工作好|瘦)的概率都差不多;所以,体型特征不具有区分性,这不是面试所应该关注的内容。
面试官应当结合职位的要求明确哪些因素具有比较好的区分性。比如,如果要招一名技术门槛比较高的3D游戏引擎开发工程师,面试者A具有3D游戏引擎开发的经验,但是在基础知识和算法面试方面表现一般;面试者B相反,基础知识和算法面试表现很好,但没有游戏开发经验,而你只能选择其一。你选谁呢?其实,这就是两个条件概率问题P(工作好|经验好,基础一般,算法一般)和P(工作好|没经验,基础好,算法好)。这个问题就留给面试官来判断了,就我个人而言,对于技术门槛较高需要技术积累的职位,经验更加说明问题,因此,我更倾向于面试者A。
下面,我再结合自己的经验谈谈对面试中常见方面的看法。
算法
算法是Google和MS等大公司面试所重点考察的内容。我个人很喜欢算法,曾经参加ACM/ICPC拿过北京赛区的13名。但是,就个人经验来看,我所接触过的绝大多数开发职位而言,算法都不适合作为考察面试者优劣的主要因素。对于普通的非算法性开发职位,考察面试者的算法就相当于考察他打乒乓球好不好一样,与目标“工作好”的相关性太低。就我个人的经验来看,差不多P(工作好|算法好)=50%,也就是算法面试没有太大的区分性。
甚至,还有一种很不好的情况特别多地出现在算法好的面试者身上,我称之为“只磨刀,不砍柴”。什么意思呢?有类人只对什么A*算法,异步编程,JVM类加载机制这种纯技术问题感兴趣,对实现用户需求毫无兴趣。这类人看起来有一定的技术能力,但是对公司来讲贡献十分有限,甚至不如技术一般但认真负责的人。所以,一旦遇到面试者算法好,我就特别留意考察会不会是这种“只磨刀,不砍柴”的人。
另外,虽然我个人不了解Google和MS,但我对于其特别重视考察算法能力的面试策略是持怀疑态度的。即使在这样的世界级大公司,算法虽然重要,但可以想象在项目实施过程所遇到的各种各样问题中,算法问题绝大多数时候不会是主要瓶颈,没有到那种需要每个人都是算法高手的情况。实际上,绝大多数项目真正难点并不是一两个算法瓶颈,甚至也不是单点的技术瓶颈,而是系统性的组织、协调、设计、开发问题,有大量的看起来不是那么有技术含量的脏活累活,也有许多问题是由于信息不足,并不是技术能力强就能克服这些困难。一个团队最好优势互补,有人算法强,有人业务分析能力强,有人擅长后端服务,有人擅长前端界面,有人聪明,有人踏实,这是最好的。如果按照“算法好”的单一标准选材,必定会把许多优秀的人才拒之门外。
基础
基础面试是指考察诸如指针使用、进程线程概念等基础知识的面试,十分类似于大学期末考试题。我曾经以为基础面试十分重要,但是现在不这么看了。在工作中基础的确是重要的,但是在面试过程中,它必须具有区分性才有意义,也就是说P(工作好|基础好)的概率要高,那么考察指针使用,进程线程区别这样的基础题目才有它的意义。我的实际经验是,基础面试并不具有很好的区分性,和算法一样, 差不多P(工作好|基础好) = 50%。同时,基础面试是最容易准备的,中国人有长期的应试教育经验,要准备几个把玩指针题目太容易了。
我曾经遇到过这样的面试者,他的C语言基础和编译、链接等原理掌握得非常好,给我留下了深刻的印象,我给的面试结论是:知识面不宽,只会C语言,但基础很扎实,建议录用。后来的事情证明了那个结论的前半部分是对的,但是”建议录用“错了。他在实际工作中表现得一塌糊涂,不理解需求,不理解整体架构;同时,上班时间不是花在项目上,而是花在阅读诸如《程序员的自我修养》之类的书籍上。最后,这位同事由于长期“不出活”离开了公司。
基础不是不重要,而是“基础好”不足以说明面试者能干好工作,因为基础是属于局部性知识,而实际工作需要综合性能力,二者有天壤之别。C语言、操作系统能考高分,但是不会写程序的人在大学我们还见得少吗? 软件开发就像盖房子,综合能力是设计和搭骨架,基础知识是码砖。张小龙原先Foxmail是Delphi开发的,他它不懂C#,你如果要招聘一个开发.NET Email客户端的人,你考察他对CLR掌握得好不好有意义吗? 让张小龙来开发一个C#版的Foxmail真的会有困难吗? 你招一个精通C#但没有Email客户端开发经验的人来真的比张小龙靠谱吗?
我说基础知识不重要,和古人说的“不积洼步无以至千里”是不是矛盾呢?不矛盾!“洼步”与“千里”是一种可累加关系,但再多的“基础知识”都累加不成“综合能力”。学习软件开发要像持续集成一样,一开始就是一个完整的系统,虽然规模不大,问题很多,但它麻雀虽小五脏俱全,从小系统到大系统,从简单系统到复杂系统逐步演化。
所以,基础好本身不足以说明太多的问题,必须进一步考察综合能力。对于基础面试表现不好的面试者,如果时间允许也要进一步考察,有的面试者其实是有能力的,只是没有进行充分的准备。最理想的状态当然是基础和综合能力俱佳,若不能兼顾,应当综合能力优先。
经验
这里所说的经验不是通过工作了多少年来衡量的,而主要是指面试者的经历,比如,是否完整地实现过一个软件,或作为主要开发者完成过一个项目。经验的重要性在于它能说明一个人的综合能力。从项目的性质、规模和难度,面试官就可以大致判断出面试者的综合能力。如果一个面试者一直在大公司负责一个小模块的开发维护,那么基本可以判断他不具备独立或作为主要开发者承担一个项目的能力,只适合在另一家大公司做类似的事情。对于门槛较高需要长期技术积累的职位,相关经验更显得尤为重要,比如,Linux内核开发,JVM开发,游戏引擎开发,数据库实现,高级UX等。对于这类职位,没有经验的面试者即使综合素质不错也是需要长时间的学习和积累才能胜任。所以,基本上如果确定了你的职位属于此类,那么相关经验毫无疑问应该成为首选因素,换句话说,P(工作好 | 相关经验好)的概率是非常高的。
通过项目经验判断面试者的优劣比通过基础和算法测试更加靠谱,所以,面试过程中面试官应该花比较多的时间听面试者介绍项目经验,并进行深入地探讨交流,了解面试者的知识面、思维能力、表达能力等。同时,可以结合项目提一些基础知识和算法的问题,比如,如果面试者做过C++相关的项目,那就可以问他如何进行内存管理?是否熟悉智能指针?如果面试者的回答不能令人满意,那么就基本上可以判断他的项目做得不是很好。
要注意的是,经验也是一个多维度的事物。比如,C++股票交易中间件系统,这就涉及(C++,中间件,股票) 3个维度。假如面试者A做过C++股票交易客户端,面试者B做过C的股票交易中间件。从语言角度看,A最匹配,从项目性质看,B最匹配,你如何选择?这就是在多个维度中,哪个维度更重要的问题,就这个例子而言,我个人更倾向于B,因为我认为中间件开发经验是主要矛盾,而从C切换到C++并不是问题。所以,面试官需要判断哪一种经验是主要的,而哪一种经验是次要的。比如,我们招聘Android应用开发,这个职位的Android技术门槛并不高,它的真正难点在于做出好的用户体验(UX)。所以,如果一个面试者没有Android的经验我们是可以接受的,但是我希望他在UX方面有经验,至少做过其他平台的移动应用开发。
性格
现在,我来谈我认为最重要的因素:性格。这可能是许多初为面试官的朋友所难以想象的,怎么会是性格最重要呢?说实话,当我意识到这一点时,我自己也很惊讶!说白了,还是 P(工作好|性格好)的概率最高啊。我的实际经验是,如果一个人的性格好,他能把工作做好的可能性是最高的,性格好远比基础好、算法好要靠谱。
一个人如果技术上有缺陷,经验上有不足,但性格好,在团队中是很容易由其他人来补位的,他自己也很容易逐渐补起来;相反,如果一个人的性格不好,所有的技术优势经验优势都发挥不出来,甚至还会起到负作用,而且性格缺点很难改变。我一直谈到实际工作所需要的是综合性的能力,这种综合能力的发挥中性格是至关重要的。项目中不止会遇到技术问题,要涉及沟通、协调,不同的人不同的部门既有合作又有磨擦,如何处理这些事情都需要一个良好的性格。可以说,在开发团队里让你与众不同的不是你从哪个学校毕业,也不是你过去的经验,而是你的性格。
当然,性格是一个复杂的东西,它包含了很多的方面,并非所有方面都是程序员面试所需要关注的。我的经验是可以重点考察这些方面:
1) 态度积极还是消极。有的面试者在谈吐中就会自然给你一种积极上进的感觉,或者你可以在他的经历中发现他积极的因素,这些都不是太难看出来的。相反,有的面试者你能明显感觉到他的消极情绪。积极性在工作中是十分重要的,积极的人能给团队带来朝气,也更易于合作。基本上,如果确定面试者属于态度积极的,他通过我这一关的可能性就会大大增加;相反,如果确定属于态度消极的,即使技术能力不错我也会十分谨慎。
2) IQ。我的经验是,总体来看,聪明的人在工作中的表现更为优秀。在面试中要考察一个人是否聪明并不一定要像Google和MS那样找些专门测试IQ的智力题,其实,你只需要看他讨论问题是不是很有逻辑性,思考和说话是不是反应敏捷就可以做出大致的判断。另外,眼睛是人心灵的窗户,一个人聪明与否,眼睛是会说话的。不过,聪明也不完全是优点,比如,当公司或项目遇到困难时,往往是聪明人先跑掉了,坚守的往往是IQ一般的人。
3) 语言表达能力。语言表达能力也是程序员十分重要的一项素质,它关系到项目中的沟通是否顺畅。面试官可以看看面试者能否用简明的语言介绍清楚曾经做过的项目,能否抓住要点,能否考虑到听者的相关背景。一般来讲,语言表达能力强的人综合能力都不会太差。
4) 是否具有用户意识。有人说程序员是做研发的,哪来什么用户?只有销售、市场人员才会和用户打交道。其实,这是完完全全的错误认识。你写一个模块,甚至一个API,只要有别人用,他就是你的用户。有的程序员设计一个模块或是一个软件总是习惯于从使用者的角度来考虑,尽量地方便使用者,这就是一种良好的用户意识。具有良好的用户意识的人更能考虑别人的感受和整体的需要,而不是单纯地从自己和局部来思考问题。当面试者谈及过去的项目经验时,面试官可以常常站在用户的角度对其进行提问,从这个过程中观察其是否具有良好的用户意识。
5) 如何应对质疑和压力。面试官应该对面试者的回答以及以往项目进行合理的质疑,看看他如何应对。曾经有一位面试者谈到做游戏登录服务器的经历,我就问:“如果登录服务器挂了,怎么办呢”?他说原先虽然没有考虑这个问题,但是可以怎么怎么改进。其实,大家都理解项目中有各种不完美,这里面原因很多,只要面对质疑和压力能从容应对努力往好的方向思考解决就可以了,不需要掩饰缺陷,更不应该有情绪。我遇到过有的面试者,一旦你对其项目提出质疑,他马上产生反抗情绪,或不高兴,或不承认有问题,这很容易一下子看出来他在工作中容不得质疑和批评,这种人要想合作就很困难。
6) 个性特点。许多面试者喜欢在简历上写“精通C++/Linux“,这些字眼看得人麻木,如果有人写”喜欢C++/Linux“,我就会有一种眼前一亮的感觉。“精通”是没有感情色彩的叙述,而“喜欢”包含了面试者的个性,我更愿意看到面试者的个性。我相信对某样东西真正的热情远比你当前对它的掌握程度更为重要。其实,N年的经历告诉我们,同一个班的同学,同一个项目组的同事,虽然每天所学的知识,所接触的工作都是相同的,但其实每个人的成绩和表现差异是十分明显的。那么,到底本质的差异是什么呢?其实,就是每个人的个性。是个性使得有的人业余时间去打球,有的人业余时间去看书,有的人喜欢Linux,有的人喜欢Mac。一个人在团队中扮演的角色也和他的个性有很大的关系。面试官应该引导面试者展现自己的个性,并判断其是否有益于团队。
总结
最后总结起来,我的经验是: 1) 面试官的目标是找到”工作好“的人,一定要围绕这个目标来进行面试,如果把面试当成了算法或操作系统期末考试这就走入了误区;2) 面试过程是通过学历、性格、基础、经验、算法等可以测试的因素去综合判断面试者“工作好”的概率;3) 在各种因素中,性格 > 经验 > 基础 > 算法。性格是最重要的,如果性格不好,所有技术能力都会大打折扣,而且技术缺陷容易弥补,性格缺陷很难改变;经验体现了一个人的综合能力,你可以从面试者过去的经历中判断他能从事哪种工作,不能从事哪种工作;基础和算法则主要起到辅助参考的作用,基础好的程序员一般适应性比较强,学新技术更快,但是切忌单纯从基础来判断一个人的能力。

阅读全文

与如何面试it技术人员相关的资料

热点内容
ai技术合成肌肉男跳舞怎么拍 浏览:382
英雄联盟数据从哪个app看 浏览:755
工作代理安排如何填写 浏览:228
考研代理一个月能挣多少钱 浏览:729
福建哪个县农业技术好 浏览:145
强迫交易一年了还没判刑为什么 浏览:953
开个什么加盟店代理 浏览:426
臻御生态交易手续费多少 浏览:338
不让进行法律程序怎么办 浏览:884
人工数据线地线怎么焊接 浏览:783
可以学习的技术工作有哪些 浏览:132
产品效果如何讨论 浏览:156
数据抠鼻软件哪个好用 浏览:827
重庆的鲜花批发市场有哪些 浏览:997
酷炫产品短片怎么拍 浏览:754
怎么看自己的交易额 浏览:106
这是什么技术形态 浏览:531
郑州内裤批发市场哪里好 浏览:816
汽车违章扣分多久才能收到信息 浏览:444
冷冻市场的鸡爪大概多少钱一箱 浏览:242