2016阿里前端开发实习生面试经历

  终于有时间也有机会来写这么一次面经了。其实距阿里的最近一次面试也有29天了,这段时间一直在等待通知,终于在昨天下午收到了阿里的贺电,一直悬着的心也能够放下了。如今赶忙把个人经历分享给各位小伙伴。css

  一面:前端

  没有一点点防备,内推的第5天下午正在作实验的我忽然收到了阿里一面的电话,当时以为本身状态还能够,因而就直接面了(面试的时候若是状态很差,能够给面试官从新约时间),虽然是一面但以为考察的很普遍(有点交叉面的感受),从基础,知识广度以及人品等各方面对我进行了询问~node

  ---首先是基础react

  Q: 我是淘宝的xxx(奔溃,太紧张没有记住面试官的花名),请你先自我介绍一下。jquery

  A: 详细介绍了一下个人我的信息,项目经历,擅长的技术。
webpack

  Q: 你对css和js二者哪一个掌握的更深刻?git

  A: js。github

  Q: 好,那你讲讲如何让一个函数调用自身。web

  A: 函数内部可使用其函数名或者argument.callee进行调用。(js高设上有一小节讲得很详细)面试

  Q: argument.callee是什么?

  A: 表示当前执行的函数,可是在ES5的严格模式下是不能使用的。(要勇敢地发散问题,这个ES5就是发散出来的,体现自身知识广度)

  Q: 好,我有一个数组,如何实现它的深拷贝和浅拷贝?

  A: 浅拷贝就是保存引用,能够直接把它赋值给另外一个数组。深拷贝能够用数组方法实现,好比concat,slice或者for循环遍历数组取出。

  Q: 如何作一个高效地递归操做呢?

  A: (有点蒙蔽,这个问题回答得略卡) 嗯,首先是要尽可能作到尾递归,保证堆栈的复杂度最小。。。而后。。。还能够用记忆的方式(js语言精粹上面的,忽然想到了!) 就是每进行一次递归,都把上一次递归结果缓存到一个数组中,下一次递归能够直接调用这个数组的值,减小寄存器的调用。

  Q: 不错,讲讲事件流吧。

  A: (内心忽然释放了不少) 先说说IE的事件流吧,是采用了事件冒泡机制,而DOM标准事件流则分为三个阶段:事件捕获阶段,处理事件阶段,事件冒泡阶段。一般咱们须要写一个函数来兼容两种浏览器的事件。而后balabala把函数用口头实现了一次。。。

  Q: 那你知道事件委托吗?

  A: 嗯,知道,就是把全部子节点的事件都委托给其父节点进行监听,在函数中能够swtich某个节点。

  Q: 仅此而已吗?

  A: (哈哈,很想说句否则呢?) 请给我点时间想一想~

  A: 键盘事件能够监听它的keyCode...(好吧,好像就这么多了把)

 

  ---开始发散了

  Q: 刚刚开了下你的我的网站,那个相册旋转是怎么作的?

  A: 用React写了一个状态机,若是用原生js或者jquery写可能会很简单,用React的主要是以后考虑打造一个SPA。首先是要写一个AJAX请求后台数据,这段代码写在React的ComponentDidMount中,而后把每一个相册的旋转所用到的属性看成是state放入父级组件的props中。

  Q: 看来你很了解React,能讲讲它是什么原理吗?

  A: React是facebook提出一个解决大型应用的框架,主要是利用状态机将属性和状态进行隔离,并用一个组件维护,再将这些组件复合。性能很快,核心在于虚拟DOM和单向数据流。

  Q: 虚拟DOM?说来听听呢?

  A: 在js中,最消耗性能的实际上是DOM操做,一个DOM操做能够将界面元素重排或者重绘,而虚拟DOM是把元素放到缓存中,这样变化只是在缓存中,性能会很是快,这个实现主要依赖于diff算法,而后diff算法..balabala...

  Q: 我看了一下,你这里面一页有上百张图片,加载的有点慢,你有考虑过优化吗?

  A: 嗯,考虑过,可是还没时间去作(如今都还没作= =)。能够把100张图用缩略图,即用小图,大概在2-3K放出来,要具体查看每张图的时候再把原图呈现。

  Q: 那你对整个web的性能有什么了解吗?

  A: 嗯,大概有css精灵图,http缓存,cdn,脚本合并。。。而后一个一个详细讲解。

  

  ---接着是聊生活

  Q: 我看你在学校担任过IBM俱乐部的部长,能够讲讲你作了些什么吗?

  A: 嗯,主要承担一些设计海报,制做网站这些工做吧。固然还有给14级的同窗进行网页知识的培训。

  Q: 我对你的培训很好奇,能详细谈谈吗?

  A: (怎么会问这个,我开始方了) 而后balabala讲了我是如何培训的,从w3c到现场授课等等...

  Q: 那你以为你的优势是什么?

  A: 对前端的热爱,对生活的乐观(好官方的回答...)balabala...

  Q: 缺点呢?

  A: 喜欢玩英雄联盟把,偶尔会忘了时间,可是本身仍是开始有节制了...(还没说完电话就挂了...原来是通话一小时自动断开了)

  ...断线中

  Q: 哈哈,很差意思,咱们继续,不过得快点了,再详细讲讲你对新人的培训过程吧。

  A: (好纠结),因而讲了不少细节。

  Q: 还有什么问题要问个人吗?

  A: (终于该我问了!) 我想了解下淘宝如今所使用的技术~

  Q: 不一样业务不一样技术嘛。而后详细讲了各个团队的方向...

  A: 想了解下淘宝团队的英语水平。

  Q: 有特别好的,也有通常的,但通常的文档是能读懂的。

  A: (而后心里下定了学好英语的心),嗯,我也没有什么问题了.

  Q: 那好,那等等结果吧~再见。

  

  一面结束,说好的半个小时左右足足聊了75分钟....估计面试官也饿了。

 

  二面:

  一面结束已是下午5点30了,吃了个饭回来大概在6点40的时候,又看到了一个杭州的电话打来。不会吧!还有!

  

  Q: 你好,请问你是xxx吗,我是淘宝技术部这边的,想问问你有没有时间。

  A: (接都接了,那就面吧) 你好,如今有空,请问这是第二次面试吗?

  Q: 嗯,占用你半个小时时间,咱们开始吧。

  A: (我不信半个小时!)

  

  ---直接从项目入手问

  Q: 看了一下你的几个项目,能告诉我你在遇到问题是怎么解决的吗?

  A: 其实我以前的开发中遇到的问题不是特别多,问题主要在最后的性能问题上。本身首先会尝试调优一下本身的代码,而后再去从文件打包上去思考,若是没法本身解决,会去参考下别人的博客或者是社区。

  Q: 那你如何使用文件打包的?

  A: 刚开始的时候接触grunt,发现利用插件能够很快的实时压缩合并css,并且只须要写一个Gruntfile.js文件就好了,十分方便,后面又了解到gulp,代码量少写一半,由于它基于流。再到后面学习react的时候,gulp必须使用不少插件才能转义jsx语法,因而我就在社区中发现了webpack这个工具,而且在github上star了一下,以为这个工具特好用,而后大概讲了下webpack的配置...

  Q: github常常用吗?

  A: 也是近段时间开始用起来的,会慢慢熟练起来。

  Q: 我看了看你的我的仓库,里面还有ES6的仓库,怎么是空的呢?

  A: (问到此处好尴尬...) 由于我如今写的ES6的语法还没投入到实际的demo中,有点纸上谈兵,只能写写片断代码执行。近段时间也正在逐步了解。

  Q: 嗯,看了下好像还有jquery的仓库,那你对jquery的源码有了解吗?

  A: 大概看过几个模块,而后讲了许久...

  A: 但我以为jquery会慢慢的不适合大型业务。

  Q: 哦,什么意思?

  A: jquery有很大的性能瓶颈,当DOM操做增多的时候,咱们须要考虑用react。

  Q: react?那你知道angular吗?

  A: 嗯,知道,不过angular如今是2.0的beta版本,打算等稳定下来再去仔细品味。

  Q: 那你知道react和angular分别用在什么样的业务吗?或者说二者的区别。

  A: 本身从性能方面和MVC层面讲了一下...

  

  ---谈谈将来

  Q: 发现你对js的新技术仍是颇有研究的,那你以为之后的js会发展成什么样,或者说前端会发展成什么样。

  A: 从14年的D2前端论坛开始就已经很明确的指出了'大前端'这个概念,由于前端原本就是一个通十行才能精一行的职业,所谓大前端从学习角度上来看必定要保持饥饿感,保持兴奋去适应新技术带来的变化。具体的说,大前端要兼顾变化无穷的前端和以node为核心的后端。而后又从先后端分析了一下ajax和http这些东西(蛮拼的!为了把全部知识面暴露给面试官)。

  Q: 想去哪工做呢?

  A: (我被吓到了.)杭州吧,互联网的氛围一级棒!

  Q: 嗯,还有什么问题要问个人吗?

  A: 如今前端行业对ES6的使用是什么状况呢?

  Q: 看整个部门人员的状况吧,说不定的。

  A: 想知道你的花名,哈哈。

  Q: 我叫释然。

  A: 很差意思,没有挺清楚。

  Q: 释然,释然的释,释然的然。

  A: (听着名字就以为牛比) 恩恩,谢谢你。

  

  看了看时间,30分钟!能够,这时间卡的给波满分吧!

  后面去问了问我学姐,才发现释然是她的老大!又去淘宝技术的官网了解了下,确实大神一枚,怎么就没要联系方式呢?!

  

  HR面: 

  一二面在同一天,我想HR也会很快来吧,就这样天天提心吊胆地过着,看着论坛里的小伙伴有的很快就HR面了,内心愈来愈方了。等到3月16号的时候,HR终于打电话过来了,和前两面面试官同样,声音好听得不行,不过此次是个妹子!可是当时我太困了,就约了晚上。结果晚上也没有打电话过来...以后又是每一天中午打过来,结果发现我都有课,就这样到了18号晚上才有时间= =前先后后约了4次!

  Q: 你好,我是xx(因为是妹子,花名保密) 。

  A: 恩恩,能够开始了!

  Q: 我看你曾经创过业,能够跟我讲讲为何要创业吗?

  A: (我回答的真的很白痴啊...) 前端是一个各方面都须要有所看法的行业,加之很想本身对新东西也有必定的好奇!因而就跟着学长和几个朋友一块儿试试了。

  Q: 讲讲创业中的细节呢?

  A: 大体讲了讲个人工做,如何打造团队,如何熬夜...

  Q: 成功了吗?

  A: 失败了,由于...

  Q: 其实总的来讲不是你本身想创业对吧?而是学长找到了你。

  A: (这个问题,能够说三次面试以来最很差回答的) 仍是挺想的,主要本身也以为这个项目能够作作,还能够锻炼锻炼这种高压工做。

  Q: 嗯,我懂,可是你只是学长叫到你才去的是吧?

  A: 嗯,能够这么说吧,但本身仍是颇有想法的。本身也很想掌握一些市场方面的知识,想作个全才。

  Q: 谈谈你的优缺点呢?

  A: (而后从本身的自信,负责,对新技术的渴求这几点讲述优势) 缺点嘛,可能本身有些浮躁把,由于前端原本就是个高速发展的行业,每一年都有成堆的框架出现,可能在没有接触具体业务以前会有所迷失,不知道该学什么。

  ...最后就是对个人一番评价,在确定了个人学习能力后,基本上都是说个人不足(心里很崩溃),差很少面了40分钟就结束了。

 

  说实话面了HR后一点自信都没了= =,首先感受本身有几个地方回答得不理想,而后就是以为HR姐姐分析地比较到位(感受跟中学时代的语文老师同样,哈哈),内心特别没底。但过了段时间后心态调整过来了,又回到了日常的模式。大概过了快一个月收到了阿里实习生的offer,真的是很大的一份惊喜。

 

  从此次面试要确定本身过往的努力,可是要改进的地方也有不少。正如HR姐姐提到的作什么事以前多问几个为何,不管是从技术仍是什么角度上出发,都要明确好本身的目标,做为一个开发者,所应具有的不只仅是开发技能以及行业视野。

相关文章
相关标签/搜索