今天阿里云第一轮,先主要让说了项目的大概情况,这块回答得不好,因为很多细节由于时间过长,没有仔细看,说得支支吾吾。过程中,面试官主要着眼于你在团队中发挥了什么样的作用。他会让你说出你自己最有成就的项目,并大概介绍一下。这块事先准备不充分,我自己感觉就是差评。
我先介绍了内容导购的大概情况,说了半天,打断了一句,"sorry,我还是不太理解你说的什么。。"。。WTF,秘制尴尬。。。然后他又问了你在这个项目中有没有觉得很自豪的地方?我沉默了半天,心想就一个破切图的有啥自豪不自豪的。。。仔细想想,印象中似乎是有那么一段代码写得很满意,只好硬着头皮说了个我自己都不知所云的东西。
然后他问,你有没有用到vuex。我说用到过,状态管理的东西嘛,然后话锋一转,又到了购物车项目上去了。又大概介绍了购物车项目相关的东西。这块介绍得比上一块好了一点,但是现在我感觉仍然不满意。主要是在相对紧张的情况下,有时候表现就词不达意了,加上项目本身过了好长时间,细节记不太清了。。我当时答了vuex的作用就是管理全局状态的,方便组件之间通信,如果不用,组件之间的通信就会用类似DOM事件的方式(其实应该强调一下是不是父子关系的组件),代码耦合度较高。
然后又问了 你在这个项目中发挥的作用,是不是你作为一个小组长之类的,看来阿里对这方面比较重视,我就说了项目是三个人开发的,我负责了购物车这一部分框架的选型,包括webpack vue vuex 之类的。又问为啥选择这个,我就说前端交互比较多,涉及到界面和数据的统一问题,传统的DOM操作的库不足以胜任开发这样的项目(这块应该再好好想想,MVVM框架比jquery之类的库优越性体现在什么地方)。又问这是个移动端的项目,对文件的大小有没有要求。我说了项目刚开始的时候,用webpack,每个打包的文件都import了vue 和vuex,最后导致打包的体积很大,最后用了webpack的一个功能(其实应该说是commonChunkPlugin),将vue和vuex提取出来了,减少了每个打包文件的体积,结果面试官说是不是就是code split。我说是,但愿get到了他的点。(现在想来,似乎在问前端性能优化方面的东西,如果答出来js压缩,合并可能会更好)。又问了发送ajax是用fetch api还是$.ajax。我说了$.ajax,因为已经用了Zepto等库了(这点我应该是最懊恼的,因为我虽然没有用过fetchapi,但是知道它是基于promise的包装,当时应该顺便提一下的,当然现在也应该了解一下)。
又问了现在团队的情况,你觉得你在团队里是什么样的水平,和是否带过新人。我说我觉得我水平应该是在上游水平,因为有好多人是从后端转过来的,但因为工作年限比较短,所以经验有可能欠缺。,带过一个刚毕业的做过项目。
问 用没用过node。我说开发的时候用过,他又问开发的时候是不是跨域,我说是,然后延伸着说了cors。
从哪获取关于前端的知识,我说中文的有知乎 segmentfault 掘金啊,英文的有github。他说只有github么,我说还有medium上面好多前端开发者写博客,最后猛然想到还有mdn,赶紧说了,冥冥之中感觉get到了他的点。
又问了css基础 display 和visibility的区别,我回答了 display :none和visibility:hidden 的区别。还问了嵌套div的postion相对位置问题。js宿主对象,回答浏览器window,node global,js是不是单线程,tcp三次握手。JSONP的原理。prototype 和 __proto__的区别,事件冒泡的解释,我通俗地举例说了父子div点击响应的过程,延伸解释了一下js事件模型,包括DOM 0级(没有具体解释形式是标签的onclick,差评),DOM2级(没有顺便带出addEventListener,差评)和ie的冒泡模型。基础的东西好像问了就这么多,面试官也说基础挺不错的。
一道开放性的问题,一个十分大的图片,怎样加载,不影响性能又可以缓存。。回答不太好,最终在他说了分割成许多许多小份。。。。。
又问了还知不知道其他的语言,平时工作之外会不会写什么程序。我说了我知道python,写过爬虫,django。之前一段时间看了安卓和WP开发。
最后就是你有什么要问的没,然后说两个星期之内如果没有回复就代表挂了,如果有电话打来代表进入下一轮。我感觉如果这样说的话,应该是没什么希望了,如果他说两个星期内会给你答复,这样讲我感觉希望会大一点。无所谓了,反正我也就是抱着试一试的心态。昨天刚给内推的人的邮箱发了简历,今天下午就打来电话,然后约了晚上面试。下午打电话的时候他先说了个晚上8点以后,然后似乎又说了也有可能是晚上6点吃过饭就有可能打过来,结果我6点一下班就往住的地方跑,还没吃饭。我想着有可能7点就打来电话了,没想到到8点半才打过来,饿死老子了,打完电话已经9点半了。。。。
-------------------------------------------------------------------
总体来说,面试结果个人感觉不太理想,尤其是语言叙述组织方面。得到的教训如下:
0. 面试官提问后不要急于回答,一定要思考组织好语言,逻辑。
1. 必须对简历上的每一个字,涉及到的每个项目都了如指掌
2. 面试官似乎更希望看到的是你自己在项目中发挥更主动的作用,无论是技术选型,带领团队还是在项目整体中发挥的作用等等。这就要求在平时做项目的时候不仅要知道如何做,还要知道这么做的原因,并且做完项目之后及时总结,定期沉淀,积累
3. 面试的时候要适时地"牵着面试官的鼻子走",引导提问的方向,多说出一些和提问相关的知识点,面试官有可能就顺着面试者说的点继续提问了(当然说的点面试者一定要熟悉,才能谈笑风生)
自我感觉 通过第一轮面试的概率大概在35%-45%之间。另阿里的面试周期很长,如果想在某个时间点换工作,需要早早投简历。这样防止已经拿到其他公司的offer了,这边还没有面试完。
我先介绍了内容导购的大概情况,说了半天,打断了一句,"sorry,我还是不太理解你说的什么。。"。。WTF,秘制尴尬。。。然后他又问了你在这个项目中有没有觉得很自豪的地方?我沉默了半天,心想就一个破切图的有啥自豪不自豪的。。。仔细想想,印象中似乎是有那么一段代码写得很满意,只好硬着头皮说了个我自己都不知所云的东西。
然后他问,你有没有用到vuex。我说用到过,状态管理的东西嘛,然后话锋一转,又到了购物车项目上去了。又大概介绍了购物车项目相关的东西。这块介绍得比上一块好了一点,但是现在我感觉仍然不满意。主要是在相对紧张的情况下,有时候表现就词不达意了,加上项目本身过了好长时间,细节记不太清了。。我当时答了vuex的作用就是管理全局状态的,方便组件之间通信,如果不用,组件之间的通信就会用类似DOM事件的方式(其实应该强调一下是不是父子关系的组件),代码耦合度较高。
然后又问了 你在这个项目中发挥的作用,是不是你作为一个小组长之类的,看来阿里对这方面比较重视,我就说了项目是三个人开发的,我负责了购物车这一部分框架的选型,包括webpack vue vuex 之类的。又问为啥选择这个,我就说前端交互比较多,涉及到界面和数据的统一问题,传统的DOM操作的库不足以胜任开发这样的项目(这块应该再好好想想,MVVM框架比jquery之类的库优越性体现在什么地方)。又问这是个移动端的项目,对文件的大小有没有要求。我说了项目刚开始的时候,用webpack,每个打包的文件都import了vue 和vuex,最后导致打包的体积很大,最后用了webpack的一个功能(其实应该说是commonChunkPlugin),将vue和vuex提取出来了,减少了每个打包文件的体积,结果面试官说是不是就是code split。我说是,但愿get到了他的点。(现在想来,似乎在问前端性能优化方面的东西,如果答出来js压缩,合并可能会更好)。又问了发送ajax是用fetch api还是$.ajax。我说了$.ajax,因为已经用了Zepto等库了(这点我应该是最懊恼的,因为我虽然没有用过fetchapi,但是知道它是基于promise的包装,当时应该顺便提一下的,当然现在也应该了解一下)。
又问了现在团队的情况,你觉得你在团队里是什么样的水平,和是否带过新人。我说我觉得我水平应该是在上游水平,因为有好多人是从后端转过来的,但因为工作年限比较短,所以经验有可能欠缺。,带过一个刚毕业的做过项目。
问 用没用过node。我说开发的时候用过,他又问开发的时候是不是跨域,我说是,然后延伸着说了cors。
从哪获取关于前端的知识,我说中文的有知乎 segmentfault 掘金啊,英文的有github。他说只有github么,我说还有medium上面好多前端开发者写博客,最后猛然想到还有mdn,赶紧说了,冥冥之中感觉get到了他的点。
又问了css基础 display 和visibility的区别,我回答了 display :none和visibility:hidden 的区别。还问了嵌套div的postion相对位置问题。js宿主对象,回答浏览器window,node global,js是不是单线程,tcp三次握手。JSONP的原理。prototype 和 __proto__的区别,事件冒泡的解释,我通俗地举例说了父子div点击响应的过程,延伸解释了一下js事件模型,包括DOM 0级(没有具体解释形式是标签的onclick,差评),DOM2级(没有顺便带出addEventListener,差评)和ie的冒泡模型。基础的东西好像问了就这么多,面试官也说基础挺不错的。
一道开放性的问题,一个十分大的图片,怎样加载,不影响性能又可以缓存。。回答不太好,最终在他说了分割成许多许多小份。。。。。
又问了还知不知道其他的语言,平时工作之外会不会写什么程序。我说了我知道python,写过爬虫,django。之前一段时间看了安卓和WP开发。
最后就是你有什么要问的没,然后说两个星期之内如果没有回复就代表挂了,如果有电话打来代表进入下一轮。我感觉如果这样说的话,应该是没什么希望了,如果他说两个星期内会给你答复,这样讲我感觉希望会大一点。无所谓了,反正我也就是抱着试一试的心态。昨天刚给内推的人的邮箱发了简历,今天下午就打来电话,然后约了晚上面试。下午打电话的时候他先说了个晚上8点以后,然后似乎又说了也有可能是晚上6点吃过饭就有可能打过来,结果我6点一下班就往住的地方跑,还没吃饭。我想着有可能7点就打来电话了,没想到到8点半才打过来,饿死老子了,打完电话已经9点半了。。。。
-------------------------------------------------------------------
总体来说,面试结果个人感觉不太理想,尤其是语言叙述组织方面。得到的教训如下:
0. 面试官提问后不要急于回答,一定要思考组织好语言,逻辑。
1. 必须对简历上的每一个字,涉及到的每个项目都了如指掌
2. 面试官似乎更希望看到的是你自己在项目中发挥更主动的作用,无论是技术选型,带领团队还是在项目整体中发挥的作用等等。这就要求在平时做项目的时候不仅要知道如何做,还要知道这么做的原因,并且做完项目之后及时总结,定期沉淀,积累
3. 面试的时候要适时地"牵着面试官的鼻子走",引导提问的方向,多说出一些和提问相关的知识点,面试官有可能就顺着面试者说的点继续提问了(当然说的点面试者一定要熟悉,才能谈笑风生)
自我感觉 通过第一轮面试的概率大概在35%-45%之间。另阿里的面试周期很长,如果想在某个时间点换工作,需要早早投简历。这样防止已经拿到其他公司的offer了,这边还没有面试完。