大厂前端裁员俩月有感

104 阅读10分钟

毕业三年了,去过传统公司,也去过三线互联网,从21年的随便跳,到23年的找不到,有感而发,写下这篇文章。

截屏2023-11-12 下午8.28.39.png

不要停止学习

之所以从事前端,还得从大学说起。我大学学的是计算机,大一大二忙于校园活动,当团支书、入党,对于未来干什么,很迷茫。在教育机构的忽悠下,花了一万,学了iOS,学了一年。好在我这人比较好高骛远,最喜欢一句诗叫“昨夜西风凋碧树,独上西楼,望尽天涯路”。所以了解当时市场行情,iOS已经不缺初级开发,就业非常窄,所以哪怕我学好了,也非常难找工作,必须得学很高深的东西,比如攻防。所以摆在我前面,要嘛选大前端,要嘛选Java,就业面广,到处都需要,不容易失业。在王立校长,一个阿里微软各呆五年的大佬,我觉得应该是P8,的推荐下,选了前端,比Java简单,刚开始工作几年工资差不多,容易进大厂,因为大学不教前端,web、h5、小程序、app、后端都能做,需求很广。所以选了前端。

当时受到同学的刺激,非常想进大厂,我的同学在大三就已经拿到年薪三十万的offer,他们就是我的榜样,我这个人很喜欢跟别人比,如果我的同学比我优秀,我会想办法超过他们,如果我想奋斗的话,比如初中我想去一中,那么我会暗暗跟优秀同学比较,当时中考是我们班第三名。于是逃课,天天学前端,学习三个月就找到实习,有了两段实习经验,这对于大厂的校招,很加分,你要嘛学历牛逼,985 211,要嘛有丰富的实习经历,我这就算是丰富的实习经历。虽然也面试了腾讯字节,但是最终还是依然没能进大厂。回过头来看,只会海投,却没有把自己的知识体系完全完善。所以一直在碰运气。最终去了一家传统公司做后台管理系统,类似于OA系统。在这里也没忘记努力,身在曹营心在汉,半年后,我成了虚线组长,虽然没有这个名,但是领导会让我承担技术招聘,带实习生,技术也比小组内其他人好,积极主动,会进行技术分享。经过一年零三个月,我去了携程。

之所以能去,其实主要还是市场环境宽松,当时股票大涨,特斯拉涨了十倍,拼多多百度股票翻倍,处于牛市,公司纷纷扩招,当时15k的offer随便拿,阿里云技术面还过了,面试极其简单,其实大厂offer也就拿了一个。

目标达到,就是堕落的开始,于是我开始躺平,主要是没目标就迷茫。干完活七八点就走了,组里的人九点多十点还在,早上也很晚去。而且从不学习,遇到一些问题都得找资深开发。所以被打了两次C,优化。我以前是没有这种忧患意识的,因为C轮流背。但是大boss换人了,所以开始卷。

海水退去,就知道谁在裸泳。

但是我要感谢这次的优化,因为优化让我反思自己,树立未来的目标。如果携程还像以前一样养老厂,大家七点就走人,我一定会在技术这方面止步不前,十年如一日。遇到问题搜百度,一问三不知。

就算这次行情再差,一样有人能够找到工作,我有了携程的经验,并不缺乏面试机会,而是技术面过不了,假设一个程序员,他阿里百度子节offer拿到手软,那她一定是知识很扎实。我举个例子,知识如果像一张网,offer拿到手软的人一定是网很结实,那么我是千疮百孔,umd为啥出现不知道,常用hooks不知道,useLayoutEffect不知道,问啥啥不知道。

大厂和小厂人才并不互通

小厂跳大厂容易,大厂跳小厂难。小厂努努力,把知识点搞扎实,就能去大厂。而小厂压根接不住大厂的薪资,而且你的经历对于他来说,也没啥太大的用处。用面试官的话来说,你也就是维护维护老系统,修修补补,我看不到你值这个价。小厂月薪两万天花板,大厂月薪两万是白菜价。我去面试小公司的时候,15k到顶了,而且极其难找,大厂的经历对于小公司来说,不认。这就好比我想要苹果,而你却给我梨。我去面试小厂的时候,面试官问我架构,在他看来,如果你想拿两万,那么你得有能力从零搭一个项目,并且做好顶层设计,并且各种活都能干,小程序、发布、搭组件库等。而在大厂,你可能只会一个react,也能拿两万,如果是做架构的人,一般是老板的嫡系,在携程我呆的那个组,这样的人,应该相当于P7了,高级研发经理,也才负责一个h5的重构,带十个人,管那么一两个研发经理。假设高级开发,也就是我这个岗位是三十万,之前组里老大,一位高级研发经理说,说晋升一级加三十万,那么资深开发60w,研发经理90w,高级研发120w,哪怕这些有水分,股票暴跌的情况,年终奖又没有,大几十万应该还是有的。这样的人,去了小公司,还不一定能啥都搞得定。本质上来说,大厂和小厂需要的人才,专注的知识点不互通。小厂需要知识广度,小程序也能干,app也能干,从零开始,做好顶层设计,别到时候推翻或者出问题,大厂需要一个知识点一个知识点深度,我可能只写react,把每一行代码写到最优,线上绝对不能出问题,最好能优化优化。

