怎么成为大公司的前端(例如:阿里巴巴)

(此文章所涉及内容大多来自网络,本人整理收集,便于勉励自强,非商业使用,如有冒犯,请评论告知删除)


1,招聘信息

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



发布时间: 2016-03-15 工作地点: 杭州市 工作年限: 三年以上
所属部门: 天猫事业部 学   历: 大专 招聘人数: 5

岗位描述:

1、依据产品需求完成高质量的跨终端Web(PC+Mobile)/Node.js/Native App的前端开发和维护; 
2、对具体的产品进行性能优化,实现极致的页面加载、执行和渲染时间; 
3、在理解前端开发流程的基础上,结合前端实际建立或优化提升工作效率的工具; 
4、在理解产品业务的基础上,提升产品的用户体验,技术驱动业务的发展; 
5、关注前端前沿技术研究,通过新技术服务团队和业务。

岗位要求:

1、精通各种前端技术,包括HTML/CSS/JavaScript/Node.JS等; 
2、具备跨终端的前端开发能力,在Web(PC+Mobile)/Node.js/Native App三个方向上至少精通一个方向,具备多个的更佳,鼓励在Native和Web技术融合上的探索; 
3、对前端工程化与模块化开发有一定了解,并有实践经验(如RequireJS/SeaJS/KISSY等); 
4、至少熟悉一门非前端的语言(如Java/PHP/C/C++/Python/Ruby),并有实践经验; 
5、具备良好的团队协作精神,能利用自身技术能力提升团队整体研发效率,提高团队影响力; 
6、对前端技术有持续的热情,个性乐观开朗,逻辑性强,善于和各种背景的人合作。



--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



发布时间: 2017-07-11 工作地点: 杭州市 工作年限: 三年以上
所属部门: 新零售技术事业群 学   历: 本科 招聘人数: 30

岗位描述:

1.业务领域 —— 建设天猫从消费者导购到品牌商家系统全链路各类产品,体验每年全球瞩目双11狂欢节,加入尽情施展才华的舞台; 
2.技术驱动 —— 从极致的Mobile体验、前端工程化开发、企业级中台应用、可视化编程、3D/AR创新交互,到大规模NodeJS应用等等,拥有足够的挑战及机遇;

岗位要求:

1.精通各种前端技术(包括HTML/CSS/JavaScript等),熟悉ES6语法,具备跨终端(Mobile+PC)的前端开发能力,熟悉网络协议(HTTP/SSL),熟悉常见安全问题和对策; 
2.熟悉前端工程化与模块化开发,并有实践经验(如gulp/webpack、VueJS/React等); 
3.至少熟悉一门非前端的语言(如NodeJS/Java/PHP/C/C++/Python/Ruby等),并有实践经验; 
4.对前端技术有持续的热情,良好的团队协作能力,提升团队研发效率,实现极致性能,通过创新交互优化产品体验; 
5.加分项(满足其一即可):具备客户端能力或者Native&Web技术融合经验;熟悉Canvas动效&WebGL3D以及各种传感器技术;复杂企业后台应用开发经验;数据可视化产品设计开发经验;大规模/高负载场景下NodeJS应用开发、运维经验;良好的算法背景,对机器学习有研究和项目实施经验;有独立的开源项目或者参与知名开源项目经验;团队管理能力;英语沟通能力;


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


发布时间: 2017-05-18 工作地点: 北京市 工作年限: 五年以上
所属部门: 优酷 学   历: 本科 招聘人数: 1

岗位描述:

1. 实现和优化广告产品素材前端架构 
2. 实现和优化广告H5SDK 
3. 为前后端技术改进、广告性能优化、技术选型提供解决方案

岗位要求:

1. 精通各种Web前端技术(HTML/CSS/Javascript等),熟练跨浏览器、跨终端的开发 
2. 精通Javascript面向对象机制,能用原生Javascript进行DOM编程 
3. 熟悉业界常用Javascript脚本库 
4. 熟练使用项目开发构建工具,如:grunt/gulp/git等 
5. 至少熟练使用一门非前端脚本语言(如:NodeJS /Python/PHP 等),并有项目经验; 
6. 有广告行业5年以上的从业经验,熟悉VPAID,MRAID,VAST等互联网广告协议 
7. 个性乐观开朗,逻辑性强,有担当、合作精神。




--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------




