这里面我想谈几点:
1, 不要依赖jQuery, Ext, YUI等等javascript库,平时写写玩具的时候尽量使用原生javascript或者原生ajax,这样你会对很多原理和底层的知识有所了解。
2, 前端很庞大,不是简单的html,css,javascript的混合体,你需要广阔的技术视野,关注并了解新技术并且尝试运用。
3, 平时写代码的时候尝试去优化他,你可以测试代码的性能(YSlow和jsperf.com都行)。
4, 写代码要用到模块化的思想,你可以阅读以下AMD规范,浏览器端的javascript最好去遵循这个规范,常见的requirejs已经采用了AMD规范
5, 要让面向对象和设计模式为你的javascript code所用。
9月2号,当时看到我的个人状态变成了”待面试“,那个时候,真的很高兴,因为身边很多人都被刷掉了,包括大把大把的研究生。有时想想,现实就是这么残 酷,有人通过,就有人铩羽。我预约到了9月12号,地点是武汉纽宾凯鲁广国际酒店,是一家五星级的酒店。阿里巴巴的财大气粗的形象瞬间跃然纸上,别的公司 都是在学校里面搞笔试面试,它在5星级的酒店里。可能阿里面对的不是一个学校的学生,而是整个武汉,甚至是华中地区的学生吧,这样做会让面试流程更加规范 吧。当然,也有部分是为了公司的宣传。
笔试通过之后,这10天我并没有闲着,我开始复习前端,这个庞然大物。要复习的知识真的是太多太多,概念也完全无法穷尽。从基础知识到高级知识,然后是 项目经验,实习经验的总结,以前编写的代码的总结,开源框架jQuery,EXT, YUI源码的复习,nodejs,Html5,前端开发工具,性能优化。我觉得10天确实太过于短暂。
时间真快,9月12号那天下午,我带上简历,武汉理工大学经纬网聘书,爱立信实习证明,黑客马拉松一等奖证书,信心满满的奔向了人生的第二场面试。
3楼大堂的人真多啊,小数一下,也有四,五百人吧,人流络绎不绝。有从湖南那边赶过来的,有来霸面的,早该猜到了,有无数个人想进阿里。当然招聘5个 人,面试官可能会面50个或者100个,真是千挑万选啊。当时我就在想,面试的时候给面试官留下深刻的印象是多么重要啊。下面直奔3轮面试了。
一面是纯技术面,所有的问题都是技术问题,问题问的很深,但是同样考察到了基础的掌握。刚刚见到面试官的时候,我递上了我准备的其它材料。然后面试官让我 谈项目经历,然后我说了之前参加黑客马拉松时候的一个项目,采用google angularjs、cordova和爱立信LTE broadcast部门提供的高通API去实现一个基于 android平台的app,后台使用nodejs实现的http server和backbone.js。数据库采用android平台 下自带的sqlite3。实现了RSS订阅功能,数据广播和点播的功能,并且使用cordova自带的Media播放 插件实现音频文件的播放。为力求高效,我们使用了ionic。然后面试官问为什么选择angular? angular相比其它前端框架的优势?然后面试官准备了一些问题,如下:
1, 写一个正则表达式,规则我忘了,反正挺长的(需要现场写code)
2, 前端安全(XSS,sql注入,CSRF)。问有没有那些攻击别人站点的经历,然后问CSRF的原理,一些html code如果要显示在页面上,怎么处理,当然是通过编码解码啦,哈哈。
3, 兼容性问题
ie6下的奇葩太多了,浮动双边距,上下margin,微高,png兼容,然后问我引入脚本处理png图片的原理。。。
4, 输入url到页面出现的过程
包括DNS解析,TCP连接,HTTP GET获取数据,加载DOM树,渲染树,然后问了下哪些地方会出现css阻塞,哪些地方出现js阻塞。ie各版本和chrome可以并行下载多少个资源。
5, 跨域请求及实现的原理
比如jsonp,window.name, iframe,window.postMessage。jsonp的原理是动态插入script标签
6, 问了一个算法问题,字符串匹配相关的(需要现场写code)
先是用数组去模拟,后来讲的时候发现不行,改成了hash表
7, javascript里面的继承怎么实现,如何避免原型链上面的对象共享(需要现场写code)
回答当然是经典的构造函数和原型链的混合模式去实现继承的啦,避免对象共享可以参考经典的extend()函数,很多前端框架都有封装的,就是用一个空函数当做中间变量
8, 设计模式的一些问题
我谈了下XHR工厂和事件委托里面的中介者模式
9, 异步加载和延迟加载的实现。
面完之后,面试官和我深情的握了一个手,看的出来,他对我的表现非常满意。
出去等了一会儿,用手机刷新了一下官网状态,发现一面通过。等了10分钟之后,接着参加二面。
二面的问题感觉让我很尴尬,部分技术问题,部分团队,项目问题。大概是下面这些:
1,你是学软件工程的,为什么搞前端?
2,看了你的简历,项目经历这么丰富,你说说你从这么多项目中,学到了什么?
3,项目中和他人有所分歧的时候,怎么办?
4,你当初为什么考虑引入angular?而不是其他框架?
5,html5开发的一些经验和问题(作为前端达人,一般这个问题,必扯localStronge, webgl, device api)
6, 对阿里巴巴有多少了解?
7, 以后想去杭州还是北京啊,为什么不选择北京?
8,以前做一个项目,如何和团队中其它的成员分工?是按板块分还是页面分
9,如何带一个新人?
10, 性能,如何去测试。代码层面,哪些地方可以优化性能(提到了一下重排和重绘)
11,谈了下grunt, YUI compressor 和 google clojure用来进行代码压缩的用法。
出去等了一会儿,通知3面。
当时挺激动的,一般3面基本不怎么刷人的,当时觉得这次面试稳了。三面是传说中的交叉面,也就意味着一面,二面表现优秀,工资会有所提高。当然,交叉面当时我也不知道,时候听别的学长说的。
3面HR问题:
1, 自我介绍
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
![](https://i-blog.csdnimg.cn/blog_migrate/b4f0550450556fc03882cf8341ccafdb.jpeg)
最后
今天的文章可谓是积蓄了我这几年来的应聘和面试经历总结出来的经验,干货满满呀!如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!
可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不拉地看完并且全部消化为自己的知识的话,那么你就至少已经达到了中级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。
应聘和面试经历总结出来的经验,干货满满呀!如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!
可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不拉地看完并且全部消化为自己的知识的话,那么你就至少已经达到了中级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。