毕业挣扎终于上岸大厂,2021 只是起点不是终点

2,903 阅读16分钟
「时光不负,创作不停,本文正在参加2021年终总结征文大赛

关于课业

本人去年也就是研一,终于意识到不能摆烂了。本科计算机混了4年,就是认真上课做完作业的水平由于完全不知道要找工作这回事就申请了研究生想着还是逃避下工作。然而又到了秋招季室友由于比我早一年毕业,这位卷王开始一个个接着面试给了我好大的压力,被迫加入了准备和找工作的阶段。

正好去年10月因为疫情国外也是全程网课,我趁着这个机会抓紧时间回国。还有最后的一年毕业提前开始刷实习经历,自己是0实习,在前端后端算法中纠结了一段时间后,发现自己确实对前端的技术感兴趣有热情。虽然学校的内容主要是以后端的内容为主,比如cloud computing这门课, 要自己连机器部署docker和K8S,测试并发。比如我选修了mobile又搞了一段时间的安卓开发,期末作业写了个小APP。至于前端的部分我只有一门Web Dev里教了.NET Framework MVC,用C#+ng2开发网页,主要内容也是难在处理orm和数据库model,鉴权的部分。

因为算是科班所以上手前端其实并没有想象中困难,我开始了为期两个月的高强度学习计划。

关于第一段实习:在字节被军训的我

2020年的10月,正好是秋招的时间,我也开始了日常实习的投递。 但是开始投递的时候我前端水平非常之有限,没有完成过完整的一个前端项目,leetcode没有超过100题(可见之前有多摆烂),css连垂直居中都不会,只会一点jq+html的简单项目比如提交个表单。 但是我打开牛客看面经的时候,我整个人:????

我自己也清楚的知道,要混进大厂,一定要相关实习经验背书。所以立刻马不停蹄开始准备一边准备简历开始了投递一边系统性的刷前端三板斧的书籍。

讲讲大概作息把 中午起床,收拾吃饭健身。2点开始读犀牛书最新的那版,当时还没中文,我直接刷的英文书。大概粗看两个章节到4点

4点开始看React相关项目,自己动手写一点简单的Todo-list 两小时的practice主要是为了熟悉框架和js语法

晚上刷2小时的leetcode 能刷多少刷多少 20分钟做不出来直接看答案

再看2小时的面经。不会的记录下来,带着问题去找MDN/国外的博客。

前端一开始的学习曲线真的陡峭,并不是很难理解,而是特别特别的杂。但是自己保持了大概两个月就开始面试了。一开始是有赞网易之类的中小厂,面着面着总结一下自己的不足。大概是自己确实表达能力不错,一开始就开门红拿到了offer。本来已经觉得差不多了,但是觉得自己还可以冲冲,也被字节和快手捞了。因为实习主要考察的是基础,当时其实基本没有前端上手经验完全靠着自己科班生的直觉以及leetcode算法能力最后救我一命。 图片名称(去了字节怎么能不晒工牌呢) 作为实习生,当时第一段选择了字节,不为别的,字节实习生成长真的快。(是的 我就是被骂的那种贼卷的实习生)经常11点这样下班,同时依旧保持了学习的习惯,当时购买了高程4 也认识了一群前端的小伙伴,一起讨论js讨论问题,到现在都还有联系。每天在工作业务之余也在恶补各种知识。

作为一个前端接触了2个月,上手的项目大概等同于

图片名称

字节的微前端eden+Ts+less以及相关的泳道啊 配置啊,调试charles开发环境啊。我真是项目都跑不动。到后面硬学不懂就厚脸皮的问,到后面能独当一面分一些需求写,从简单的页面到复杂的混合APP。我真是被爆锤了很久很久。好在我遇到了一个非常非常好的leader,给了我时间,入职一个月基本没有给我任何需求,后面每一次代码CV的非常非常仔细纠正了我很多的问题,教我怎么写各种复杂的交互 这也是为什么到后来去了腾讯代码CV评分的时候我拿了组内第一,而且非常高分。

关于第二段实习:我为什么离开了字节 去了微软亚研院

很感谢字节的让我第一段实习给了我成长的机会,但是一个是工作时间太长了,我同时还有学校每周几十个小时的作业和课程。白天我加班到11点走恶补前端知识,晚上还要写学校的作业和论文,每天都是2-3点才能睡。5个月下来真的有点撑不住了,不仅影响工作也影响了学习。另一个是工作内容逐渐熟悉,想看看不同公司的内部基建和文化。

所以我决定重新找一下第二段实习,2021年1月17日正式离开了字节。入职了微软亚洲研究院,就只有互金一条街的距离,所以并没有太大的换了工作的实感直到开始工作。

工作内容更加的复杂了,因为是研究院并不对外提供业务,一般只是做一些内部算法的POC落地。所以自己虽然是前端进去但是要负责写内部的数据平台,了解Azure云服务的很多概念和指标。最后的开发也是必须要自己写后台的接口和文档。