发布时间: 2017-07-06 工作地点: 北京市 工作年限: 三年以上
所属部门: 蚂蚁金服 学   历: 本科 招聘人数: 5

岗位描述:

1、参与聚宝前端,hybrid, Node.js 应用框架体系(引擎、流程、运维、安全等)的建设; 
2、参与聚宝核心业务或者技术产品的全栈式开发; 
3、参与聚宝前端工程体系建设。

岗位要求:

前端方向: 
1、熟练掌握移动端H5开发、熟悉主流移动浏览器的技术特点; 
2、熟练运用JavaScript语言与HTML5、CSS3等技术; 熟悉移动端Web绘图相关高级特性, 如canvas, webGL, CSS3动画效果等; 
3、熟悉模块化、前端编译和构建工具,熟练运用主流的移动端JS库和开发框架,并深入理解其设计原理,例如:jQuery Mobile、Zepto、ReactJS等; 
4、能提供完善的WebApp和混合App(JS方向)技术方案,了解服务端(node/java或其他语言)或native移动应用开发;有类react native开发经验者优先,有koa,chair等开发经验者优先。 
5、对技术有强烈的进取心,具有良好的沟通能力和团队合作精神、优秀的分析问题和解决问题的能力。 

Node方向: 
1、熟悉 Node.js Web 应用开发,有大型 Node.js 项目的开发经验; 
2、熟悉 Node.js 异步编程,对 koa/co/async 等模块原理机制了解透彻; 
3、熟悉 Node.js 以及 V8 的性能和稳定性优化,能对系统整体性能进行评估,解决内存瓶颈; 
4、熟悉 Web 安全相关知识,并能使用相关技术防范安全漏洞; 
5、关注业内动态,有开源社区贡献者优先; 
6、个性乐观开朗,逻辑性强,善于和各种背景的人合作。

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



发布时间: 2016-11-07 工作地点: 广州市 工作年限: 三年以上
所属部门: 阿里影业 学   历: 本科 招聘人数: 4

岗位描述:

1.负责产品的HTML5页面架构设计和开发工作; 
2.根据产品需求,分析并给出最优的页面前端结构解决方案; 
3.应用新技术,设计开发极具用户体验的移动网站; 
4.参与设计并编写WEB前端组件应用。

岗位要求:

1.精通HTML5、CSS3、JavaScript等Web前端开发技术; 
 
2.精通Ajax、DOM、JSON等相关技术,熟练使用原生JS编程,及jquery、AngulaJS等JS框架编程; 

3.熟悉移动端主流浏览器,及Android与iOS等不同平台的html5页面适配; 
 
4.有对应web app、canvas开发经验者优先,可提供个人近期作品。


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



发布时间: 2017-04-17 工作地点: 杭州市 工作年限: 三年以上
所属部门: 阿里云事业群 学   历: 本科 招聘人数: 3

岗位描述:

岗位级别:P7、P6 
1、负责无线前端界面开发 
2、负责网站、平台等前端开发 
3、设计编写物联网场景下的前端应用开发框架

岗位要求:

1、精通Web及无线前端开发技术,有复杂应用开发及性能调优经验 
2、深入了解JavaScript语言,深入解主流开发框架 
3、熟悉React Native等 线前端技术者优先 
4、有JavaScript框架设计及开发经验者优先



--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------





--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

总结:

一流大公司的前端 面试信息的要求一般都要求精通以下中多个技术点:


Node.js  

PC+Mobile

深入解主流开发框架 

前端工程化与模块化开发

极致的页面加载、执行和渲染时间极致性能,通过创新交互优化产品体验

鼓励在Native和Web技术融合上的探索

ES6语法

网络协议(HTTP/SSL),熟悉常见安全问题和对策

跨浏览器、跨终端的开发 

项目开发构建工具,如:webpack/git

主流移动浏览器的技术特点; 

Android与iOS等不同平台的 html5 页面开发以及适配;

WebApp和混合App(JS方向)技术方案

大规模/高负载场景下NodeJS应用开发、运维经验;

 Node.js 异步编程,对 koa/co/async 等模块原理机制了解透彻; 

 Node.js 以及 V8 的性能和稳定性优化,能对系统整体性能进行评估,解决内存瓶颈; 

 Web 安全相关知识,并能使用相关技术防范安全漏洞;

