致未来的前端实习生

岁月如歌,你的人生即将翻开新的篇章,也许你需要一份展现自我的优秀简历,也许你需要一份属于自己的未来规划,也许你需要一个优秀的导师帮助你成长。淘宝前端团队有很多优秀的 FEDer,他们和你们一样富有激情和梦想,对于过去也有过徘徊和迷茫。优秀的他们用自己的激情和努力完成了学生到专业攻城师的华丽转身,成为淘宝的 FEDer、最新技术的弄潮儿、团队不可或缺的重要成员。来听听他们的经历和建议,以及 Winter 老师带来的面试官视角,希望对同学们有所帮助。

那一年,我是如何“挤”进淘宝的

简历,机会的敲门砖

出身于计算机的我,当听说 BAT 的时候,心中的兴奋无以伦比,但是真正到写简历的时候,看下各大公司对前端的要求,整个人就蒙圈了。

居然有那么多要求,需要会那么多东西!怎么办?学校都没教啊!不在茫然中爆发,就在茫然中淘汰,于是,写简历我活活写了五天,从样式调整到内容规划,从网上借鉴到自己思考,前面越写越觉得自己什么都不会,后来越写越知道自己该做点什么:什么能吸引眼球有技术含量而且立马能做,就做什么!最终长达五页的第一份简历在学长的建议之下缩成了一张简简单单干干净净的 A4 纸。嗯,程序猿就应该这样,高内聚,低耦合。(推荐:《写一份靠谱的简历》)

实习,初窥代码的世界

拿着简历去面试的过程永远都是那么紧张,那么兴奋,那么折磨和那么难忘。最开始是去参加学校组织的招聘会,打印多张简历,见到有前端岗位就投,见到能面试就面试。在大庭广众之下面试总是免不了有点紧张,有的时候会短路,有的时候可能结巴,有的时候恰好这个问题你想过或者很对口味,于是对答如流还会颇有些自豪,但是不多去尝试一下,你怎么能提高自己面试的心态呢?抱着不断面试才能深入理解市场需求的念想,我在招聘会待了很久,从人潮对比中感受到了自己的不足:我一定要好好学习,天天向上。

纸上得来终觉浅,绝知此事要躬行。要补充知识的空缺在学校的自由懒散环境下是颇有难度的,因此,在尚不了解自己要去的实习公司的情况下我决然远离学校出去实习,我相信一个陌生的环境能让我更加清醒的认识到自己的不足。后来我才知道我实习的公司是世界上屈指可数的安防大公司,而我参与开发的是它的商城官网,在实际的项目开发中我才深入接触到了几乎所有前端书籍上都会注重介绍的 Ajax,才渐渐学着把闭包、回调甚至设计模式运用到自己的代码里面来。有学习,自然有成果,程序员最大的优点就在于乐于分享,在实习的过程中我完善了自己的博客,给自己的 GitHub 仓库添加了不少“轮子”代码,算是勉强给简历美容了一下。

面试,旧世界的告白,新成长的开始

先介绍一下阿里的面试过程:内推的同学在成功入职前一般会经历大约 4 次面试。部门一般会在接到简历后的7个工作日内完成简历评估、面试等环节。关于校招的具体时间安排可以到 阿里校招官网 查询。

值得注意的是,内推不会对正常校招产生影响,简历评估未通过、内推面试未通过、未面试的同学将会收到邮件&短信通知参加统一校招笔试。校招的流程和内推的非常类似,但是在之前会多一个笔试环节。

然后就是我“挤”进去的经过了。

一面的时候是电话面试,当时我正在实习的公司敲代码,面试官很客气的询问是否方便接电话,然后等我慢慢走到楼梯口后又问了一遍准备好了面试没,之后才开始面试流程。一面的主要内容是前端的基础,从 HTML5 标签的理解和认知到 CSS3 的运用,最后到 JavaScript 基础概念和理解。其中由于 CSS3 相关我使用的比较少,Canvas 更是只跑过几个 demo,因此只好干净利落地回答不会,其余的问题基本上都回答出来了。这里需要注意一个地方,面试的时候一定不要慌,不要想到什么立马就说,可以先思考几秒钟组织一下语言再回答,不然必答项因为紧张没有回答好就后悔莫及了,当然基础一定要扎实,像知乎上常见的犀牛书等经典还是必看的,不然就只好说不知道了(知之为知之,不知为不知,求实为智也)。