在这里遇到了超级多厉害的同事和能学习的对象,每天的会议都是有新的想法新的内容,也没有太push实习生的产出但是大家都非常用功,而我基本每天都是6点准时下班,回家写作业喝喝酒】 图片名称

第三段实习: 腾讯PCG,

其实腾讯拿了好几次实习的offer了,但是都是被不同的组捞的,为什么我投了pcg,因为我自己是对在线文档这种重前端的项目比较感兴趣的。但是那个组并没有捞我反而被看点捞了,我自己在MSRA做完了基本一整个项目之后,学校也到了假期于是我就去了深圳开始了为期3个月的深漂生活。

e53f1152e524bee781e22e2a910bbc0.jpg 先说说pcg和看点,虽然外部评价非常一般但是我自己确实也学习到了很多的东西,因为自己在这半年多的实习中已经成长为了一个能完成独立需求的实习生了,特别是在被字节军训了之后来到腾讯会觉得:?嗯 开发流程这么随意的?嗯?前端基建这么糟糕的

所以我有了之前的一些经验,我也就申请做了一些内部脚手架的升级工作,以及关于新框架的调研之类的任务。另一方面负责了很复杂的前端动效的部分,一直以来我css和相关动效都算是我开发中的短板,但是写H5活动非常重样式和动效完全和之前字节偏toB重逻辑表单的部分不一样。到此为止我也能随手写出很多css的polyfill,解决很多低端机型的兼容ios的兼容以及很多莫名其妙的样式一致性的问题了。

关于秋招 : 努努力还是可以做到的嘛

在鹅实习的末尾,大概7月就开始投递提前批了。大概投递的策略是,外企后端+国内头部大厂前端的核心组。

有了之前的经历简历全过,全部投递都进入了笔试/面试流程。

image.png 到手的有 腾讯微信,字节Data,微软Azure,美团到店,以及蚂蚁数金,阿里淘系,freewheel,华为 以上都是拿的sp-ssp。目前还没有决定接哪家的。(面经可以看牛客的链接)

我自己投的不多,没选择海投的理由是 我觉得面试很消耗精力。网申20分钟,笔试2小时,三面+HR面加起来3个半小时。投一个的成本非常高,像百度网易这种我觉得我拿了也不会选的我就直接没写笔试 。实在没有什么意义。

锁定自己真正要考虑的,下面我稍微分享下自己的经验把。

对于大厂,无论社招和校招,面试的话躲不过去的就是八股文和算法题。

我觉得大可不必抨击算法题没必要,说什么工作中哪里遇得到这些问题,面试非要刷题拧螺丝,甚至把挂了的原因一股脑推给算法题,比如字节就因为没撕出来题直接挂了之类的。。。就我而言我也做过面试官,我挂他其实完全不只是因为没做出来题,说白了前面答得太差或是一般般可过可不过的状态,最后就等于说我希望求职者能用这道算法题证明自己还是可以的。对我而言反而是一次额外的机会,如果前面聊得很好算法题其实就是玄学,一个快排或者手写个promise all就完事了,或者两数之和反转链表这种10行以内的算法题,基本就是白给。

因此我是觉得,刷题肯定要刷的,保持手感,我自己是精刷了180题,我认为高频或者典型的题我反复刷了3遍。完全不在量在精。每道题都能吃透,拿到知道要用什么方式解决,时间和空间复杂度一定要说出来,有没有什么额外的优化方式。

另外一个就是八股文,我作为面试官自己是把八股文分为两类:

  1. 答不上就是扣分我甚至想挂他的基础知识
  2. 有难度,考察知识宽度的。知道更好,不知道也要通过别的去分析一下也要能搭得上话而不是傻不愣登的一句不了解就完事的。
  3. 细分赛道加分题

具体举个例子把,比如“知道什么是BFC吗”,“什么是作用域链”,“讲讲浏览器的事件循环”,“讲讲HTTP HTTPS的区别”,“var let const”, “闭包”

这种日常工作中天天使用而且要注意的问题,你要是答错了面试官会觉得????这种问题都不会,印象分非常差我甚至会想要直接挂的。明明就是很基础,稍微看一下都知道的,如果一开始10分钟就答得稀碎,那我会觉得这个面试者 基础很不扎实,很可能就是业务侠,我不会想他做我同事的。那么就很危险了,并且就算没有冷冻期你的面试评价一辈子都会在系统里,别的组捞你面试都能看得到,如果有个先入为主的“基础不扎实,表达很糟糕”的面评 基本完蛋,K;PI面了。

第二种就是答好了很加分的。典型例子“讲讲浏览器渲染的时候发生了什么”,“讲讲前端工程化”,“讲讲JS引擎的执行”

这种开放的问题 一定是很容易有follow-up question的,而且就是需要你展示出你了解或者你对前端的相关很有了解

如果说前两个都答得不错了加上题做出来了, 大厂offer到手 不过很可能是白菜价。

