扫码打开虎嗅APP
本文来自微信公众号:码农黄师傅(ID:Mr-Coder-Huang),作者:黄师傅,原文标题:《面试的心态》,头图来自:视觉中国
码农劳动力市场,是一个充分竞争的市场。程序员在一家公司干到老,几乎是不可能的。程序员的职业生涯中,每隔几年换一家公司,经历几次面试,是很正常的。面试中需要注意什么问题?最近三年,我作为面试官,参加了不下200场面试。本文中我尝试换个角度,站在应聘者的立场上,谈谈应该以什么心态参加面试。
1. 对待薪酬心态
“薪酬?当然越高越好”。我觉得这个观念不对,不应该以这个心态去参加面试。企业给员工定薪酬的基本逻辑是:
(1)总体薪酬水平不能太低,要保证企业能招到并留住合适的人,以确保自己足够的竞争力。
(2)总体薪酬水平不能太高,人力成本要在企业能承受范围之内。
(3)不同级别员工之间,薪酬要有梯度差异,以此激发员工积极性。
(4)同级别员工之间要保持平衡,要让大家感觉公平。
可以看出,每个员工的薪酬,跟两个因素有关:a、级别,也就是根据你的能力水平,给你定的职级。b、企业,这个企业自身的经营水平,决定了员工总体薪酬。
你把简历给了某个企业,最后拿到了offer,那么这个企业给你的薪酬水平,就只跟一个因素相关了,就是你的能力水平。如果你要想争取更高的薪酬,就只能想办法争取让对方给你定一个更高的职级,超出你能力的职级。虽然,每个企业都有overpaid 的员工,也有不少underpaid。但是,企业的各种HR政策,都是希望减少这类情况。具体到某个人来看,如果你是overpaid,但你能力增长很快,那么问题不大。如果你做不到快速提升,那么这段工作大概率是不愉快的。
相对合适目标,争取与自己能力水平相匹配的薪酬待遇,或者争取稍高一点的薪酬, 不要追求高太多。如果薪酬比实际能力高太多,压力会比较大。
2. 选择企业
如果就想多赚点,怎么办?那就换一家公司应聘。对同一个人来说,在不同企业工作, 薪酬水平差别很大,是很正常的。公司的规模不同,业务不同,盈利能力也不同,总体薪酬水平也会不同。一个月薪3万程序员,如果失业之后送外卖,一个月只能赚6千。并不是因为你的编程技能贬值了,是因为送外卖用不到这些技能。同样是软件开发行业,有些公司的工作,跟送外卖差不多,不需要太多软件开发技能。
如果想要多赚点,怎么办?应该努力选择收入高的企业,而不是跟一家低收入企业去谈薪酬,就算你死磕到底,最后拿到了高薪酬,工作也不会很愉快。如果想要薪酬高一点,就争取进华为、阿里、字节、腾讯这些大厂。就算你水平比较菜,只要能进去,薪酬水平一定比那些每天CRUD的小公司高。如果你学历不行,普通二本,简历上项目也没什么亮点,大厂进不去。那么这就是你的努力方向,提升学历不容易,就找一些有难度、有价值的任务去做。如果现在这个公司没有这样的任务,那就换一家,找一家虽然收入不高,但是有技术含量的公司。
(写到这里,顺便提一下,我们zStorage就是这样一个项目,也许收入不高,但是工作任务的技术含量不低,有挑战。可以把这类公司作为跳板,踏踏实实干几年,学点本事,然后再跳大厂。)
如果你觉得,虽然大厂薪酬高,但是绩效考评压力大,上班时间长。你觉得能在小厂拿到高薪,才是最理想的。“钱多事少离家近”,才是最理想的,但是这种工作非常少,谁能得到,往往是命中注定的,如果你真有这个运气,也就不需要读这篇文章了。
3. 面试官的态度
面试官有两类,一类是团队主管,就是给自己团队招人。主管面试,一般目标很清晰, 自己想要什么样的人,他心里是有一个标杆的。他跟候选人交谈,就是在跟他心目中标杆做对比。不同的面试官,心里的标杆也不一样。
主管面试的时候,心态是比较矛盾的。如果自己面试的时候,看错了,把不合适的人招进来了。那么,这个人占了一个指标, 但是做事效率很低,没什么产出。人一旦进来,就能轻易辞退了。辞退一个人,要走一大堆流程,而且对团队士气也有不小打击。如果标准掌控太严格,面试很多人招不到一个,也很浪费时间。主管作为面试官,是很希望候选人通过的,但是又怕招到不合适的人。
另外一类面试官不是主管,面试只是他的一个临时任务。他一天要完成10个技术面试,面完之后就完成任务了。这类面试官,一般来说,心态比较轻松,也不怕出错。这类面试官随机性比较大,能否通过面试,跟面试官个人的喜好有很大关系,跟他当天的心情也有关系,甚至跟早餐吃什么有关,很可能他早晨喝了一杯咖啡,你就通过了,如果没喝准备这杯咖啡,你就被拒了。所以,面试能否通过,不完全跟能力有关系, 跟运气也有很大关系。
当然,人是千奇百怪的。有些人态度傲慢,甚至会当面评价候选人的优缺点,候选人会感觉很不舒服。有些人则和蔼谦逊。有些面试官能够清晰表达自己的问题,也能快速理解候选人的回答。有些面试官则不同,他甚至连问题都表达不清楚。面试官本身的能力也是参差不齐的,并不是所有面试官都合格。无论如何,他们只有一个目标, 就是判断候选人是否符合要求。应聘者不要太在乎面试官的态度,尽量情绪不要受影响, 努力听明白面试官的问题本身,争取理解他为什么问这个问题。如果没听懂,可以反问他。完整地理解问题之后,再做回答。
4. 关于简历
如果投了很多简历,但是完全没有面试机会,这就应该是简历的问题。简历要写清楚项目的目标,项目团队的规模,自己在团队里面承担什么任务。自己那部分任务完成结果如何。既要简洁,又要突出重点。
简历里面,要把自己突出业绩写清楚,但是不要过分夸大。面试的一个重要目的,就是判断应聘者简历内容是否属实。软件开发工作是实打实智力劳动,跟做数学题差不多,不懂就是不懂,装腔作势改不掉Bug。
简历还有一个作用是,给面试官圈定出题范围。你简历里面写了精通Java,面试的时候不懂,那就比较麻烦。如果你简历里面没写,如果面试官问Java的问题,你就直接跟他说我不懂,我的经验主要集中在C/C++。面试官没必要故意为难你。
另外,简历一定不要作假。简历作假被发现,问题就比较严重。例如,你觉得自己跳槽次数太多了,简历不好看,于是就抹掉了其中一次很短的工作经历,这个动作很可能导致你被公司劝退,有些公司对待诚信问题很认真。
另外简历中尽量不要抒情诗句。我看到过一个简历,个人优势一段写的是:“逢山开路,逢水搭桥。尚缺一个值得长期投入的项目”,大多数面试官看到这句话,都会比较反感。这句话的人自我感觉良好,但是在面试官看来,这个人自我定位不清楚,连自己有哪些强项都不知道,也没必要浪费时间面试。
简历要表达正确的业绩观。看到过另一个简历,把“曾经在某次高峰论坛跟倪光南同台论道”写进去,这个简历也会被大部分面试官过滤掉,不会给面试机会。跟某个名人合影,或者一同参会,并不能表明你能力很强。写上这句话,反而衬托出你没有真材实料,只能狐假虎威。
5. 应聘者的心态
我遇到过的应聘者有几类。第一类是被动型的,面试全程都很拘谨,前面三分钟自我介绍之后,然后就是面试官问什么,他就回答什么。甚至连面试官眼睛都不敢看。第二类是主动型的,从自我介绍开始,就滔滔不绝地讲,中间面试官都插不上嘴。
以上两种效果都不好。面试的目的是双方相互了解。效果最好的状态,是双方能够找到共同话题,愉快地谈起来。面试官和应聘者,都有自己的熟悉知识范围,双方的共同目标应该是找到交集,然后把话题聚焦到这个交集里。这样面试官可以充分了解面试者,可以给出准确的判断。面试者也可以通过跟面试官的交谈,判断这个团队的工作氛围如何。
面试过程中,如果遇到自己不懂的问题,就直接说不懂,尽量不要在不懂的问题花太多时间。如果某个问题你不懂,但是你试图蒙混过关,有些面试官会揪住这个问题一直问,直到你承认不懂。面试时间最长1小时,如果花了40分钟讨论这个问题,最后发现你不懂,那么想通过面试就很困难。尽量找那些你自己很懂,但是面试官似懂非懂的问题讨论,听了你的讲解之后,面试官懂了,他就会觉得你很厉害。
面试之前,要尽力准备一下。例如,你参与过的项目背景是什么?项目目标是什么?你开发的产品,针对的目标市场是什么,市场空间有多大,你们的份额有多大,以及有哪些主要竞争对手,等等。也许工作期间,你没有关心这些,但是这些问题是面试最可能问的。
另外,要准备一下跟你参与过项目相关的技术。例如,你参与过某个项目,背景是对TCP的传统拥塞算法不满意,要开发一个新的拥塞算法。那面试官可能就会问,TCP 的传统拥塞算法有哪些问题?为什么有这些问题?TCP有三个窗口:接收窗口、发送窗口、拥塞窗口,他们之间的关系是什么?既然你们对TCP传统拥塞算法不满意,那么你就应该能讲清楚这个原因。你自己的创新算法,要能够解决传统算法的问题,这个也要能讲清楚。如果你讲不清楚传统TCP算法的问题,那么可以断定,这个项目不是你主导的,你只是其中无关紧要的一个参与者。
面试过程中,讲清楚一个任务前因后果,是最重要的。至于中间过程,反而不那么重要。例如,你曾经参与过一个块存储项目,做了其中的一个条带化特性,你应该知道,那么为什么要做这个条带化特性?这个特性解决了什么问题?如果你知道怎么做条带化,知道数据块之间对应关系是什么,但是不知道为什么要做条带化,那么一定会被减分。
另外要准备的是,行业内的常识性知识。例如你在存储行业干了很多年,那么你应该知道布隆过滤器的原理是什么?LSM Tree主要流程如何?等等。如果你还不清楚,那么面试之前稍稍准备一下。
总之,面试本身也是工作的一部分,甚至比工作更重要,要认真对待。
本文来自微信公众号:码农黄师傅(ID:Mr-Coder-Huang),作者:黄师傅(zStorage首席架构师。熟悉存储、网络等技术。)