程序员面试指南

时间:2023-02-12 19:03:25

声明:文章转载至http://blog.csdn.net/wan23333/article/details/78847204


一、概述

面试,难还是不难?取决于面试者的底蕴(气场+技能)、心态和认知及沟通技巧。面试其实可以理解为一场聊天和谈判,在这过程中有心理、思想上的碰撞和博弈。其实你只需要搞清楚一个逻辑:“面试官为什么会这样问?他希望听到什么答案?”然后针对性的准备和回答就行了,无他。

“你的优势是什么?”多年前我觉得这个问题很无聊,现在我经常这么问面试者,因为我真的想知道他的优势是什么,能给公司带来什么。最终能和面试官聊的开心愉快投缘的叫面霸。反之叫面瘫。

我带过的学生里找工作时有个有趣的现象,经常是懂沟通的人先找到工作,而不是技术最牛的那个。

面霸是可以练成的。我在这篇文章里尝试从两个方面对面试进行梳理,一个是流程,一个是细节。 流程可以让我们以上帝视角看问题,细节呢?细节决定成败。在面试这件事上,细节做的越细越好。

二、面试流程

面试就像一场战役,要打赢战役应该做如下功课,才能做到胸有成竹。

1. 面试前

战前需要充分准备,要研究对手,所谓知己知彼,百战不殆。要准备好足够的弹药。

2. 面试中

战斗时要保持正念、精神焕发,昂首挺胸,眼神坚定、谦虚谨慎。

3. 面试后

因为我们可能还要打多场战役,所以针对每次战役都要及时进行反思,总结经验教训,用现在流行的说法叫“复盘”。这样才会有进步,下次作战也会更有自信和把握。

三、单独说一个问题:气场

1. 什么是气场

我讲课的时候曾经开玩笑地跟同学们说:“我现在可以扫描大家几分钟,观察一下就能大概知道将来谁能顺利找到工作,谁找工作会有些困难,大家信不信?” 同学们都笑了,表示不信 。

当然这只是一个玩笑,不可能那么精确。其实我想表达的意思是,决定面试是否成功的第一要素不是华丽的简历也不是一些小技巧。而是你内在散发出来的气质。

“如今你的气质里,藏着你走过的路,读过的书和爱过的人。” ——《卡萨布兰卡》

就像武侠小说里的主人公,内力充沛之后哪怕一些招式不熟也能轻松战胜对手。你的气场是优雅的自信的积极的,还是灰暗的自卑的,面试官都会感受到,从而对你产生初步判断和定义。这个理论一点都不玄妙,我自己在面试别人的时候,有很多时候第一印象加上简单的几句对谈,就可能基本决定了这个人的去留。

2. 如何提升气场?

我们知道这个道理后,应该如何做呢?气场不是一朝一夕能练就的,有几个方法大家可以在平时多尝试。

  • 多读书, 所谓腹有诗书气自华

  • 多运动,保持健康的身心

  • 多和人沟通,懂社交规则

  • 学会冥想和保持正念(不玄幻)

    可以做个小实验,冥想十分钟,重新照一下镜子,看气质是否有点沉淀下来的感觉。

四、面试前准备

1. 简历的几个注意事项

因为篇幅原因,简历的详细写法这里就不讲了。只讲 3 点需要注意的问题。

不要给自己挖坑

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

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

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

简历要有辨识度

通常一个职位可能收到的简历比较多,这时候怎么使你的简历能在众多对手中脱颖而出,获得面试邀约呢?要有“辨识度”,最好达到的效果是,面试官觉得看完这个简历,觉得很想见见这个人。 拿自我评价部分来举例吧,下面的案例大家自己看下,如果你是面试官,想邀请谁面谈呢? 括号里是我的的意见,大家也可以把自己想象成面试官,自己琢磨一下。

案例 5 的同学平时就很有想法,找工作很顺利,现在发展的很好。

案例 1(一般):

程序员面试指南

案例 2(一般):

程序员面试指南

案例 3(良):

程序员面试指南

案例 4(优):

程序员面试指南

案例 5(不走寻常路):

程序员面试指南

最好找人帮你 Review 一下简历

因为简历就像自己写的程序,自己很难发现 bug,让别人以面试官的视角 review 一下,会发现一些意想不到的问题。找老师、同学、朋友都可以,不要怕麻烦。

2. 找工作的主要网站和渠道

  • 智联招聘/51job/英才网(传统)

  • 拉钩(相对较新)

  • 猎聘网(高级人才)

  • v2ex(酷工作)

  • BOSS 直聘(直接和 BOSS 聊)

  • 相关的社群

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

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

4. 小心传销陷阱

找工作时一定要注意传销陷阱。

前段时间网上爆出的“求职少年李文星误入传销组织致死事件“,使我很惊讶,传销的竟然都能这么专业的去骗程序员了,一般的专业技术沟通都看不出破绽。

有两个简单应对办法:

  • 如果你存疑最好提前跟你的朋友商量一下,还有随时更新定位。

  • 面试前和对方沟通清楚面试的准确地点直接过去,中间有任何变化都可能有问题。

请大家特别注意一个传销重灾区:天津静海。看到静海二字请绕行!

5. 小心招转陷阱

所谓招转就是利用招聘转化成培训。你去面试后公司说你的能力暂时不符合条件,交钱培训后就可以了。这种也不是正经的公司。

