菜是原罪,985硕前端秋招实录。。。

820 阅读19分钟

秋招投了大概有20-30家公司吧,听过名字的公司都投了,一些小公司也尝试了,虽然大部分都没有消息,有些笔试全a也是挂,给面试的有字节跳动(本科有在字节实习一年)、小红书、快手、58同城、同花顺、美团、万得、腾讯云智,走完流程的有字节和美团,给offer的就只有美团了

有时候也挺后悔读研的,明明当时字节可以转正,非要出来读个研,读完后还不一定能回得去。估计还是自己没想清楚为什么要读研,本科的时候一直想着保研保研,真保上研了也不知道自己为什么要读研。读研期间对前端的热情也不如从前(估计受字节实习时天天加班,动不动就通宵的影响),然后一直在做课题忙论文,实习没找、秋招投得又晚,最后就惨不忍睹了。。。

也顺便也记录一下自己整个秋招存在的问题吧:

  • 投得晚投得少:9月份陆陆续续开始投递,一开始也只盯着大厂投,一些小公司没去尝试,等到后面再去投那些小公司,基本上就没什么机会了。
  • 面试准备不足:这应该是最大的问题吧,前半年一直再忙论文、忙实验,前端没怎么碰,最开始面试时其实很多都知道但答得不好,或者答得比较笼统,给面试官印象非常不好。
  • 不会利用人脉:本科很多和自己关系比较好的同学都留在了字节、美团、腾讯这些大厂,然后没有及时找他们内推查进度,甚至自己都有字节实习leader、同事们的微信,也没想过找他们推一下,导致最开始在字节这边的流程卡了很久,最后不了了之。

字节跳动-飞书业务(基本上就裸面)

9.5 一面

自我介绍

聊了聊为什么要读研,如果再给你一次选择你是选择留在字节还是去读研?「上来就是暴击,给我干懵了

聊了聊自己读研期间的课题,以及投的论文是怎么回事。

前端相关的就问了一个:为什么hooks不能写在if/else等语句里?「之前有看react源码,从这方面答的

你是怎么理解React的?「感觉飞书那边特别喜欢问这个问题,就是我答得非常烂,没有从数据驱动 ui = f(state)、响应式 fiber + 异步可中断更新、组件化 component,hooks、跨平台 scheduler;reconciler;render;vdom,合成事件系统等方面去答

写个koa的compose。「前一天晚上还写过,但一紧张,面试时全忘了,写得磕磕巴巴,最后也就写了一半

算法题:二叉树最近公共祖先。「用map记录一下节点信息就能出来,不过,第一个compose没写出来,后面就没有心思写算法题,写得也非常磕巴,最后也是在面试官不断的提示下给了个思路

反问:具体业务

9.15 二面(挂,本来一面就该挂的)

自我介绍

聊了聊读研期间自己的课题以及论文,读研期间的收获。「开拓了视野bababa的,说得我自己也有点脸红。。。

当时在字节实习期间参与的项目,以及遇到的难点。「提了一嘴当时后端他们用redis做缓存,然后上线期间被打挂了的事,然后就问如果要我设计这个后端系统该怎么设计,我不会啊。。。

你是怎么理解React的?「也是答得非常烂,非常笼统

React18新特性(concurrent)?「这个自己是知道的但是答得不好,甚至一些hooks的名字都叫错,还瞎说一些错误的观点

webpack tree shaking。「知道,但是忘了

两道算法题:

实现数组的reduce方法。

忘了,好像还挺难的一个题,暴力能做,但是面试官要我想不暴力的方法。「不会。。。

思维题:老鼠毒药问题。「也不会。。。

(估计面试官也不想为难我,最后给了个评价:“技术栈有点老”,那确实,连简历都是两年前的)

反问:具体业务,前端最新的技术有哪些?

快手

9.20 一面(挂,这不挂就有鬼了,后面复盘都不知道自己答了些什么鬼玩意)