熟悉一门非前端的语言(如NodeJS/Java/PHP/C/C++/Python/Ruby等)

英语沟通能力;

良好的算法背景,对机器学习有研究和项目实施经验;


这些技术点都是前端的前沿,同时也预示着前端的发展方向;应该也是每个希望成为大前端的人的目标


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2,面试相关


硬件条件:

原生JavaScript相关:

对JavaScript的理解以及掌握必须是达到精通,如果简历上有写熟悉某个框架的话也会问到该框架的相关问题,这里我被问到的问题有:

JavaScript作用域链
JavaScript变量声明提升
JavaScript原型链
数组元素去重的方法
如何解决回调层级过深的问题
Ajax跨域的几种方法以及每种方法的原理,比如Jsonp的原理,使用window.name属性通过递延来跨域的缺点

JavaScript框架相关:

由于我写的是精通dojo框架便问了些我关于Dojo的问题:
为什么选择dojo框架,谈谈你对Dojo框架的理解
Dojo的模块儿管理模式(AMD)
如何自定义组件
Dojo框架的组成部分
Dojo框架跟jquery比较

页面优化相关:

前端页面如何优化
如果有成千上万个页面该如何管理
如何解决重绘和回流的问题
当需要更新一个ui节点下的1000个li节点的某个属性时候该怎么做才能保证页面性能

服务器相关:
有没有服务器相关的编程经验
如何跟后端协作
css,html相关:

这方面的问题基本上没有

其他:

当一个页面有很多内容的时候,如何做到快速开发
如何协同、管理多人共同开发
是否愿意去杭州工作等问题
平时有没有浏览一些什么技术博客之类的,这里强调一点如果自己在写JavaScript相关的博客的话,一定要在简历上面附上博客地址。


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

一个很值得借鉴的面试经历

 没有一点点防备,内推的第5天下午正在做实验的我突然收到了阿里一面的电话,当时觉得自己状态还可以,于是就直接面了(面试的时候如果状态不好,可以给面试官重新约时间),虽然是一面但觉得考察的很广泛(有点交叉面的感觉),从基础,知识广度以及人品等各方面对我进行了询问~

  ---首先是基础

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

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

  Q: 你对css和js两者哪个掌握的更深入?

  A: js。

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

  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姐姐提到的做什么事之前多问几个为什么,无论是从技术还是什么角度上出发,都要明确好自己的目标,作为一个开发者,所应具备的不仅仅是开发技能以及行业视野。





--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

又一个很值得借鉴的面试经历




4月15日更新,已经拿到实习offer


今天早上脑抽,决定写下这篇面试经历,距离面试结束已经半个月了,简历状态还是在面试中,我接受了被阿里当成备胎的事实,也开始承认自己失败了,而且清楚的知道自己失败在什么地方。


如何获得的面试机会
在微博上认识的一位阿里人,帮忙内推了简历,投的是淘宝前端部门(FED),压力好大,当时好像是周四的下午三点多内推的简历,接着阿里发来短信要求完善简历,过了一个小时简历通过筛选(内推仅仅免了笔试,简历筛选还是要有的)就发来面试安排,第二天的下午三点面试(其实面试提前了一个小时。。。)


第一面(技术20多分钟)
没有面试经历,第一次面试,很紧张,说话都说不成个。


问题大概是这样的,记不清了。


VUE实现原理


JQuery操作是一个怎样的过程


Ajax实现步骤


介绍一下你最成功的项目


项目所用技术的优点


流应用是怎么的产品


流应用如何做到首页资源加载


 


其实JQuery和Vue只是用过,而且JQuery基本不用,所以答的很烂,面试官对流应用比较感兴趣,这个可能是我拿到二面的钥匙。


第二面(技术30多分钟)
周一就开始了第二面,间隔时间很短,不得不佩服阿里的效率。


第二面比较精细,问了很多问题。


安卓上如何实现1px像素线


介绍自己最成功的项目(hybrid)


如果把应用做成兼容web的版本,该如何进行


手机为什么有click 300毫秒延迟


如何克服click 延迟(Tap)


如何实现Tap事件


点透事件(也和300毫秒延迟有关)


还有一道简单算法题(答的比较失败)


如何同团队一起工作


你能为阿里创造什么价值


。。。。。


还有好多,覆盖面很广,都知道,但是回答的不好。。


第三面(HR20多分钟)
 