6. 了解公司的相关情况

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

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

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

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

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

  • 专业知识准备

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

  • 项目经验

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

  • 了解热门前沿技术

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

8. 着装

IT 男生不要穿圆领的衬衣,起码要有领子;女生简单大方,要化点淡妆以示尊重。四个字:干净整齐。我遇到过夏天穿拖鞋来面试的,肯定一秒就 PASS 了。

五、面试中

1. 注意礼节:礼多人不怪

以前从事对日软件开发的时候,我们会经常培训面试的礼仪问题。因为日本人比较注重这些。我记得当时有几个小环节,比如进入面试官房间前要先敲门,进入房间后没有得到”请坐“的允许前,要站立等待等等。

其实在国内面试,这些细节也很重要,不过通常的场景是:面试者会先被安排在一个屋里等待,面试者后来进入。当面试官进入的时候,面试者应该站起来并做基本的示意。会给面试官一种有礼貌的感觉。这些细节要多加留意。

2. 用递进问题定位你的技术能力

面试官问的技术问题通常会有一定的规律,就是按照由简单到复杂的顺序来进行提问。比如他关注 JavaScipt 这个技术,可能先问你 JS 中有哪些数据类型、JS 中如何实现面向对象,有什么应用场景这些简单问题?这些如果你能顺利回答上来,他会对你的基本功有了认可。之后会继续问你闭包、原型链之类的高阶知识,看看你还能不能回答上来。他会根据你的回答情况给你的技术能力做定位。

3. 正确的面试态度

面试这件事是一个双向选择的过程,你付出劳动,企业付你劳动薪酬,所以这是一种平等的关系。这种平等关系在面试中的体现也很重要。

  • 误区 1:过于自卑性型。感觉找个工作不容易啊,给我个工作就行,这样气势上容易落到下风。这时候面试官会感觉到,从而进一步在气势上压住你,不利于双方顺畅平等的交流。

  • 误区 2:过于亢奋型,觉得自己什么都会,挺牛,比面试官都厉害,这样也不对。

  • 正确姿势:不卑不亢、从容面对、真诚回答最好。

4. 保持高度自信

我有时会直接问面试者这样一个问题:你认为自己的技术能力怎么样?有的人直接说:我感觉自己的技术是中等水平。也有的说:经过这几年的积累和成长,我现在对自己的技术很自信,算是一个中高级开发者,我感觉可以胜任各种开发任务。两者回答高下立判。

再来看另外一个场景,前段时间我做的一次面试,前面的事情都聊的差不多了,在准备最后敲定的时候,面试者冒出一句:这个事情我去做会不会有什么问题?这句话让我对他的信心产生动摇,从而导致最终没有录用他。

其实面试官想听的很简单:“这个事交给我没有问题!”你自己都不自信怎么让面试官相信你能胜任这份工作呢?

5. 告别:别忘了加微信

微信是移动互联网时代的个人名片,结束时最好互相加一下微信并备注好。比如我会这样备注:H5 讲师 北京 张三。面试者可以这样备注:58 同城 研发部经理 李四。

这样可以和面试官保持后续的联络,是个很重要的动作。即使没能面试成功,可能某一天发生链接成为你的人脉也说不定。

六、几个常见面试问题及简单分析

1. 自我介绍

面试官通常会让先你进行一下自我介绍以便对你有个快速的认识。

自我介绍的时间最好控制在 2-3 分钟左右,太短了说不明白,太长的话可能面试官也没有耐心听。所以最好是言简意赅,把一些关键信息表达清楚就可以,其他一些细节信息可以在之后跟面试官的对谈中慢慢展开。

不要只回答姓名、年龄、爱好、工作经验。面试官最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等。

2. 离职原因

回答这个问题时一定要小心,就算在前一个工作受到再大的委屈,对公司有多少的怨言,都千万不要表现出来,尤其要避免对公司本身主管的批评,避免面试官的负面印象。建议此时最好的回答方式是将问题归咎在自己身上,例如觉得工作没有学习发展的空间,自己想在面试工作的相关产业中多加学习,或是前一份工作与自己的生涯规划不合等等,回答的答案最好是积极正面的。

3. 你对加班的看法

这个问题并不是非要让你加班,只是想测试你是否愿意为公司奉献。参考回答:如果是工作需要我会义不容辞加班,可以全身心的投入工作。同时,我也会提高工作效率,减少不必要的加班。

4. 你还有什么问题要问我的吗?

这个问题看上去可有可无,其实很关键,企业不喜欢说“没问题”的人,因为其很注重员工的个性和创新能力。最好不要问个人福利、五险一金的之类的问题。 可以这样问:

  • 贵公司对新入公司的员工有没有什么培训项目?

  • 贵公司的晋升机制是什么样的?

  • 入职后参与的项目的情况了解一下?

企业将很欢迎,因为体现出你对学习的热情和对公司的忠诚度以及你的上进心。

七、面试后的复盘

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

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

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

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

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

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

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

3. 其他心得感受

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

  • 2015-10-11 IBM java 开发 北京 #面试#

  • 2017-12-11 埃森哲 iOS 技术 Leader 郑州 #面试#

整个面试流程可以用 PDCA 循环理论来进行检查和改进。