未来规划

猫眼技术面过了,希望hr最后别卡我。我从六月底就知道被裁员了,有幸在公司复习了两个月才拿赔偿走人,后面呆到现在,懒散惯了,一时半会奋斗的精气神没那么快恢复,也复习吐了,什么知识点都好像是从来没学过一样。一时半会也学不完。所以打算先找家公司上班,我觉得猫眼也很不错了,应该跟现在薪资差不多,也算是一个中厂。我问二面面试官想成为资深开发怎么做,他说把技术运用于业务。我有自己的领悟,但不一定对。

所以我的目标是在2-3年内成为资深开发,对标阿里P6,我希望届时出去面试能offer拿到手软,而不是像现在,靠运气,靠背书,就是不靠实力。 我的未来规划就是把每个知识点运用于业务中,但这个业务不仅仅是公司的业务,也可以是自己业余时间创造出来的业务和需求。

学习各大开发文档

vue2、vue3、vuex、vue-router、react、redux、react-router、node、koa、express、webpack、vite、typescript、vue-cli、angular等。但是并不是傻傻看一遍,因为一定会忘。所以应该运用于业务,所以我打算做仿app,例如用vue2仿贝壳,用vue3仿淘宝,不一定要做的精细,但是为的就是把每个知识点都用上。

截屏2023-11-12 下午9.25.25.png

举个例子,这是仿贝壳租房。那么我这里搜索条件就会用到vuex。我这里的tab就会用到动态组件、异步组件、keep-alive。在过去的三年里,动态组件、异步组件、keep-alive我从来不知道,可见我的知识点漏洞到底有多大,用我同事的话来说,你到底是咋进携程的。

为的不是写这么一个应用,而是为了练习每个知识点。再举个极端的例子,比如我今天学了语义化标签,我能不能在这个业务上用到button,用到nav,取代div。

再比如这里有个三角形,这回我用了border方式,下次我再写另一个业务,我能不能用别的方式:clip-path,先不考虑合不合适,先把每种方式全部去用一遍。

搭建各种组合

比如说贝壳用vue2+vuex+webpack,淘宝用vue3+pinia+vite,比如咸鱼用rn,boss直娉用flutter,增强自己的架构能力。你啥都见过了,你才知道一个应用,用什么技术搭配最合适。

组件化

比如在写移动端的时候,就开始仿vant写一个移动端组件库,不一定每一个组件都写,但至少要有一部分去实现,一方面也是加强自己的vue能力。

搭建脚手架

一开始可能还是用脚手架,vue-cli,create-react-app。后面就变成自己从零搭脚手架,就可以各种包自由运用。就可以知道很多npm包。在这一步会继续增强自己的webpack能力。也不仅仅webpack,也可以用vite、gulp。甚至我啥都不用,我用复制黏贴,手动压缩,像没有webpack的时候那样,去体会刀耕火种。

我曾经被面试官问到,有没有自己写过loader,这个确实没有,我想当我达到能自己搭脚手架那个程度,应该会有机会去尝试写个包。

数据结构、源码、设计模式

在我目前看来,这些东西只是用来面试的,我不知道到底会不会用的上。可能能懂源码能改改源码,调优啥的,可能写包会涉及到设计模式吧。我感觉这些东西对于我现在来说实在过于遥远,但是还是会尝试自己写个mini版本,毕竟要应付面试。

八股文

我会很仔细收集每个面试题和答案,并且把答案往深了想,比如说,必包我就总结了六七个应用场景,在比如说跨域全部方式,然后在自己的仿app去应用,比如说我就在一个应用,用jsonp来解决跨域,再另一个应用,我用nginx反向代理。

应用场景题

这种面试官也很爱考,这个可能会和你所在的业务场景有关,比如你说你写了地图,那么面试你的面试官如果自己也有写过地图,他会问你一些地图场景题,这种其实是需要经验。但我觉得也应该多积累多总结。再比如说十万条数据怎么做,那么我就可以给自己在仿贝壳造两万条数据,去用虚拟列表去解决。

那么在这个过程中我可能会去买一些课程,比如慕课网,或者说看一些书,像css的书,红宝书,穿插着来,试图去业务中去应用,比如说看一些react的书,我记得里面有讲过怎么搭建ssr,虽然我在携程的那个项目也是ssr,但是认真让我去从零搭建一个,我没干过,我也不懂原理,我就曾经被比心面试官问到,能不能自己搭建一个ssr,不能,最后可能因为有那么一两题没答出来,体现出能力还不足,不够合适,所以挂了,所以如果能看看书,自己搭建一个srr,仿一个app,然后next也去用一用,仿一个app,我想过两三年,我不管是业务能力,还是代码能力,架构能力,广度深度,技术经验,应用场景,我都比现在极大增加。