自我介绍「都开始说得磕磕巴巴,给面试官一个非常不好的印象

问了问研究生期间的收获。「有点说不上来

聊了聊实习期间参与的项目。「以前实习的时候有接触到低代码平台,刚好这个面试官也是做这个的,然后就一直在问我这方面的东西,就是差不多都忘光了。。。

介绍自己做的那几个项目。

前端相关:css的flex布局

前端安全:xss、csrf、中间人攻击这些。「csrf答得不好,然后还一直在跟面试官犟

TCP和UDP的区别

口撕:二分算sqrt(x)

算法:节流,防抖

反问:低代码;如何看待现在前端的发展;快手是react用得多还是vue用得多

9月份后就开始慢慢自我怀疑、自我否定了吧,每天都在懊悔、都在焦虑,看书看不进去、刷题刷不进去,论文也不想看,实验也不想跑。到10月份的时候,找上自己的好友,聊了聊前端相关的东西,调整了一波心态,又接着面了。

小红书(泡池子)

10.12 一面(面试官应该是对着题库在问,问的东西都没有难度)

自我介绍

聊了下研究生期间的课题

聊了下实习参与的项目

css的position有那些属性,简单介绍一下

实现三栏布局

讲讲flex布局常用的属性

javascript类型判断,typeof instance Object.prototype.toString Array.toString这些

javascript中的this「javascript两年前就滚瓜烂熟了,理解还算深刻,这部分都能答得很好

javascript异步代码看输出结果「比较简单

es6相关,箭头函数这些,也是没难度

react中的diff算法设计思路以及与vue中的对比「有看过这方面的源码,答的还算可以

react的fiber

script标签中defer和async的区别

跨域相关(jsonp、同源策略这些),以及请求预检

算法题:最长无重复子串(滑动窗)

10.19 二面(面试官是真滴帅)

自我介绍

低代码项目具体功能的实现,如果要实现协同编辑,该如何做「emmm,当时瞎说了个方案,感觉这个协同编辑问题并不好解决

react原理

http1、2、3「标准的八股

webpack tree shaking。「好在之前恶补了这个

定时器相关的问题,大概是一直设置定时器会不会造成栈溢出,不过我应该是听岔了,回答了浏览器中定时器的原理「setTimeout嵌套层数大于5会出现4ms的延迟,balabala。。。

算法:实现es6中的flatten()「忘了,没写出来,面试官都看不下去了,然后换了个题

一个嵌套对象,给个id,查找其路径「一个简单的dfs

反问:部门业务;vue用得多还是react用得多(vue),我主要以react为主,Vue只过了几遍文档,没具体用过;

10.22 三面(他主要做跨端的,我不太熟,所以感觉答得不太好)

自我介绍

为啥选择前端「感兴趣呗

两道算法题:

实现个栈「用了好几种方法实现,包括最原始的单链表,还讲了讲symbol等一些javascript语言基础那些东西

出现一次的字符串「做完后夸我javascript非常熟,话说能不熟嘛,以前那真是沉迷javascript这门语言,沉迷到废寝忘食

问了问react native 和 小程序的东西。「但我了解得不太多,只能凭感觉答

扣简历上写的低代码项目,然后就是痛苦的开始,答得其实还好,整个逻辑都捋清楚了,只是他觉得这个东西没有意义,没有解决目前生成的代码可读性差的问题「提前pua,我就造了个轮子,真没做啥高端的,最后说我做东西没有目标性balabala的,那可能也确实是这样。。。

之前在字节实习的收获

反问:问了下部门情况,主要是以跨端为主

字节跳动-Data前端(泡池子)

10.13 一面

写个判断JavaScript类型的函数。「还能有这么简单的题?

看你用到了Object.prototype.toString()方法,能给我介绍一下JavaScript中的Prototype吗?为什么不用Object.toString()或者Array.prototype.toString()。「别的地方的toString都被重写了,所以不能用

简单定义个TypeScript类型,例如对象的key是string类型,而value类型

