笔者身边有很多在阿里不同部门的朋友, 也曾经被面试过阿里, 也面试过很多求职者, 这里笔者通过自身经验, 来谈谈如何面进大厂(比如阿里).
为了保证回答的逻辑性和堵有所获, 我将按照以下3点来谈前端如何才能进大厂(阿里):
- 阿里不同部门的技术和要求
- 大厂喜欢的求职者需求具备哪些能力和潜质
- 如何打造程序员的职场核心竞争力
首先像阿里, 字节, 腾讯这些大公司, 旗下会有非常多的子公司, 子部门, 不同部门之间由于研究领域不同, 所以对技术的要求, 等级也不同, 所以你需要根据自身的技术偏好, 选择或者投递对应的部门. 但是大厂对前端技术要求都会有一些共性, 下面笔者会详细介绍.
阿里不同部门的技术和要求
这里忽略一些假大空的前端技能需求(这些大部分都是培训机构的套路), 我们直接看看Boss上阿里不同岗位的一些要求.
对应届生的要求
- 具有良好的前端和计算机基础(特别是 js)
- 皮实乐观自省
至于前端基础, 至少要把下面的知识答对70%:
中高级前端工程师
岗位描述
参与芝麻信用事业部个人信用、商业信用、企业信用 等业务产品线研发; 参与移动端 H5、React、小程序、Node.js 应用框架体系建设以及前端工程体系建设。
岗位要求体
- 熟练掌握移动端 H5 、PC端开发,熟悉主流移动浏览器的技术特点;
- 熟练运用 JavaScript 语言与 HTML5、CSS3 等技术;
- 熟悉模块化、前端编译和构建工具,如 gulp/webpack/rollup 等;
- 熟练运用主流前端开发框架,并理解其设计原理,例如:React、Vue、Angular 等;
- 能提供完善的 WebApp 技术方案,了解 native 移动应用开发,有类 react native 开发经验者优先;
- 对技术有强烈的进取心,具有良好的沟通能力和团队合作精神、优秀的分析问题和解决问题的能力;
- 熟悉 Node.js Web 应用开发,有koa、egg.js等开发经验者更佳。
高级前端工程师
- 精通各种前端技术(包括HTML/CSS/JavaScript等),熟悉ES6+语法,具备跨终端(Mobile+PC)的前端开发能力,熟悉网络协议(HTTP/SSL),熟悉常见安全问题和对策;
- 熟悉前端工程化与模块化开发,并有实践经验(如gulp/webpack、VueJS/React等);
- 至少熟悉一门非前端的语言(如NodeJS/Java/PHP/C/C++/Python/Ruby等),并有实践经验;
- 对前端技术有持续的热情,良好的团队协作能力,提升团队研发效率,实现极致性能,通过创新交互优化产品体验;
加分项(满足其一即可)
- 具备客户端能力或者Native&Web技术融合经验;
- 熟悉Canvas动效&WebGL3D以及各种传感器技术;
- 复杂企业后台应用开发经验;
- 数据可视化产品设计开发经验;
- 大规模/高负载场景下NodeJS应用开发、运维经验;
- 良好的算法背景,对机器学习有研究和项目实施经验;
- 有独立的开源项目或者参与知名开源项目经验;团队管理能力;英语沟通能力。
资深前端开发工程师
工作职责
- 负责共享业务团队相关业务开发,包括支付体系、基础能力、创新业务等相关C端及B端业务或系统的前端架构设计、开发与优化,覆盖Web应用、支付宝小程序、微信小程序、多端组件库、可视化搭建等多个方向;
- 参与团队前端工程化体系建设,提升研发效率、研发质量;
- 与其他团队成员合作打造提升公司整体运营效率的产品;
- 关注前端前沿技术发展,能够对团队输出新的技术与思想,并落地到现有项目中。
任职资格
- 3年以上相关工作经验,有扎实的计算机基础知识;
- 深入理解Web前端开发技术,包括HTML/CSS/Javascript等;
- 至少熟悉React/Angular/Vue等其中一种主流的前端框架,并了解底层原理;
- 熟悉网站性能优化,了解浏览器实现原理;
- 了解http协议的基本原理,了解常见的web性能优化手段、常见漏洞;
- 优秀的团队合作能力,沟通顺畅,追求卓越,乐于创新,敢于尝试。
加分项:
- 了解Andriod开发或IOS开发、部署相关知识
- 熟悉node开发,能够开发node web, node cli, node desktop等类型的应用
- 熟悉linux及操作系统概念。
前端高级专家
工作内容:
- 负责前端界面的前端构建,各类交互设计与实现;
- 负责组件库设计优化和高效使用;
- 负责前端工程化工具实现;
- 负责智能研发体系的建设。
职位描述:
- 至少5年以上前端开发经验,本科学历及以上,其中2年以上的H5开发经验,掌握移动端开发(H5 Hybrid),以React/Vue为主的技术栈开发经验;
- 精通HTML(5)、CSS(3)、JS,精通页面布局,SEO和语义化,熟练使用LESS或SASS开发;
- 精通DOM、BOM、小程序等前端技术,掌握面向对象编程思想,对常见JS框架有丰富的经验和深入理解,完整的源码阅读最佳;
- 熟练掌握构建、打包等框架及生态圈技术,具备实战经验和优化经验;
- 具备性能优化知识体系和实战调优经验,具备架构设计能力;
- 对多浏览器兼容性、多设备和Android/iOS版本兼容问题处理有一定的经验;
- 热爱技术、主动钻研、沟通和协作能力优秀,抗压能力强;
- 至少掌握一门后端开发语言及数据库技术。
接下来我们再来谈谈大厂对求职者的一些偏好.
大厂喜欢的求职者需求具备哪些能力和潜质
其实衡量一个工程师的价值, 会从几个维度:
- 工作经验
- 学习能力
- 可持续性
- 可挖掘性
- 影响力
对于不同阶段的工程师会有不同的侧重, 一般大厂除了工作经验之外, 还要考量求职者的技术持续性, 比如说是否会坚持一件事, 是否能创新性的解决问题, 这里可以给大家提点忠肯的建议:
- 坚持写博客, 复盘
- 做有价值的开源项目
- 参与到前沿技术社区中, 锻造影响力
如何打造程序员的职场核心竞争力
如何打造程序员的核心竞争力, 其实是一系列的事情. 在面试阿里或者其他大厂时, 我们需要对自己以及技术有个全面的定位, 剖出自己的价值, 在代码能力具备之后还要考虑其他方面的能力, 比如沟通能力, 领导力, 产品思维, 解决问题的能力, 根据我们上面提到的不同段位面试的要求和职责, 我们需要深度思考自己的长短板, 发现自己感兴趣的领域从而持续深入, 而不是什么都想做, 却什么都做不精. 希望能有所帮助.