三月份对于一部分大学生来说是一个很特殊的时期,特别是对于软件方向的大二及大三学生,大家都开始着手找实习。写这篇面经主要是因为阿里前端实习群里面的小伙伴们的需要,特别是走内推线的小伙伴们。今年我应该算是群里面最早通过这个Pipeline的,所以应大家要求,做个分享。也希望对接下来一两年内找实习的学弟学妹有帮助。
我现在也是一名大三的学生。我从大二开始先后有过三次的实习经历,其中包括在一个小创业团队做开发。在阿里的时候,我做的是前端开发相关的工作。
在这一年半里面,前前后后我总共被不同公司面过13次,其中有11次是电话面试。阿里的实习生内推基本都是以电话面试的形式来进行的。
在参加面试前,你应该考虑的第一个问题是:
我琢磨过自己的简历吗?
但凡是正规的面试,面试官都会面向你的简历提问题。如果是一个认真的面试官,那么他不会放过你简历中的每一个词。因此,简历并不是在简历通过评估后就没用了的。
下面来谈谈简历中可能出现的问题。
第一个问题是吹牛。简历普遍是堆砌出来的,里面呈现的内容可能只是你所知晓的,而并非熟悉的。例如,有些搞前端的会在简历里面写上自己还是个Full Stack(所谓全栈,其实我很讨厌这个词)。
号称自己是Full Stack,代表你有成熟的后端开发能力。那么面试官就很可能抓住这一点问你一堆后端的问题。后端可能要面临的问题涉及:
- 计算机网络底层协议/分布式计算
- Linux命令
- SQL书写及调优
- 操作系统
- 并发性/多线程
- 诸如此类更多的问题
你可能觉得你很牛逼,作为一个前端而言。但是后端们,或者那些真正的Full Stack,可能并不觉得。不如,我随便问你三个问题:
- Linux当中kill命令关掉进程所用的信号叫什么名字?
- 简述Gossip协议。(分布式计算相关)
- 线程有自己的栈和堆吗?
如果你都能答上来,或许你真的可以写上自己是个小Full Stack。如果不行,那么请你记住下面这段话,企业对一个实习生的要求一般是要找学习能力强的,而不是知道得多的,更不是智商高的。实习生面试实际上是在通过你的过往经历推测你的学习能力。
每个企业对学习能力的评判标准和方式都不同。比如国企会看GPA,然而互联网企业基本不会看。
第二个问题是写太多自己做过的项目。
这是我也犯过的一个错误。项目并不是呈现得越多越好,理由有几个方面。
- 面试官会深究你的项目经历。如果你把一些自己只参与了一点点的项目也给凑进去的话,那你估计就会被问倒。
- 面试官看不过来,干脆不看了
前不久投简历给一个美国的创业公司,创始人回了一封邮件问我“Do you have any portfolio projects?”。一开始我还不太清楚portfolio project是什么意思,后来一个朋友告诉我这是featured project(具有代表性的项目)的意思。
少而精,在简历上就是美。
第三个问题是关于开源项目。写在简历上的开源项目会给自己加分,但是是在满足下列前提之一的情况下:
- 有完善的文档
- 有完善的测试用例
一个没有文档,也没有测试用例的“开源项目”,并称不上开源项目。这样的项目展示出来反而会让面试官觉得你连基础的软件工程素养都没有,那么还不如不开源。
准备好你要问面试官的问题
正规的面试环节中,到面试结束的时候,面试官都会说:“你有什么问题想要问我的吗?”
这是个给自己加分的大好机会,因为你主动问出来的问题代表你所关注的事情。如果你关注的事情很合面试官口味,可能之前面试中的一些小小的缺憾都能弥补上了。
例如,你可以问面试官,如果得到了这次实习机会,你将有机会参加什么样有趣的项目?这个问题可以表现出
- 你对对方公司非常感兴趣
- 你对自身发展很感兴趣
我相信面试官大部分都很喜欢这样的实习生。换句话说,面试官会觉得You are well engaged!
当然,提问的问题需要细心琢磨,而不是临场发挥。临场发挥很容易出问题,无论是问的问题的质量还是你的语言表达。切记一点,问的问题最好与自身发展相关,并且层次要高。特别是对于男生而言,提问的层次很重要。一个男人关心的问题决定了他的层次。
面对HR:诚实
面试将有HR面试,面对HR请务必诚实。
HR圈子里面有一个词汇叫做“背调”,全称是背景调查。他们在这个圈子里面互相之间会互通有无,有时候比你自己还了解你自己。中国的HR圈子或许没有这么极端,但是外国的HR圈子就是这么可怕。所以,如果你什么背景信息是瞎掰的,他们一般都弄得清楚,包括造假的成绩。
诚实其实很简单,就是不撒谎。最经常遇到的HR的问题是,“你现在还有在面其他公司吗”?如果有,那么就诚实地告诉他们。并且,要告诉他们你这样做的理由,让他们理解,这是你职业规划的一部分,神圣不可侵犯。
一般HR都会理解,特别是对于大学生而言,其实他们能够理解一次投两三家公司的想法。比如阿里的HR就很好,我昨天告诉了她我还在面其他公司,然后阐述了我自己的职业规划。她表示理解,并问了下大概什么时候其他公司的面试结果会出来。她告诉我她将暂时把我的Offer挂起。如果其他公司不给我Offer,那么阿里就给我Offer;如果其他公司给我Offer,那么阿里就把我拒掉。
坊间流言某动物公司的HR会要求你马上停止其他面试流程。这个现象或许真的是有,但是绝对不会只是动物公司一个。对于这样的公司,是否坦白就要看你自己的决策了。如果是我,我觉得我还是会坦白。如果她能理解,那我觉得很好;如果不理解,那我觉得我也不会想加入这家公司了。
技能:软硬兼施
硬技能是进入一家好公司的基本要求。钱买不到绝活,嘴皮子也吹不出来维持生计的能力。你必须要提前两到三个月好好准备自己的硬技能。
对于码农,什么是硬技能?代码能力、查错能力、调优能力、架构设计能力等。其中,代码能力绝对是排第一的,因此,好好准备吧。
但是除了硬技能之外,你还应该在简历和面试中突出你的软技能。
什么是软技能?沟通能力(这个从你说话就能听出来)、态度(是否积极向上、认真勤奋)、协调能力(从你的每一封邮件都能看出来)、团队协作能力(是否在项目中做过Leader)、预知能力(对行业的关注度)。
这里我就谈谈预知能力。因为对于其他的软技能,要么就是你天生的,要么就是面试前两三个月也练不出什么样子的。重点是看你怎么表现。
所谓预知能力就是我所说的对于行业的关注度。例如,HTTP/2最近正式定稿了,你关注到这条新闻了吗?作为一个有预知能力的前端,我会去联想。淘宝手机客户端是一个Hybrid应用,HTTP2的诸多特性会让Hybrid应用的开发更加容易。例如Server Push、Multiplex、Header Compression…这些都是会颠覆之前许多前端工程开发方式的东西。再例如,Server Push允许我们不用再做concat了,因此CDN技术很可能要做革新了。这些你都想到了吗?
虽然对于新技术的想法难免会有一部分是比较不现实的,但是有想法就代表你是有潜力做出卓越贡献的。
对于技术媒体的报道要广泛关注,但是千万不要仅仅是关注。遇到自己感兴趣的,就到Google上深入调研。这样做首先是对你自己的发展有好处,其次才是对面试有好处。
职业规划
学校里面经常搞职业规划座谈会,虽然我一次都没去,但是我实际上是对职业规划非常重视的,面试官也一样。职业规划其实并不复杂,但是要产出你的职业规划是很难的事情。
首先是要确定你的方向。我从大一开始就开始试探各个方向,例如Windows开发、数据库维护、后端开发,每个方向都做了一阵子。最后我停留在了前端开发上。
那么如何判断你是否在对的方向上?如果你能够在一个方向上持续地Have fun,那这就是你想要的方向。至于如何Have fun,这还是得看你自己了。我始终坚信学习是在你快乐的时候才会发生的,不快乐的时候的学习根本就不算学习。
当确定了你的方向时候,该做什么就因人而异了。我自己也依然在调整职业规划的过程中,并没有办法给出太多的建议。
总而言之,面试官会提问一些关于你职业规划的内容,对于这类问题,请务必答得精彩。
总结:热爱
说了那么多,实际上总结起来就是两个字,热爱。这个词是个烂大街的词,很多人不喜欢。但是在我二十岁的这一年里,我越来越相信这个词带给我的力量。
无论是面试,还是在工作中,展现出你的热爱,总归是没错的。