前言
在一个水群的一天,我认识了一个正在字节实习大牛,为什么说他是大牛。因为同样大三,我还在学校苦逼,大牛以及是第二段实习(太强啦)。然后他在群里说他现在的部门还有个hc,ohh,我刚好前两天查了我在字节的流程锁以及解了------因为在牛客上乱搞,然后被锁住了:(------于是,我找上了这位大牛,在他的建议下,开启了海投!
hhh,由于我简历太la,被这个大牛内推后,直接简历就挂了
关于海投
在进行海投后,大部分都是石城大海的,Boss上基本上没人鸟我这个蒻冀,但是一下子投上瘾了。除开在Boss上丢,我还去了牛客上头,应该是运气好,遇到了个字节内推和滴滴内推的。然后我就约到面试了。
这个时候的我是比较激动的,毕竟是第一次,有面试,至少不是简历挂。(这说明我也不是太拉嘛)
滴滴一面,二面
讲真的,滴滴的面试并不是很难。两位面试官都很友好(日常实习只有两面,今天还没出结果,应该是寄了)。面试跟我在牛客上的看的面经差不多,开始先来个自我介绍,然后开始抓我项目里面的细节问,比如我写了一些优化的东西,monorepo
,对于一些工具的封装。基本上是把我列在项目亮点里的全部提出来问了一遍qwq(我丝毫不慌,巴拉巴拉能说一大把)。然后就到了经典八股了,比如什么作用域和作用域链,原型和原型链。大部分都是顺着我讲到什么,面试官就问什么,所以整个面试过程很舒服。
二面就有点小痛苦了,这归咎于我是还没准备就开始投,然后八股文看的少(因为问的基本上都是八股文)。二面问了二十多分钟的项目,然后面试官突然来一句"我看你一面没问过css,那就来点css吧",我内心是裂开的qwq。对于我这种flex
重度用户来说。结果也很明显,答的一团糟。两轮面试我都贴下面了,真的很简单。
字节一面
跟滴滴一样,先自我介绍和项目走一套,抓了我项目里的几个点问了一下,配置化表单和配置化表格这些,项目问我是丝毫不带一点慌的,不过问优化我估计就得噶qwq。然后这位面试官也喜欢问css,也是一顿折磨,问了一些什么position
的属性,然后应用场景等等,也问了垂直居中,不过没加条件(不知宽高),还问了选择器,包括优先级这些。因为我提前示弱了,我八股拉,是flex
重度使用者,然后他问我个flex
是由哪三个属性组合的,然后我就噶了qwq。然后就到了笔试环节~
第一题:事件循环的题
这种题都是典中典了,把事假循环玩明白随便答,不过出题者要是想ex人,也是个ex人的方法。然后回答完肯定会问事假循环的~
javascript
setTimeout(() => {
console.log(1)
});
new Promise((resolve) => {
console.log(2);
for (let i = 0; i < 10000; i ++) {
if(i === 9999) resolve();
}
console.log(3);
})
.then(() => console.log(4));
console.log(5);
// 结果:2,3,5,4,1
第二题:三栏布局
对于一个盒子左中右,左右100px
,中间自适应。如果宽度小于360px
就换成上中下。
我是flex
直接弄的(毕竟我是flex
重度用户)。然后也用到了媒体查询,但是具体细节不知道咋写了,面试官很好,没有追究我qwq
第三问:链表的倒数第k个元素
qwq这个题我是直接暴力的,就是遍历一遍拿到链表长度,此时要么提前存入数组,然后返回arr[arr.length - k]
,要么在遍历到达第k位置返回
我这个写法给面试官干沉默了,不过也没说啥
我后面问面评的时候,提了一嘴这种写法,他笑了笑说:重在思路嘛。我:内心很慌qwq。因为好像一下子真不晓得怎么写起来优雅了。能跑就行
第四问:函数柯里化
这个题其实我是没写出来的,只写了两层,也就是sum(1,2,3)
=> sum(1)(2,3)
,并没有把sum(1)(2)(3)
写出来。写的时候,沉默震耳欲聋,好慌,然后脑子就发抽了。
题解我丢着了,我们一起再学学。
javascript
// 多参数柯里化;
const curry = function (fn) {
return function curriedFn(...args) {
if (args.length < fn.length) {
// 我知道要递归,但是一时半会不晓得怎么递归了qwq
return function () {
return curriedFn(...args.concat([...arguments]))
}
}
return fn(...args)
}
}
const fn = (x, y, z, a) => x + y + z + a
const myfn = curry(fn)
console.log(myfn(1)(2)(3)(1))
字节大概问的就这些,回想起来也不是很难,没有问网络,没有问框架源码,没有问计算机系统,算法给的也不是那么难。同滴滴面试一样,是个人准备不足qwq。不过我很满意,至少三个面试,两个面评还可以,嘿嘿。而且,我目前学校大三不放人,真要实习,还得旷课qwq。所以接下来就先不投简历了。这三次面试给的收货很大,让我意识到我本身缺陷在哪,需要补哪。虽然大部分是八股,但是有些确实可以多学学。技多不压身嘛。
总结
不管是滴滴还是字节,八股占比还是很多的,我个人在工作室开发来说,crud经历的有点多,久而久之对于这种本来应该是很基础的东西,却忘一干二净(我相信大部分人也是这样)。在业务不断添加的情况下,大部分都是直接组件库一把嗦,更别说我面对的大部分是后台这类的了。这也是我突然相投实习的一个原因。想去扩展自己,换个地方锻炼自己。不想总在舒适圈呆着,就跟我写算法一样,一个简单的dfs
我一下子就能秒了,简单的dp
,贪心
等我都能写的很快,但是我却只是拿着滚瓜烂熟的思想去写的(暴搜/遍历)。一遇见没写过,或者不熟的,就很痛苦。比如最近看到的子序列问题
。这些都需要我慢慢去探索,慢慢去学习。
大致就这么点想法了,后期会开始抓着薄弱项慢慢去补。一步步完善自己。
如果有想一起刷算法的可以加我,互相交流题目的思路~