介绍一下Typescript的范型

讲讲JavaScript中的事件循环

了解函数式编程吗?简单实现一个curry函数。「这个秒了

了解React Hook吗,它解决了怎样的问题

了解React 18的最新特性吧,讲讲concurrent是怎么回事

了解Webpack不,讲讲Webpack的打包流程

实现一个useRequest Hook,例如let {data, loading, cancel} = useRequest(url);「翻过ahook的源码,大概知道怎么回事,写起来很顺,cancel可以用调abort方法实现

讲讲从浏览器输入url,到dns解析的流程

你觉得还有什么是你比较擅长,但我没有问到的吗「谦虚中。。。

算法题:最长无重复子串(滑动窗)

反问:部门的业务;如果通过的话二面大概什么时候(虽然第二天就二面了)

10.14 二面(面试官看起来年纪比较大,所以问的问题有点偏八股)

自我介绍

写个css,当文本没有超过容器宽度时居中显示,超过宽度则换行,并左对齐「display:tabel-cell或者width:fit-content,但是面试时忘了怎么写

讲讲css的flex布局

实现下Promise.all「讲道理,别说Promise.all了,要我手撕个Promise都没问题

js闭包,this指向,es6的let/const,箭头函数等等

js异步,异步代码给输出「给的是nodejs下的,然后还比较复杂,不过也不难

service worker「只是听过,知道是用来做缓存的

场景题:设计个权限系统「emmm,这个估计答得一般,开始还以为要从后端的角度答,后面发现只要答前端逻辑就行,然后一直在回忆当时字节实习时找leader审批时的流程

jsBridge原理

http1/2/3,http和https,协商缓存强制缓存「纯八股,没啥好说的,面试官最后评价说基础很不错

算法题:组合总数,给个数组[1,2,3],target=8,求所有等于8的组合。「dfs秒了

反问:具体业务

10.20 三面

自我介绍

为何选择前端「感兴趣

拿了哪些offer「我个fw,像是能有offer的样子嘛

研究生期间做的项目,以及期间接触前端的情况「好像面试官有点嫌弃我研究生两年对前端接触的不够多,但我自己觉得自己毕竟在读研,重心还是得放在科研上

实习做的项目,挑一个说「一直在问:“还有其他难点吗”,emmm,有我也回忆不起来了啊

算法题:

版本号排序

计算对象中值是数字的总和(类似深拷贝的思路)

总之,两道都不难

反问:data部门的具体业务

11.1 HR面(害,估计是这块答得不好,然后就一直没有后续了)

自我介绍

如果在给你一次机会你还会选择读研吗?「我tm直接破防

为什么选择读研

职业规划

如何有效沟通

在实习过程中,自己的缺点

成就感最大的时刻

data部门的具体业务知道嘛「我。。。大概知道吧

看到你平常也有做后端,那么为什么不选择后端「后端java/python/数据库这些都会点,但不够精

如果只要你做前端呢?

反问:base是哪(北京)

58同城(挂)

11.10 一面(面试官人很好,而且还和我是一个学校的)

自我介绍

介绍一下实习参与的项目

介绍自己做的那几个项目,有哪些难点

SSR和CSR的区别

前端性能指标评估

前端的ci/cd

开始聊天「因为是同一个学校的,然后慢慢就聊起来了

反问:58还招人不;具体业务是啥

11.11 二面(挂了)

自我介绍

职业规划「有点懵,一时间不知道怎么规划

实习参与的项目

jsBridge之类的东西

setTimeout为啥不准「线程间通信会有延迟之类的

算法题:不重复的数字

接下来就是等offer的不知道第几天,焦虑,破防,看书无力,刷题无趣,论文看不进,实验不想跑,要不直接开摆等春招算了。

南方电网

12.02 (面试是过了,想着要不找个家里的电网躺着算了)

同花顺(数据可视化方向的,虽然我可能对这块并不熟悉)

12.07 一面(睡过头了,而且也没收到一面的邮件,还以为没有面试来着)

