前言
这几天一直有同学问我:我想进大厂,怎么进大厂?
通过跟部分同学的聊天我就可以判定:
当下及未来一段周期的你,如果不发生根本性改变,是一定进不去大厂的,甚至这辈子大厂都跟你无缘。
每个人的职业路线都不同,道路千万条,大厂只是其中一条,大厂也有很多它的问题,比如更制度化的管理,更严苛的绩效考核,更高端的 PUA,更强的竞争焦虑,甚至更不合理的大小周和 996。
但对于前端行业来说,大厂也有它不可比拟的优势,全在于你是如何选择的,无关对错,如果你内心里从不希望进大厂,可以不需要往下看,但如果你对大厂起心动念了,那么请坚持往下看!
什么是大厂
阿里巴巴、腾讯、字节、百度、京东、拼多多、美团、滴滴、网易、快手、新浪、小米...
这些都是比较常见的大厂,但是也分第一二三梯队。
在中国境内的这些大厂,集中了中国最优秀的 1 万多个前端,这 1 万多个前端里面只有不到 1 千个高级前端技术专家,也就是对标到阿里的 P8(年收入超过 200 万为基准线,少部分 P8 也许当下拿不到这么多,之后是可以的)。
如果你去的是一个阿里巴巴的只有 3~8 个人的前端团队,一定要问清楚他是在哪个 BU 的,主要在对接哪些业务以及里面的成长环境,里面有没有 P8 或者是硬核的 P7,请相信我,虽然你进的是大厂,特别是下面说的大厂的二三四梯队的公司里面,可是有一定概率这个团队不能给你想要的(当然在淘系、蚂蚁、妈妈、国际、1688、阿里云、钉钉等这些热门大业务域里面,这个概率是比较小的,阿里巴巴太大了,还有很多很多其他的子公司和团队),特别是技术成长这一点甚至是团队氛围这一点(有可能比优秀的小厂还差上一段距离)。
结论:大厂分一二三梯队(小厂也同理),在大厂控股的所有子公司里面,也分一二三梯队,在某个公司里面的多个部门的前端团队,也分一二三梯队,在一个前端团队内部划分的几个组里面,也分一二三梯队,梯队越靠前,进入难度越高。
进大厂有什么好处?
为什么你想进大厂? 小厂呆着不香吗?
来看下大厂能提供给你什么:
- 更高的工资、年终奖和期权(股票激励),我的经济条件变得更好
- 更好的平台、团队和业务土壤(职业成长),我的能力更丰满
- 更光鲜的职级、公司和团队背景(大厂光环),我会更值钱
- 更广阔的上升空间、历练机会(价值实现),我能挖掘出自己更多潜力
镀金赚钱也好、遇高人见世面也罢,这里面任何诉求,只要你正视它,诉求就天然成立了,不用感到不好意思。
「我想进大厂」和「我想逃离当下」,这是两个平行且不冲突的诉求,但 3 分想进大厂 7 分想逃离的童鞋 和 7 分想进大厂 3 分想逃离的童鞋,心态和诉求核心是不同的,如果是前者,进大厂的希望就会变得渺茫,因为你需要克服的第一关就是逃离的心态关 - 「都是环境的问题不是我的问题」,这个心理功课是逃不过去的,迟早要上,简称心魔。
结论:在既想逃离和又想进之间,需要先把想进想清楚,急躁毛糙的逃离心态,对进大厂没有实质帮助,甚至带来负面影响。
被大厂拒绝的原因
一份简历,几场面试,这就是你跟大厂的距离。 学历低、非科班、培训出身、跳槽高频、外包经历、年龄大,这些大厂杀手,也是距离。 三观匹配度,心智成熟度,认知开阔度,包括乖戾易怒这些性格上的特征,更是距离。
有的问题是表面,有的问题是里子,分不清楚表和里没关系,但要分清楚抱怨和改善。
目前大厂几百个前端团队中的一万多前端,学历低的没有上千也有几百(大专的甚至高中辍学的),出身培训班的同样没有上千也有几百,更不要提跳槽高频的也多的是,干过外包的也不少,年龄大的比比皆是,是的,这是比例也是概率。
人家学历低能进大厂不代表你学历低也能进去,人家学历低进不去大厂也不代表你学历低进不去,其他几个杀手同理,这句话你套在几个杀手因素上好好咀嚼一下。
这段话,麻烦大家如果有耐心,再咀嚼下:
对于敢拼敢干的同学来说: 学历低是问题,也不是问题; 培训出身是问题也不是问题; 跳槽高频是问题也不是问题; 外包经历是问题也不是问题; 年龄太大是问题也不是问题。
结论:你跟大厂的距离不仅仅是学历跳槽等等这些背景,也不仅仅是技术积累项目经验这些能力,也不仅仅是三观人品这些人格特征,从技术到认知格局再到行动力,你跟大厂之间有全方位的差距,每一个都很重要。
如何进入大厂?
一.准备一份优秀的简历
对于程序员行业来说,一份优秀的简历,需要具备几个特点:
- 让招聘者看了很舒服,不会看了就想丢垃圾桶里。
- 让招聘者能很快看到自己想要看到的东西。
招聘者可能每天都需要看上百份、甚至上千份简历,大厂更是如此,一份简历的查看时间可能是按秒计算,没那么多时间去从一堆垃圾信息中寻找亮点。
总结下来就两个词:简洁工整、突出重点。
二.复习要有着重性
我整理了一些大厂常问面试题,包括:HTML和CSS、JS基础、Ajax、流行框架、JQuery、ES6、React等。想看完整版的前端大厂面试题汇总的小伙伴可以去文末领取
HTML和CSS
- 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?
- 每个HTML文件里开头都有个很重要的东西,Doctype,知道这是干什么的吗?
- Quirks模式是什么?它和Standards模式有什么区别
- div+css的布局较table布局有什么优点?
- img的alt与title有何异同? strong与em的异同?
- 你能描述一下渐进增强和优雅降级之间的不同吗?
- 为什么利用多个域名来存储网站资源会更有效?
- 请谈一下你对网页标准和标准制定机构重要性的理解。
JS
- js中的作用域与变量声明提升
- 如何转化类型?
- 什么是面向对象编程及面向过程编程,他们的异同和优缺点
- 面向对象编程思想
- 如何解释this在js中起的作用?
- js中this的用法(经典):
- 说说JS原型和原型链
- 如何准确判断一个变量是数组类型?
- ☆call和apply的区别和作用?
- 继承的方法有哪些?
Ajax
- 同步和异步的区别?
- 如何解决跨域问题?
- 页面编码和被请求的资源编码如果不一致如何处理?
- 简述ajax 的过程。
- 阐述一下异步加载。
- 请解释一下 JavaScript 的同源策略。
- GET和POST的区别,何时使用POST?
- ajax 是什么?ajax 的交互模型?同步和异步的区别?如何解决跨域问题?
- Ajax的最大的特点是什么。
JQuery
- 你觉得jQuery或zepto源码有哪些写的好的地方
- jQuery的实现原理?
- jQuery.fn的init方法返回的这指的是什么对象?为什么要返回这个?
- jQuery.extend与jQuery.fn.extend的区别?
- jQuery的属性拷贝(extend)的实现原理是什么,如何实现深拷贝?
- JQuery的队列是如何实现的?队列可以用在哪些地方?
- jQuery中的bind(),live(),delegate(),on()的区别?
- jQuery一个对象可以同时绑定多个事件,这是如何实现的?
- 针对jQuery的优化方法
ES6
- 列举常用的ES6特性:
- 箭头函数需要注意哪些地方?
- 箭头函数和普通函数之间的区别
- let、const、var
- 拓展:var方式定义的变量有什么样的bug?
- 箭头函数this的指向。
- 手写ES6 class继承。
- ES5的继承和ES6的继承有什么区别?
- ES6 class 的new实例和ES5的new实例有什么区别?
- generator生成器函数:
- 什么是async/await及其如何工作?
React
- react的优势以及特点
- React中的props和state的用法
- react组件之间如何通信?
- 为什么虚拟DOM会提高性能?
- react生命周期函数:
- react性能优化是哪个周期函数?
- 在生命周期中的哪一步你应该发起AJAX请求?
- 概述一下REact中的事件处理逻辑
- 如何告诉React它应该编译生产环境版本?
- 调用setState之后发生了什么?
- react的setState的原理及用法
- setState为什么是异步的?
- 传入setState函数的第二个参数的作用是什么?
最后
我建立了一个编程前端学习交流Q群:群号是1021825891。需要文中详细资料的小伙伴进群即可获取。
祝愿大家都可以拿到自己心仪的offer。