二面的内容比一面的深入很多,前面几个问题问的是对当时的新技术 React、webpack 的理解,后来应该是由于我太老实地暴露了自己的学术研究不深,于是他开始问项目经验相关的问题。恰好我在做无线商城的交付那一块,遇到了不少问题也总结了一些经验,因此对于项目的分工协作,接口的异常处理等问题都有得说,在最后面试官问我还有没有什么问题的时候还和他简短地讨论了一下不同页面间的交互和跨域问题。由于预期三面会更加偏项目技术一点,我在那个周末对自己做的交付那一块做了一个总结归纳,同时也回顾了一下二面的知识短板和没有回答好的问题。

三面直接遇到了我们可亲的 HR 姐我还懵了一下,HR 姐问的问题主要是偏习惯和见解方向,她需要确定你有正确的价值观世界观和独立成型的学习体系。后来我仔细想了一下,校招并不是要求你一定要会什么什么,那是社招的要求,而是考你是否拥有快速学习和运用巩固的能力。对于一个公司来说,如果员工最基础的学习的能力都不具备,何谈创新和发展呢?

经历了约一周的等待后收到了录取的通知,说是不激动那是骗人的。但是这次面试确实突出体现了我很多的问题,例如基础不够扎实,对外面的新事物尝试甚少,囿于自己的项目代码而没有站在更高的角度去审视它。这些问题在后来我进入淘宝实习之初一直羁绊着我,我才深入体会到淘宝为什么能在前端技术上碾压我之前实习的公司,又为什么面试的时候面试官会问我那些问题,作为一个淘宝的前端我还需要什么。

如何成长为一名达标的前端工程师

前端开发从 HTTP 1.0 时代演变至今,其技能栈与工种要求可谓一年一个样,时至今日,已经丝毫不亚于传统后端。时下流行的各种语言、类库、框架、构建工具、工程体系已经纷繁复杂到几个单词或汉字看着看着就不认识的程度。谁也没有预料,当年仅靠 HTML 标签就可以搞定的网页,如今需要延伸到深远的技术分支,前端甚至已经玩起了服务端语言,玩起了 VR/AR。

在这个喧哗的时代,只有静下心来才能够找到通途大道,欲成凌云木,必先扎稳根。前端的进阶之路,还得一步一个脚印。专业知识不可欠缺,我们需要了解计算机的初级工作原理,基于对操作系统、数据传输等基础知识的理解,才能够帮助我们进一步的理解上层的应用框架和设计原理;对数据结构、基础算法的掌握才能够帮助我们更快、更优雅的实现编程目标。俗话说:「磨刀不误砍柴工」,此言得之。

前端入门并不花功夫,互联网上的学习资源已经足够丰富,不需要半小时,你就可以入门前端开发。当你具备一个基本的页面开发能力时,你得沉下去,了解 HTML 和 CSS 规范,了解 JavaScript 标准,不同宿主环境的差异性,你可以通过阅读一些经典的书籍,例如《HTML 权威指南》、《CSS 权威指南》、《JavaScript 高级程序设计》等巩固自己的前端知识,到那个时候,再选择你的工具不迟。触类旁通,React、Angular、Vue 的使用已经毫无压力。同时,你还应该深入学习 Node.js,这将是你的一件利器。业界不停的延伸发展出更加优秀的解决方案,像 W3C,IETF 等互联网标准组织十分值得关注。

真正的掌握知识并学以致用,不断的动手演练和积极的思考是最好的方式。通过一次次的迭代,寻求不同的解决方案,遇到各种问题并解决它,一定会收获满满,等到你转身的时候看到的就是一片森林。人群中永远缺少的是一双发现问题的眼睛,并通过自己掌握的技能来解决问题。在开发 SDK 的过程中,我觉得旧有的开发流程路径太长,体验不佳,还有优化空间,即使没有人反馈,但我还是应该对性能和交互进行优化,这导致的结果就是既提高了大家的开发效率,也使客服量减少。我们要有主人翁意识,主动肩负起重任,在乱麻中披荆斩棘。