自我介绍

算法题:大数相加(相减的思路也说下)

为什么选择前端,为什么不考虑算法方向「喜欢前端,还有算法我卷不动,之前投的论文还在大修,怎么也得有个顶刊论文再投算法岗吧

介绍自己的项目,以及为啥要做「emmm,大部份都是自己有某个想法,然后就去做了,或者说尝试一些新技术之类的

React原理相关

怎么学前端的,平常会看哪些东西

设计模式,以及用过哪些设计模式「这太多了,什么单例、观察者、发布订阅、中间(职责链)模式、原型模式、策略模式等等,有时候可能用到了,但一时间不知道他叫什么名字

Promise的原理「观察者模式

平常看过哪些项目的源码「React、Vue、Redux、React-Router、axios、nodejs、v8这些平常都有去看过,就是有些看的比较早,有点遗忘

反问:可视化这块需要看哪些资料,如何学习

12.09 二面

自我介绍

为什么选择前端

职业规划等等

算法题:含有4个元素的数组,删除其中一个数能获得最大整数「很简单的题

Electron原理有了解吗「老实说只会搭壳子,顶多再封装些C++ addon

React 并发渲染,setState的更新流程

前端优化相关,缓存除了indexDB、service worker、localStorage外还知道别的不「面试官提了个memory cache

介绍做的几个项目,遇到的难点或者坑

js的for in和for of,如何把一个对象变成可迭代对象「实现[Symbol.iteractor]属性

反问:具体业务,React多还是Vue用得多(Vue)

12.17 HR面

自我介绍

家庭情况,父母对你的影响

对base有什么要求

在校担任职务「本科和研究生都是副班长

在校期间的其他经历

个人爱好「打游戏,喜欢研究游戏里面的一些机制,喜欢写游戏攻略,在某个玩家论坛上也有1w多粉丝之类的

喜欢看什么书

实习的收获

读研期间的收获,举个具体的例子

期望薪资

反问:无

美团(offer,呜呜呜,谢谢hr姐姐)

12.07 一面(面试官是个小姐姐,哭了,还以为前端没有女生,而且人特别好)

自我介绍

在字节实习时参与的项目

定时器原理setTimeout/setInterval「以前翻过v8的源码,本质上都是二叉堆,然后也有等待队列和就绪队列,与react里的scheduler的实现有异曲同工之处,大概

js异步「答得比较多,而且自己对协程也有些许研究,然后就从异步非阻塞io、事件循环等一直展开说了

react和preact的区别

react和vue的区别

react有没有什么缺点?

react hooks为啥不能写在if/else里「底层实现就是个链表,一个有序的东西

前端优化相关「知道些通用优化方法,比如离线化、缓存之类的,别的不会

计算机网络相关

TCP和UDP,三次握手和四次挥手「四次挥手忘了

websocket的原理「只知道用,原理忘了

看哪些书,如何了解前端的新东西?「我。。。推特上关注了尤大大和Dan,没事就看他们发推,各种公众号,掘金之类的,书籍的话,es6标准入门和js高级程序设计都看了不下4遍、webkit技术内幕、nodejs来一打c++扩展、css新世界等等

算法题:挑一个自己比较擅长的标签「我。。。半个多月没刷题了,题感不一定还有,就说了个滑动窗

滑动窗口的最大值「一道hard,而且以前做的时候也是单调队列做的,现在也忘了怎么写,就暴力写了一遍

实现个LRU「这个简单,只是写到一半,然后到时间了,就把没写的思路给说了一遍

反问:具体业务;跟我说可以入职了自己选,甚至做后端客户端都行;

12.08 二面(面试官应该就是我的leader了,人也特别好,就是最后说加我微信没加)

自我介绍

了解美团优选吗「简单点进去看过」“准备得不充分啊”

为什么选前端「兴趣,以及有ui设计天赋之类的

拿了哪些offer「我。。。都在泡着

低代码相关「以前实习时有简单参与过这个

