本文为转载文
作者:十一月 de 嚣张
链接:https://juejin.cn/post/704770…
昨天,是我在字节的最初一天。
去年入职的时候,我就在想,本人会在字节待多久,一年?还是两年?毕竟“字节一年,世间三年”。当初答案揭晓了,一年零两个月。不过还好,超过了七个月的“均匀退职工夫”。
这一年里,我加入了抖音春节我的项目,在北京关闭开发了两个多月,负责锦鲤会场的开发,从零上手自研的跨端框架,做了不少性能优化,给用户动态页面般的晦涩体验。也意识了很多优良的共事,就不一一点名了。
这一年里,我参加保护了公司级的 Node.js 框架,重构类型生成,优化 TS 开发体验,提供多个 CLI 命令辅助开发。
这一年里,我参加了互娱前端研发框架的建设,基于前端基建以及后端 Node.js 框架,从零建设了前后端一体化的能力,让前后端能够一起开发、构建、部署,既能够做 Page Server,也能够做服务端渲染,通信上前端能够间接调用后端函数,不再须要注册路由,通过高阶函数和装璜器加强函数性能,通过 TS 人造实现前后端类型平安,进步全栈开发效率,胜利反对了抖音 PC 版以及很多外部中后盾我的项目。
这一年其实成长蛮大的,来字节前只做过 PC 端的业务以及 H5,来字节后做了跨端,做了 Node.js。而且字节技术气氛也是很浓重的,各种探讨群能够学到很多常识。经验的两次绩效评估后果也都不错,能够降职了,在入职即巅峰的字节也涨薪了,所有仿佛都在往好的方向倒退。
可我还是要走了,就在有猎头问我看不看机会的时候。对我来说,字节的工作并没有那么好,往年的种种操作让我对字节越来越悲观。我也开始反思本人在这份工作里还能失去什么,持续干上来的意义大不大。到职的念头一旦产生,就会生根发芽,挥之不去。会让我停下疯狂加班的脚步,让本人慢下来,回过头会发现自己已经也挺“卷”的,往前看好像又是无尽的黑洞。开始反内卷,开始厌倦上班看不到夕阳的日子,开始游泳健身,也开始了跳槽之旅。
跳槽其实并不顺利,因为我不想去大厂卷,所以瞄准了守业公司或者外企。10 月底开始面试,第一家面的一个守业公司周末聊了一个小时,做了口试题,让我感觉还不错,下周一 11 月 1 号就跟 leader 提了到职的想法,其实是想能够少做点事有更多工夫筹备面试,后果 5 号也就是周五这家给了我平薪。。下午有家很想去的公司也挂了,因为他们没有前端,想招的是更偏业务的前端,能负责产品以及 UI 的角色,面试时的感觉也比拟好受,所以这周给我打击还挺大的,还好我调节能力还能够,就持续好好筹备呗。
周末做了我下家的第一轮 coding test,LeetCode 715 的变形,对于 hard 我个别间接看题解,不过题解其余语言都有非凡的数据结构,js 的题解有个思路不错,但很难了解而且也不对,我基于他的思路写了个更好了解的版本,并且补充了各种测试用例。周末早晨也做了下微策略的四轮口试,感觉最难的是英语局部,均匀一分钟要做一道选择题,后面查单词节约太多工夫了,前面就看大体意思间接选了,不过也顺利过了。
第二周从外企铃盛开始,很羞愧铃盛一面就挂了。。一开始问我的项目问方案设计之后就是一系列的 js 题目,宏 / 微工作执行程序,一段 React 代码有哪些问题,原型链,Class,纯函数,高阶函数,闭包,设计模式,依赖倒置准则等等,有几个没答对,不过我感觉对我帮忙还挺大的,一是这也是一个查漏补缺的过程,能晓得哪里还有有余,二是设计模式这块让我回去又看了看 solid,感觉其实平时做重构的时候,solid 就是很好的一个实践撑持。
回去筹备了一下,第二天迎来了微策略的面试。微策略每轮都会有一段英语的自我介绍,提前写好背一下,三轮下来感觉本人曾经背的很熟了。第一轮技术面除了失常的各种问题以及手写节流外还有两道算法,第一道没找到原题,大抵就是把二叉树右子节点变成左子节点的右子节点,过后写了个后序遍历,第二道是反转链表,都顺利写进去了。
二面就是聊天,三面 HR 面一开始都说英语,起初词汇量切实不够了,就“Can I speak Chinese?”不过最初也挂了,HR 说我没想好,可能过后说了什么实在想法吧。
周五开始了我下家的两轮面试,第一轮间接就是算法,LeetCode 189 轮转数组,不过 k 能够是正数,这个是前面加的条件,会问你是否有漏掉的 case,如果刷过这道题的可能不会想 k 是正数的状况。我没刷过,就写了个比拟惯例也比拟笨的办法,而后就开始问复杂度,问怎么优化,过后我可能也不苏醒,都扯到链表上了(挖坑),而后他趁势就问了旋转链表 (LeetCode 61) 怎么做,这个我也没做过,但我晓得是双指针。于是持续回到数组上,持续想优化办法,我想了更高效的 api,以及不占额定空间的原地调整程序,其实都靠近答案了,就是没说出最要害的点,工夫就到了。
第二轮考零碎设计,先是问了问我的项目,而后说看你对后端也挺理解,那来设计了 short url 零碎吧,关上 drawio 就开始画,把我能想到的都画进去,而后面试官提了一些条件(左上角),怎么实现这些性能,计算须要多大存储,怎么优化零碎,怎么做到高可用等等。
早晨又面了下滴滴,有 HR 分割我就接了,正好是我共事的前部门,据说不是很好,不过也没给我过,尽管我感觉面得还不错,反馈说不适合。
周末简略筹备了下迎来了第三周,从我下家的第三轮 CTO 面开始,不过在美国,所以是早上 9:30 面的,仍旧是先聊我的项目,而后一道经典题:从输出 url 到渲染页面都产生了什么,我各个方面都说了遍,而后开始一点点深刻了,寰球多个节点的话 DNS 个别怎么做,怎么返回最近的节点,这个我没理解过,他也跟我说了下实现。HTTPS 相干,怎么握手,怎么验证证书等。怎么让页面渲染更快,系统地说了下。后端怎么做负载平衡,说了下有哪些算法,rr,p2c 等,还问了一个更底层的问题,忘了是啥了。而后问用户信息比方余额等怎么存储,我很懵不晓得问啥,就扯微服务的话个别是拆分比方用户核心,交易中心等等,而后他问抉择什么样的数据库,SQL 还是 NoSQL,我说了 SQL,查问快啥的,他说是强一致性。最初考一道算法,LeetCode 647 回文子串,先说思路,我一开始说了个 O(n^3)的,他问怎么优化,提醒了下回文子串的特点,我就懂了,利用对称构造,从两头向两边延长,复杂度多少?O(n^2)。好,那写吧,写完跑一下 case,漏了一种状况,再调整一下,ok。
而后又加面了一轮,说第一轮不是很好,让前端的再面面,周四上午又面了一轮技术,是个快手的前端老哥,正好往年也做了春节我的项目,他们快手退出了咱们字节才顶上了,就聊了聊,而后就是一些 js 的题目,手写 curry,看我写的挺快,就加了道算法,没有原题。。
让我边思考边交换下思路,我说先看看有没有法则,发现没有法则,他问没有法则怎么办,我说暴力求解,他说那你写个暴力的,最初也写进去了,就是 n=100 的 case 一开始没思考到,花了点工夫。最初问了下这个要怎么解,面试官说双指针,其实就是保护两个队列,一直取最小值。
最初就是联结创始人面,早上 7 点。。一开始她也说英语,说不好意思这么早面试,我又被迫亮出“Can I speak Chinese?”大法,回到“有句话叫早起傻一天,我预计明天就要傻一天了”。而后就是从我上大学聊到当初,感觉把我各种经验都问了个遍,最初问问题,我问了一个如何学英语,她讲了下她们有个耶鲁毕业的 engineer 靠看剧学了 n 国语言的故事,而后说有什么问题能够给她发邮件,让我感觉还挺亲切的。
第二周就出 offer 了,稍稍 a 了下,还比较满意吧,就接了。前面还有些其余面试,这里就不多说了。这次跳槽之旅感觉最大的提高就是做题,基本上没碰到过刷过的题,然而都能做进去,包含前面有个让我写 100 以内的数字转罗马数字的:
另外 HTTPS 是个高频题,每次必问。而后就是肯定要先找几个面试找找感觉吧,查漏补缺,想面的放到前面。最初就是肯定不要裸辞,压力真的很大,尤其是我还背着房贷。实际上我在两周前提到职的时候还没定好下家,只是有人说我骑驴找马,我感觉面的也差不多就提了,不过还好最初后果还能够。
结语!
我是林三心,一个热心的前端菜鸟程序员。如果你上进,喜爱前端,想学习前端,那咱们能够交朋友,一起摸鱼哈哈,摸鱼群,加我请备注【思否】