我觉得可能很多在找工作的同学都走进了一个怪圈,一直想知道我究竟要会哪些工具,懂哪些知识(当然这些知识的获取途径很多:读书、教学视频、泡“前端范”技术社区等),才能拿到好的 offer。我不敢说这是一个误区,但我想谈谈我的一些看法,可能不尽正确,也算提供另外一种思路吧。
同样知道和不知道题主所说的这些知识的人,得到的大公司的评价可能差得非常多。我想说的不是面试的运气,而是如果有人觉得大公司面试面的是你会不会这个工具那个工具,那么这么想的人的认知本身可能就和大公司的期望存在不小的差距。你可以完全不会 less,如果你把 sass 玩得很溜。你可以把 http 状态码背得烂熟于胸,但这未必就给你加分多少,因为完全可能是面试前五分钟现记的。没错,掌握的知识点、会的工具多,总是加分项,但除非你是天才,大多数人的精力总是有限的。所以面试官问这些,并不是担心你进来来不及学某某工具(大公司一般都等得起,前提是你是值得等的人),而是因为结果是很好的展现过程的手段:通过你学习的成果,反推你是怎么学习的,反推你是怎样的人,从而判断是不是符合公司价值观和需要的。所以,除了这些工具,更应该关注的是自己的软实力。可能有人觉得说到软实力就很虚很装很扯,说得好像程序员只有代码是真本事一样。其实会这么想的程序员大多是对自己的软实力没自信罢了。
我不打算介绍面试时候包装自己的技巧,并不是因为我小气打算自己留着用…而是这就像谈恋爱一样,为了良好的第一印象可以选择和对方有共鸣的方面去表现,但是切忌为了争取机会而说一些和自己价值观不相符的地方。坑到公司人家大不了开除你,你本来就是几千几万分之一,坑到自己代价多大啊?我聊过的 BAT 几个老大对软实力方面都是非常看重的,事实上如果他们这都不看重,我会怀疑这个团队到底靠不靠谱。尤其是因为作为校招生,就算学校里做过什么真实的项目,跟公司的业务比起来都算不上什么经验的。所以没有实际经验可以看出能力的时候,当然就看潜力了。但这潜力一定是要落到实处的。怎么说呢?比如如果你说“你问的这些库我都知道但都没用过,因为我太忙了。不过我学习能力非常强,我进团队马上就能学会的。”如果我是面试官,我会对这样的答案非常怀疑,我比较偏结果主义者,我会怀疑,如果你真学习能力强,都学了这么久了,怎么也应该做出点什么好玩的东西了吧,至少怎么也应该学到点什么了吧。相比这样的答案,当我不会的时候,我会说明我的时间都花在学什么上面了,有哪些思考,有哪些收获,有哪些可能是和那些我没学到的库相通的或者互补的。我觉得这些背后的思考才是所谓的学习能力的佐证,而不是说“我学习能力很强的,两三天就能学会”就能有的说服力。除了学习能力,还有非常多的软实力,比如沟通能力思考能力等等。这些我就不细说了,因为一两年内似乎很难见效的,或许这更是这些软实力难能可贵的地方吧!
就我个人而言,我觉得比较好玩也没想到的事是,十几年主持晚会的经验带给我的锻炼最近非常显著也意外地让我觉得很受用。因为这种多年的锻炼,不仅仅是对口才,更多的是敢于表现自己的勇气,和善于表达自己的方式,以及永远的台上三分钟台下半年工的觉悟。这些软实力可能临时抱佛脚不太现实,但我这里是想提醒那些软实力还不错的同学,别忘记展现自己的这一面。最后,安得 offer 千万发,大庇天下软狗俱欢颜。