本文为转载作者:十一月德骄链接:https://juejin.cn/post/704770...昨天是我在字节跳动的最后一天。去年加入公司的时候,我就在想,我要在字节跳动待多久,一年?还是两年?毕竟“字节一年,世界三年”。现在答案揭晓,一年零两个月。幸运的是,它超过了七个月的“平均任期”。这一年期间,参与了抖音春节项目,在北京闭关开发了两个多月。我负责锦鲤场地的开发。像静态页面一样流畅的体验。我也认识了很多优秀的同事,就不一一列举了。这一年,参与维护公司级Node.js框架,重构类型生成,优化TS开发体验,提供多种CLI命令辅助开发。这一年,我参与了互娱前端研发框架的搭建。基于前端基础设施和后端节点。它可以用作页面服务器或服务器端渲染。通信前端可以直接调用后端函数,无需注册路由,通过高阶函数和装饰器增强函数功能,自然实现前后端类型安全通过TS,并提高了整体栈开发的效率,成功支撑了抖音的PC版和众多内部中后端项目。事实上,今年增长了很多。来字节之前,只做PC端业务和H5。来到字节之后,我做了跨端和Node.js。而且字节技术氛围也很浓厚,各种讨论组都能学到很多知识。我经历过的两次绩效考核结果也不错,可以升职了。正值就业高峰期的字节跳动也涨了薪水。一切似乎都在朝着好的方向发展。但我还是不得不离开,就在猎头问我是否看到机会的时候。Bytes对我来说效果不佳,今年我对Bytes越来越失望。我也开始反思我还能从这份工作中得到什么,以及继续工作是否有意义。辞职的念头一旦生起,就会生根发芽,挥之不去。它会让我停止疯狂的加班,放慢自己的脚步。回头看看,我会发现,我以前挺“卷毛”的。放眼望去,仿佛是一个无尽的黑洞。开始内向,开始厌倦下班看不到日落的日子,开始游泳健身,开始了跳槽之旅。跳槽其实并不顺利,因为不想去大厂,所以就瞄准了创业公司或者外企。面试从10月底开始。周末和一家创业公司聊了一个小时,做了笔试题,感觉还不错。下周一,11月1号,跟领导提了辞职的想法。通过做一些事情,我有更多的时间来准备面试,但是公司在5号星期五给了我同等的薪水。.下午很想去的一家公司也失败了,因为他们没有前端,想招一个更偏业务的前端,可以做product和UI的,而且面试的时候感觉不太舒服,所以这周还是得处理一下。挺大的,好在我的调整能力还不错,继续好好准备。周末在下家做了第一轮的codingtest,LeetCode715的改造。对于hard,我一般直接看解法,但是其他语言有特殊的数据结构。JS的方案思路不错,但是很难理解,不行,我根据他的思路写了一个比较好理解的版本,加了各种测试用例。我还在周末晚上参加了四轮微观策略笔试。我觉得最难的部分是英语部分。平均而言,我必须在一分钟内做一道选择题。前面查词太浪费时间了,后面才选了大概意思。进展顺利。第二周从外企领升开始,很惭愧领升同时死了。.一开始问完项目设计,有一系列的js问题,宏/微任务执行顺序,一段React代码有什么问题,原型链,Class,纯函数,高阶函数,闭包,designpattern,dependencyinversionprinciple等等,有几个回答不太正确,但是我觉得对我还是挺有帮助的。首先,这也是一个查漏补缺的过程。我可以知道哪里有不足。第二,设计模式让我回头再读一遍。看着solid,感觉solid在做重构的时候是一个很好的理论支撑。我回去准备了,第二天我们接受了MicroStrategy的面试。每一轮MicroStrategy都会有英文的自我介绍,要提前写好并背下来。三轮下来,我觉得自己背得很好。第一轮技术方面,除了正常问题和手写节流外,还有两个算法。第一个没有找到原来的问题。大致就是把二叉树的右子节点变成左子节点的右子节点。当时写了第一个后序遍历,第二个是反向链表,都写成功了。第二个是聊天,第三个是一开始HR要说英文,后来词汇量实在不够,就说“CanIspeakChinese?”但是最后我挂了,HR说我没想好,可能我当时说的是真的吧。周五开始在我隔壁的房子进行两轮面试。第一轮直接讲算法,LeetCode189旋转数组,但是k可以是负数。这是后来加的条件。系统会询问您是否有遗漏的案例。如果你通过了这道题可能不会想到k为负数的情况。没刷,就写了个比较常规比较笨的方法,然后开始问复杂度,怎么优化。可能我当时没清醒,全在链表里面搞了(挖坑),然后他就顺势而为。我问如何做旋转链表(LeetCode61)。我没有这样做,但我知道这是一个双指针。于是我继续回到数组,继续思考优化方法。我想到了更高效的API和不占用额外空间的就地调整顺序。其实都接近答案了,只是最关键??的一点没说,时间到了。第二轮系统设计考试,先问项目,然后说你对后端很了解,那就设计短url系统吧,打开drawio开始画,能想到的都画,然后面试官方提到了一些条件(左上角),如何实现这些功能,计算需要多少存储,如何优化系统,如何实现高可用等等。晚上,当HR联系我时,我拿起了它。刚好是我同事以前的部门。都说不太好,一直没给我。虽然觉得面试不错,但是反馈说不合适。周末做了简单的准备,就迎来了第三周,从隔壁家的第三轮CTO面试开始,不过是在美国,所以面试时间是早上9:30。还是先讲项目,再讲一个经典的问题:从输入url到渲染页面发生了什么,方方面面的我都讲过了,然后开始深入,如何做DNS的情况下世界上的多个节点,以及如何返回到最近的节点,这个我没看懂,他还跟我说了下实现。HTTPS相关,如何握手,如何验证证书等如何让页面渲染更快,系统的说。后端怎么做负载均衡,有哪些算法,rr,p2c等等,问了一个更底层的问题,忘记了。然后问怎么存储用户信息,比如余额等,一头雾水,不知道问什么。如果说微服务,一般会拆分成用户中心,交易中心等。然后他问选什么数据库,SQL还是NoSQL,我说SQL,查询快,他说强一致性。上次考的是一个算法,LeetCode647回文子串,先说一下思路,我一开始说O(n^3),他问怎么优化,指出下一个回文子串的特点,我明白了,用symmetry结构,从中间向两边延伸,到底有多复杂?O(n^2)。好了,写吧,写完跑case。如果漏掉了一种情况,再调整一下,就ok了。然后又加了一轮面试,说第一轮不太好,让前端再见面。星期四早上,我又进行了一轮技术面试。他是快手的前端小哥。今年刚好在做一个春节项目。他们快手退出了我们的字节,我们上了顶,就聊了起来,然后就是一些js题,手写咖喱,我看我写的很快,就加了个算法,没有原题。.让我边思考边交流。我说先看看有没有花样。如果没有图案,他问如果没有图案怎么办。我说暴力解决。n=100的情况一开始没有考虑,花了点时间。最后,我问如何解决这个问题。面试官说双指针其实就是维护两个队列,不断取最小值。最后是联合创始人面试,早上7:00。.一开始她也是说英文的,她说这么早面试不好意思,我被逼出示大法“我可以说中文吗?”,又回“有句话叫早起是好事”愚蠢的一天,我想今天将是愚蠢的一天。”然后,从上大学到现在,感觉自己的经历都问完了。最后,我问了一个关于如何学习英语的问题。她告诉我,有一个耶鲁毕业的工程师,是看戏学的。n种语言的故事,然后说有什么问题可以发邮件给她,感觉亲切。第二周offer出来了,稍微A了下,挺满意的,就接受了。后面还有一些其他的采访,这里就不多说了。感觉这次跳槽最大的进步就是做题了。刷过的题我基本上没遇到过,但是我会的,包括要求我写100以内的数字然后转成罗马数字的题:另外,HTTPS是一个高频率的题,必须问每一道时间。那你就得先找几个面试,看看自己的感受,查漏补缺,把你想面试的放到后面。最后,一定不能裸辞。压力真的很大,尤其是我还有房贷呢。事实上,当我在两周前辞职时,我还没有决定去哪里。只是有人说我骑驴找马。结语!我是林三鑫,一个狂热的前端菜鸟程序员。如果你有上进心,喜欢前端,想学前端,那我们可以交个朋友,一起钓鱼哈哈,摸摸鱼群,加我,请注意[思想]