第三面就是HR面了,HR先打电话约了时间(周三晚上10点)


其实hr面还是比较轻松的,就是聊天,包括自己的项目,为什么要做项目,自己的比赛,为什么要做比赛,觉得有没有比你优秀的人,优秀在什么地方,为什么要去阿里前端。。。。


最后HR总结:


优点: 在校期间就善于在生活中发现问题,有产品经理思维。


缺点:技术实践较多,但深度较差(拿不到offer的原因)。


为什么会失败
自从大二下学期开学,做出来迷你课表之后,就一直在使用5+Runtime开发,没有换平台,踩了很多坑但是对JavaScript没有更深的研究,过度倾向于解决问题,但是忽略了如何更好的(技术)去解决问题,眼界狭窄,没有对技术保持敏感性,在网上忽略了很多自己应该掌握的技术。过多的时间做了很多无用功,重复性工作(项目太多了,不够精)。


环境因素:


学院没有技术氛围,知道JavaScript有原型的没有几个,开设的web课程不够入门标准,大家学习过于分散没有实现技术分享,分享的结果是1+1大于2的,没有分享导致自己活在自己的世界里面,没有危机感,缺少了学习知识最好的途径。


改变
面试之后就开始回归课本,很长时间没有好好看书了,不做项目,节约时间等等等。。。


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


前一段时间一直在不断地面试,无奈个人技术能力有限、项目经验缺乏,最终都没有进入到HR面试环节,全~~挂~~了~~


面试了这么多,结果不是太好,有点儿受打击,也促使我近期静下心来反思自己的问题:哪些技术知识掌握的还不错,哪些还有待提高,哪些是需要去恶补的。


阿里面试了三个部门,都是在二面挂的,网易和滴滴也是各两轮技术面试,加一起就是十次面试经历。在此回忆总结一下,既是给社区朋友的一个参考,反馈社区,更是给自己一个好好的总结。


HTML


HTML5新增了哪些内容或API,使用过哪些
input和textarea的区别
用一个div模拟textarea的实现
CSS


左右布局:左边定宽、右边自适应,不少于3种方法
CSS3用过哪些新特性
BFC、IFC
对栅格的理解
(水平)居中有哪些实现方式
1像素边框问题
JavaScript


图片懒加载
实现页面加载进度条


事件委托
实现extend函数
为什么会有跨域的问题以及解决方式
jsonp原理、postMessage原理
实现拖拽功能,比如把5个兄弟节点中的最后一个节点拖拽到节点1和节点2之间
动画:setTimeout何时执行,requestAnimationFrame的优点
手写parseInt的实现:要求简单一些,把字符串型的数字转化为真正的数字即可,但不能使用JS原生的字符串转数字的API,比如Number()
编写分页器组件的时候,为了减少服务端查询次数,点击“下一页”怎样能确保还有数据可以加载(请求数据不会为空)?
ES6新增了哪些特性,使用过哪些,也有当场看代码说输出结果的
JS模块化的实践
require.js的实现原理(如果使用过webpack,进一步会问,两者打包的异同及优缺点)
promise的实现原理,进一步会问async、await是否使用过
实现gulp的功能
使用前端框架(angular/vue/react)带来哪些好处,相对于使用jQuery
vue双向数据绑定的实现
单页应用,如何实现其路由功能
性能优化


项目中使用过哪些优化方法
输入一个URL,Enter之后发生了什么
(承上)页面的渲染过程
优化中会提到缓存的问题,问:静态资源或者接口等如何做缓存优化
页面DOM节点太多,会出现什么问题?如何优化?
项目经历


这些大公司招聘都是高级工程师起步,所以对简历上的项目会刨根问底。很多很多问题都是由项目中拓展开的,像优化相关的东西,还有前面提到的require.js、promise、gulp,项目中用到了某项技术,高级工程师的要求是:不仅会用,更要知道其原理。对自己的提醒:项目中用到的技术,不能说完全掌握其原理吧,但大致的实现还是有必要了解一下的。


介绍一下你做的这个项目,进一步细问:整个项目有哪些模块,你主要负责哪些
你在项目中的角色
你在项目中做的最出彩的一个地方
碰到过什么样的困难,怎么解决的
(如果你是这个项目的负责人),任务怎么分配的,有没有关注过团队成员的成长问题
前端安全问题:CSRF和XSS
其他