在此之后,有更多有趣的内容可供探索,你将有足够多的选择。前端的技术方向延伸众多,例如传统的 Web 开发,以及偏向架构、工具的类库、框架、企业级 Web 容器与解决方案、构建/测试体系,以及图形相关的渲染引擎、VR/AR 开发等等,每一片土地都值得你不断耕耘。

从实习到转正,看看他们眼中的淘宝前端团队

从一个还没毕业的大学生,到一个能够独当一面的工程师,我都经历了什么?

在学校,重点在于学习,习惯了向自己灌输知识,证明自己知识水平的是每学期的考试和每年的各种竞赛。

然而到了这里,学习虽然仍旧重要,但重点不再是汲取,而是将自己汲取到的所有知识和经验,转化为思路、转化为代码、转化为项目的架构输出出去。我的知识面不再需要多而全,而是在保持广阔眼界的同时,找到属于自己的那个领域,然后一头扎进去,不再只是使用和理解,而是剖析、解构和重构,让它扎根生长于自己的技术土地,并且茁壮成长。

在我实习的时候,我选择了 React。那时的 React 还是一个新、奇、特的东西,采用了别具一格的思路,一经开源,在前端界引领了一阵潮流。然而很多人依旧对 React 持保守态度。然而我所在的团队,看到了 React 的不足之处,更看到了 React 的优势和独特,决定采用 React,就投入了 100% 的心血去了解它、发展它、茁壮它。

在淘宝之前我也实习过三四家公司,有的团队小而求快,技术栈够用即可,技术栈单一,也有团队积极尝试新鲜技术,但大多在内部产品和无关紧要的产品试水,只有淘宝前端团队,我看到了不同团队的人都充满热情地投入在自己喜欢的领域,大家不局限在自己团队,只要志同道合,可以跨团队组成虚拟小组。在进入淘宝前端团队之前,我没想过一个团队可以如此包罗万象、充满活力。

当然,挑战一定是不可或缺的。即便是实习生,也可以参与双促、营销活动、产品的开发,做出的东西有千千万万的人在用,这成就感,谁不喜欢呢?我也曾加班到很晚,对着老项目的代码焦头烂额;我也曾废寝忘食,只为了在团队开发 SDK 中接入一条全新的链路。苦思冥想的时候,会有同事来提供新鲜的思路,新奇的视角,那种豁然开朗的感觉,应该就是作为一个前端,最幸福的事情了。

随着能力的提升,一个人可以负责一个几十万、几百万、甚至上千万、过亿 UV 的产品,每次的发布,都会影响到大量的用户,慢慢地我学会对产品负责任、对自己负责任,勇于承担,也勇于改变。每一行代码对于我,都是在改变世界。

因为不缺乏机会,不缺乏热情,所以我选择了这里。这里给我带来的也不仅是技术栈的拓宽,技术深度的提高,更有包容的心态、承担责任的勇气和勇于开拓的精神。

Winter 老师有话说

又到了招聘季节,我们团队的校招也启动了,这里给参加校招的同学们一些建议,希望能帮助到你们。

准备:重视基础,打开视野

现在的前端技术圈,大量的新技术在产生,新人往往会失去焦点。

在任何公司,招聘的目标都是可靠的搭档,所以实际的编程能力和领域基础知识是考察的重点。

这里可以明确透露的是,我们不会对任何特定框架或者新技术有硬性要求,这些都属于加分项。

如果要准备面试,其实最好的办法就是自己做一些实际的作品,不但能锻炼能力,还可以写在简历里帮助你说服面试官。

除了实际动手,总结也是非常好的一种方式,比如用脑图的形式对 Web 技术来做整理,可以给自己查缺补漏,也可以在面试时讲给面试官听。

简历:展现自己,不要硬性匹配岗位描述

简历上真正闪光的点是你做过最有价值的事,而不是机械匹配岗位描述,在阿里巴巴,面试官培训会特别要求我们引导候选人根据 STAR 原则描述自己的经历。