如何看待裁员「我。。。提升自己的竞争力吧,即使不幸被裁了也能去其他公司做自己感兴趣的东西

如何提升自己的竞争力

学过的计算机课程「计算机网络,操作系统,编译原理,计算机组成原理,数据结构,数据库,算法,c/c++/java/python,nosql数据库,通信原理等等

“计算机基础和前端方面你希望我问你哪个”「想都没想就说前端,然后面试官说了一句挺在理的话

“你作为科班出身,如果不熟悉计算机基础的东西,只会前端,那和那些外包有什么区别”「然后就开始带上痛苦面具,毕竟上次看计网这些还是在9月份

OSI五层模型,分别介绍

物理层「研究生做的课题偏通信,所以能拓展出非常多物理层的东西,包括信源编码、调制、发射机硬件等等」、数据链路层、网络层、传输层、应用层

列举一些使用tcp和udp的应用层协议,http(tcp)、websocket(tcp)、http3(udp),为啥http3会用udp

为啥不选择算法,而选择前端「算法我卷不过别人

https相关,证书验证流程,为什么会出现中间人攻击

如果线上某个页面不显示了,可能是哪些问题「dns劫持,但我不太了解这个

cdn原理「很早的时候看过,然后忘了

别的可能有点忘了,反正都是些计算机网络的东西

算法题:

组合总数,和字节那个一样,但是,有负数,这就只能暴力写了,可惜没有转过弯来,一直在想怎么剪枝

如果给你发offer,你来吗「我。。。给我发了我就来

反问:具体业务;“来了的话你想做什么都行”;可以选上海吗;“上海招满了,所以只能来北京,而且北京互联网公司多呀”;

12.13 HR面

自我介绍

为什么选择读研

你成绩很好,是保研的吗「早知道就不保研了

实习期间最大的挑战

实习期间部门同事对你的评价「评价都还不错,但是leader以及其他几个同事都劝我留在字节,然后给转正,也许当时就该留在字节

字节实习一年的收获

读研有哪些收获

期望薪资「其实没啥好期望的,哪怕是个白菜价我也能接受,毕竟fw一个

如果给你发offer你来吗?「表现出那种态定且坚定,给offer就来

有同学在美团吗「本科实验室的挺多都还留在美团

反问:无

最后offer开的薪资也还可以,不是白菜价,也算知足了,而且一面二面面试官人特别nice,加上本科挺多同学还在美团的,城市也是自己以前熟悉的城市,没啥好拒绝的,毕竟今年形式就这样,后面老老实实改论文吧,实验室我们这届的第一篇顶刊估计得靠我了~

万得(挂,挂得莫名其妙)

一面(两轮)
第一个面试官

自我介绍

数据结构基础知识「什么链表、栈、队列、广搜、深搜、树、堆、图反正全给说了一遍

OSI五层网络模型

介绍一下自己做的项目

实习期间参与的项目

最后评价,基础非常扎实,然后很优秀之类的

第二个面试官

自我介绍

为啥学前端

介绍一下自己做的项目

实习期间参与的项目

实现个三栏布局

如果app里面实现个页面,react native和纯webview哪个更好

场景题:线上的某个页面加载慢,如何优化

然后我就挂了

腾讯云智

12.14 一面

自我介绍

实习参与的项目

说说es6的新语法

react fiber

react hooks能实现类里面的所有生命周期吗

webpack、vite、rollup适用场景

less/sass解决了什么问题「漏了个模块化,当时忘了这个点

“你前端基础很不错,我也不多问了,你还有什么想问我的嘛”

反问:腾讯云智具体业务;技术栈;春招还会开嘛;

总结

有一段时间是自我否定到了极点,也不知道活着的意义是啥,数不清的感谢信,到处泡池子,笔试笔完也没消息,还有像小米凌晨两点还给我发了两封感谢信=_=。。。加上后面要忙毕业论文,也不知道春招还有没有时间准备,焦虑ing。。。