我自己的经验来讲,定级更好,比如ssp 其实取决于第三种问题 细分赛道加分题 这种问题一般以“讲一个你认为做的最好的项目”,“你简历里写的这个提升了XXX优化是怎么做的”

这种问题才是分价格的分水岭,一定是要把自己做过的项目最厉害的点抛出来是怎么做的,并且是highlight。

我用大概的例子讲讲你就懂了

  • 白菜:讲了一个按时上线,用了几个UI库构建的后管项目,里面写了一个轮播图。
  • sp:讲了用了next.js做了ssr渲染并且解决了服务端渲染遇到的问题,以及做了哪些性能指标优化
  • ssp:讲了实习阶段React server components,并做了团队相关的技术储备,解决了哪些业务上遇到的问题,做了哪些技术积累和内部的文章或者对外影响。并抛出一些可能的风险,谈谈ROI,谈谈在开源社区里的贡献。

为啥第三种能开到ssp?因为大厂晋升就是要这种impact,如果停留在开发熟练工的话是不如做出团队的影响力,你leader或者组长觉得我捞你进来我也有KPI,这本质也是双方的需要,才是对别人来说有价值的。而熟练工确实没什么竞争力,大不了就是进来写业务,可替代性强。要从一个业务中发现优化的空间并且保持学习保持热爱,这才是我觉得应该有的状态。

我的建议:

  1. 早早做技术积累,国外的博客,源码,新项目一定要follow住,没事睡前看看前端社区的新东西或者js conference。总是提升的,大厂的前端公众号倒是可以关注,里面有新东西,也要摸一下他们KPI的感觉。
  2. 早早开始刷题,保持手感,工作日每天写一题
  3. 系统性的看完基础的书籍
  4. 在实习或者工作中,找到积累的点,要发现KPI,自己创造KPI。

关于阅读

今年的技术类书籍,反复阅读的: 《JS忍者秘籍》 《高程4》《深入解析CSS》 这三本真的是狂推,每次读每次收获都不太一样,反复刷了3,4次了吧。

别的书籍:

《原则》:好书,提供一些人生指导和选择。风险

《沟通错位》:满分书籍,如何在沟通中找到两人共同的点,都能做出让步让彼此都能拿到想要的东西。给了很多可行的方案。

《贫穷的本质》:本科读的经济学,怎么可以不读!!

《事实》:一般般把,讲了很多的例子,但是不如之前看的

《亲密关系》:被畅销书骗了 不推

明年的计划:

多看看技术类书籍把,哭晕了。其实没学过操作系统的我,确实欠账很多。应该看看的

关于生活

人一辈子都是在和自己欲望作斗争的过程,减肥健身学习自律。说起来简单做起来可是太烦了。 我日常处于摆大烂触底反弹开卷的过程,当我摆烂到别人替我收拾很多烂摊子的时候我又开始觉得我不能再这样下去了于是开始认真工作一段时间,然后又开始喝酒蹦迪摆烂。

2022 我希望自己:

  1. 不刻意追求低体重同时 体脂能降一些
  2. 坚持跳舞,为数不多不宅家的运动了
  3. 不要宿醉不要宿醉不要宿醉 (或者尽量少喝点呜呜呜)
  4. 不指望脱单但是不要深夜emo

关于入职前的迷茫

接了微软offer之后,到入职前还有两个月,也毕业了。但是好像是突然没有了目标一样,当生活突然没有了面试没有了秋招没有了peer pressure之后就会陷入耍废的阶段。这也是我为什么要做一个2021的总结,我想在2021结束之前找到明年的目标一点点的去实现。

我似乎是一个需要有压力才能动起来的人(简单讲就是self-motivation太糟糕了),回忆过去24年好像都是因为我那点自尊心不愿意垫底所以才努力才导致自己感觉明明可以做到很多事情但是自己因为没有动机就做不下去。

明明优秀的人很多,但是他们离我又非常遥远。只有我入职之后,明确感觉到工作几年的同事强过我我才会想办法追上别人好像这样子我也优秀一些了,我知道这种状态不健康目前又没有什么好的办法。

所以2022 我希望找到一个能让自己持之以恒慢慢变得优秀的办法。我明白我学的任何东西都能在某一天发挥它的作用,所以只要去做,结果就交给时间就好。

目前定下来 技术上的这两个月小目标:

  1. 好好学学C#,.NET
  2. 把games 101看看,前端图形学也是我蛮感兴趣的一部分
  3. 动动手做一下项目
  4. wasm也是一直想摸摸看但是没空摸的东西 可以的话搞搞rust!

尾声

不知不觉快5000字了。。。 这是我来到掘金的第一个帖子,平日里混中文社区比较少,第一次加入就是总结。希望明年能保持一些写作的习惯做一些积累,自己的notion里面其实沉淀也蛮多的,好好的写一写,自己的理解也会更深刻。

总而言之,再见2021, 2022在互联网动荡不堪的情况下,能够做好自己是惟一的办法了。世界在变烂,但是我们可以选择让自己变得更好。