STAR 即状态、任务、行动和结果,把一件事说清楚,从背景到结果,才是一个完整的陈述,即使很有经验的面试官,也很难在只看行动的的情况下做出准确判断。

简历上的经历如果以 STAR 原则描述,可以节约很多面试时间,也有更多机会。

面试:摆正心态,过程比结果重要

根据往年的经验,很多同学一旦遇到自己不熟悉的问题,都会立刻状态下降,影响后续发挥,甚至有些同学会尝试欺骗面试官。

实际上,面试中过程比结果重要得多。

一些同学喜欢准备面试题,“下水井盖为什么是圆的?”,“全世界有多少辆汽车?”

不知道有多少“微软面试题”,”Google 面试题”在网上到处流传。

但是面试题真的很重要吗?其实各个大公司之所以会有这类奇怪的题目,恰恰说明了一点:题目不重要,思考过程最重要

可以考虑以下场景,同样遇到不会的问题,哪一种更好呢?

  • “能解释一下 HTTP 协议中 302 这个状态码是什么吗?”,“我不记得了。”
  • “能解释一下 HTTP 协议中 302 这个状态码是什么吗?”,“哦,记不清了,我只记得 404 是找不到页面,304 是可以从缓存读取,5xx 是服务端错误”
  • “能解释一下 HTTP 协议中 302 这个状态码是什么吗?”,“啊,那个,应该是服务端错误吧?”

显然第二个更好,其实这样的沟通,留给面试官的印象未必不如直接回答答案。

所以,面试毕竟是根据印象而不是像考试一样算总分,其实跟面试官坦诚轻松地沟通,遇到不会的问题也不用紧张,展现最好的自己才能有更高的机会通过。

面试:分析问题,再解决问题

一个很多人会误解的问题是:大部分面试问题是开放性的和复杂的,想象中的“正确答案”根本不存在。

所以,即使是非常有经验的应聘人,遇到面试问题直接回答答案的情况是非常少见的。

我推荐这样一种回答思路:

  • 厘清问题,必要时可以跟面试官沟通确认,避免误解,不但理解问题,还要同时思考面试官的意图
  • 不急于开始回答,可以先从一些简单的案例入手,面试官要求你解决 n 的问题,可以先尝试 n=1,n=2 的情况,给自己争取思考时间
  • 回答问题,不限于问题本身,可以以对面试官意图的理解为基础,主动讲解相关知识,展示自己对相关领域的体系化思考
  • 如果真的不会,应该正面承认,不敷衍,不猜测,有记不清的地方,可以要求面试官提示

面试:利用好自由时间

面试最后的环节,大部分面试官会问“你有什么问题”这时候就进入自由时间。一些同学是不知道这时间应该如何利用的。

这时候可以做的事情有:

  • 了解团队和公司的情况
  • 讲清楚自己对工作地点、从事方向、心仪部门等方面的需求
  • 要求面试官给自己一些职业发展或者技术提升上的建议
  • 补充一些前面的问题的答案
  • 讲一些自己对技术上的理解
  • 要面试官的联系方式(这个要看运气啦)

这时候不适当的行为有:

  • 追问面试结果(面试结果一般需要最后合议,实际上大部分公司规定,禁止面试官当场给出结果)
  • 故意问一些业务上比较尖锐的问题或者产品 bug(因为一个公司往往很大,面试官可能根本不知道另外部门的事)
  • 针对一些热点问题问面试官的看法(实际上即使面试官回答,也只代表他个人的观点,你无法通过问题了解公司的态度)

总之,自由时间实际上非常有用,它可能不会影响面试结果,却是你了解公司,提出特别要求的很好途径。

了解招聘方:知己知彼,百战百胜

其实像阿里巴巴这样的大公司,很多团队会有自主选人的通道,比起官方通道,更直接到达招聘团队。

现在开始拿起手机/电脑把你的简历发送至

taobao-fed-zhaopin@list.alibaba-inc.com 直达你未来主管的邮箱!

通过即可获得面试机会,不通过还不占集团统一校招机会!

 

本文作者:作者: 海文
文章来源:淘宝前端团队(FED)