为什么选择做前端(我靠,我都快转前端两年了,还在问这个问题啊…)
你希望进入一个什么样的团队
你有什么问题想问我(面试官)的吗?
前前后后有两个月时间,暂时只回忆起这么多了,如果还有其他的,后期我会补上。


webpack其实也是必问的,由于我说还没使用过webpack,只是了解,写过demo,面试官就没问太深。如果你的简历中有提到webpack,请提前准备好,比如webpack打包原理、如何写webpack插件等。


面试阿里云那个岗位的时候,有要求算法和数据结构,有能力者多多准备吧。


阿里、网易的面试几乎都是围绕项目展开的,所以提醒自己搬砖的时候多想想、多看看,多站在一个高度去看整个项目:用到什么技术,技术实现原理是什么,项目框架怎么搭建的,采取安全措施了吗…


后记


有几个岗位感觉就是挂在了项目上。自己做过一个前后端分离项目,但是经过几次面试,发现这个项目还存在某些问题,比如:整个登录注册系统是不完善的,关于权限的处理上甚至是有很大缺陷的;这个项目的node层只是起到构建前端项目(gulp)、渲染index.ejs、代理转发api接口等作用,但是面试官指出说你这个node也太简单了,导致我都在怀疑这是个假的前后端分离…还是需要大神带多见见世面啊,求带…


虽然五次面试都没成功,但自己也收获了很多很多:认识了大牛hb,一个超有文艺气息的资深前端;多谢fw大大帮我内推阿里,十分感谢您对我的认可;也见到了平时只能在视频上看到的cjf老师,谢谢您的指点;对高级前端工程师所具备的技能有了更清晰的认识;肯定也增加了很多面试经验…


再好好提升一下,打算过段时间重新上阵,也祝自己多点好运气,早日进入心仪的企业,毕竟,当初来杭州的时候就是以网易、阿里为目标的。




-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



总结:

看到这里,想必大家对一流大公司对前端的要求,自己要如何提升,如何准备面试,都有想法了吧;

个人看法,不要再去盲目的刷面试题,看大神博客了;形成自己的知识体系,在保证js,html,css 三大件有严实基础的情况下,多看别人对优化速度,兼容性处理,跨域等常

见问题处理;(其实这些处理方案你看了就知道的,立马给人你 niubi 的感觉好吗)

学习框架 react ,vue,angural;要用好,理解,还要看源码,最好知道怎么实现;jq 的应用场景还是有很多的,所以jq 要做到熟悉源码;

webpack,git,grunt都要用熟,webpack源码可以搞啊;

node.js 其实学习价值是最高的,它应用范围广,还可以把自己提升一个档次,变全栈有木有!至于学习到什么程度,看上面的面试要求啊!


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


3,你得到什么?

你得到尊重!尊重!尊重!

哈哈,知识改变命运还是有道理的;来看看阿里的福利吧;

----------------------------------------------------------------------------------------------------------------------------------------------------------

  1. 前端地位:比你想像中高,从薪资力度来看,属于一线地位
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

先谈薪资福利

  • 标配15寸MBP、13薪+年终奖(具体多少看你心情和水平),你牛逼的话还有红包、股票!
  • 五险一金、商业保险,子女/爱人商业保险;异地入职搬迁费5K起,团建、outing说走就走!
  • 园区餐厅、健身房、篮球馆、浴室等一应俱全;闲了逛逛园区,游游湿地、看看马爸爸养的鹅!
  • 公司各种俱乐部,阿里十派,派派精品!你要是单身,就赚到了,各种相亲贴!务必挑你最爱的!

再谈人生理想

  • 技术人的理想,是成为业界的牛人,一呼百应备受拥戴!在天猫,你可以踩在一帮牛人的肩膀上战斗,weex?斑马?Angular?Vue?React?统统不在话下!
  • 在天猫,你不再是屌丝程序员,是最懂商业的技术达人,打造世界级的品质购物之城!作为天猫最一线的团队,你掌控的是天猫最核心的业务!各种大型活动,各种技术各种方案各种玩转!双十一,全球购物狂欢节,因你而精彩!

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
吃饭:
吃腻了1、2。。7、8号食堂的美味?不想去园区里面的同乐会、弄堂里,那就吃点不一样的!(记住,一定要叫上买单的boss!)









--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

总结:

不要拦我!




--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值