快手前端面试经验

第一次面试大厂,没有经验,虽然面前看了两天的面经,但是还是败给了当初被我抛弃的算法(大一下退出算法跑去开发)

一面(60min):

1.自我介绍

2.在平常开发中遇到过哪些问题?怎么解决的?

3.sso单点登录怎么实现的?

4.离职原因?

5.整个软件开发的流程是怎样的?

6.set和map的区别

7.object和map的区别

8.了解promise.all,promise.race吗

9.手撕promise.all

10.了解过哪些排序方法?

11.写一下你最熟悉的排序方法

12.讲一下从浏览器输入url,点击回车后发生了什么

13.TCP协议和UDP协议的区别

14.反问

好好好,看了三天的链表反转,队列、栈二叉树的公共祖先......唯独没看排序(虽然但是排序这么简单的问题我没写出来

这次估计悬了整个一下两道代码题都没答完整,可能是内心有点紧张吧,回头想了下也不算很难的内容,感觉这次错过了真的太可惜了

把两道代码题在复盘一下吧:

const promiseAll = (promises) => {
    return new Promise((resolve,reject)=>{
	  if(!Array.isArray(promises)) throw new TypeError("参数不是数组");
        let resArr = []
		let index = 0
		for(let i = 0;i<promises.length;i++){
		  Promise.resolve(promises[i]).then(res=>{
			index++;
			resArr[i] = res;
			if(index === promises.length){
			resolve(resArr);
			}
    }).catch(err=>{
		 reject(err);
	})
}

虽然但是就这么几行,居然没写出来(还是自己太菜了)

排序算法:

1.快速排序:

function quickSort (arr) {
  let start = 0,end = arr.length - 1
  sort(arr,start,end);
  return arr;
}

function sort (arr,start,end) {
  if(start >= end){
    return
  }
  let temp = arr[start],i=start,j=end;

  while (i !== j){
    while (arr[j]>=temp && j > i){
      j--;
    }
    while (arr[i]<=temp && j > i){
      i++;
    }
    if(j > i){
      let tmp = arr[i];
      arr[i] = arr[j];
      arr[j] = tmp
    }
  }
  arr[start] = arr[i];
  arr[i] = temp;
  console.log(arr)
  sort(arr,start,i-1);
  sort(arr,i+1,end)
}

还要好好刷题,刷题太少了

----------------------

6.16更

没想到这么多人看,总结了快手的凉经,知识点还是掌握的不全面,不过内容确实真多啊,多多加强练习掌握原理,刚面完百度回来复盘,感觉也不是特别的难,就是多注意一些细节,加油!

#我的求职思考#
全部评论
多背点八股吧,这快排再检查下吧,加油
2 回复 分享
发布于 2023-06-13 14:58 浙江

相关推荐

最终还是婉拒了小红书的offer,厚着脸皮回了字节。其实这次字节不管是组内的氛围、HR的沟通体验,都比之前好太多,开的薪资也还算过得去,这些都是让我下定决心的原因之一。但最核心的,还是抵不住对Agent的兴趣,选择了Ai&nbsp;Coding这么一个方向。因为很多大佬讲过,在未来比较火的还是属于那些更加垂类的Agent,而Ai&nbsp;Coding恰好是Coding&nbsp;Agent这么一个领域,本质上还是程序员群体和泛程序员群体这个圈子的。目前也已经在提前实习,也是全栈这么一个岗位。就像最近阿里P10针对前端后端等等不再那么区分,确实在Agent方向不太区分这个。尤其是我们自己做AI&nbsp;Coding的内容,基本上90%左右的内容都是AI生成的,AI代码仓库贡献率也是我们的指标之一。有人说他不好用,那肯定是用的姿态不太对。基本上用对Skill、Rules&nbsp;加上比较好的大模型基本都能Cover你的大部分需求,更别说Claude、Cursor这种目前看来Top水准的Coding工具了(叠甲:起码在我看来是这样)。所以不太区分的主要原因,还是针对一些例如Claude&nbsp;Code、Cursor、Trae、Codex、CC等一大堆,他们有很多新的概念和架构提出,我们往往需要快速验证(MVP版本)来看效果。而全栈就是这么快速验证的一个手段,加上Ai&nbsp;Coding的辅助,目前看起来问题不大(仅仅针对Agent而言)。而且Coding的产品形态往往是一个Plugin、Cli之类的,本质还是属于大前端领域。不过针对业务后端来看,区分还是有必要的。大家很多人也说Agent不就是Prompt提示词工程么?是的没错,本质上还是提示词。不过现在也衍生出一个新的Context&nbsp;Eneering,抽象成一种架构思想(类比框架、或者你们业务架构,参考商品有商品发布架构来提效)。本质还是提示词,但是就是能否最大化利用整个上下文窗口来提升效果,这个还是有很多探索空间和玩法的,例如Cursor的思想:上下文万物皆文件,&nbsp;CoWork之类的。后续也有一些Ralph&nbsp;Loop啥的,还有Coding里面的Coding&nbsp;Act姿态。这种才是比较核心的点,而不是你让AI生成的那提示词,然后调用了一下大模型那么简单;也不是dify、LangGraph搭建了一套workflow,从一个node走到另外一个node那么简单。Agent和WorkFLow还是两回事,大部分人也没能很好的区分这一点。不过很多人说AI泡沫啥啥啥的,我们ld也常把这句话挂在嘴边:“说AI泡沫还是太大了”诸如此类。我觉得在AI的时代,懂一点还是会好一点,所以润去字节了。目前的实习生活呢,除了修一些Tools的问题,还包括对比Claude、Cursor、Trae在某些源码实现思想上的点,看看能不能迁移过来,感觉还是比较有意思。不过目前组内还是主要Follow比较多,希望下一个阶段就做一些更有创新的事情哈哈。这就是一个牛马大学生的最终牧场,希望能好好的吧。说不定下次发的时候,正式AI泡沫结束,然后我又回归传统后端这么一个结局了。欢迎交流👏,有不对的🙅不要骂博主(浅薄的认知),可以私聊交流
码农索隆:和优秀的人,做有挑战的事
点赞 评论 收藏
分享
评论
11
42
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务