字节后台go一二三面面经

一、Helo后端
问了好多操作系统的东西,可惜操作系统基本不会
1.聊项目
2.进程如何调度
3.对象是如何分配到内存的
4.go 逃逸分析(完全没听过)
5.redis rehash过程
6.https过程
7.编程题,给定一个数组,删除x时,会同时删掉所有的x-1和x+1,此时会得到x分,求能获得的最大分数
然后面试结束几分钟后就收到了拒信


二、被捞
一面:
全程脑子发蒙,还好下一个面试官在开会,就今天先到这了。
1.自我介绍
2.先来做题吧
(1)给定数组求最大值(优化时间复杂度)
(2)零钱兑换(LeetCode原题)
3.Go GPM模型
Go 管理依赖 gomod命令,gomod最后的版本号如果没有tag,是怎么生成的
4.三范式,反三范式?什么时候反三范式?反三范式有什么坏处
5.联合索引,给定一些情况问是否会用到索引
6.Redis,缓存击穿,缓存雪崩,原因,区别。
7.有一千万的请求,只有一千个缓存(基本都能命中),如何处理?优化思路

二面
好事多磨吧,中间因为面试官忙,给换了两次时间
1.疯狂怼项目
比如ES,现在千万的量级你聚合,现在还应付的来,那如果之后再大,要怎么处理。(我当时答的是加缓存,每天去缓存N久之前的,然后只需要聚合当前至N的量就没那么大了,面试官说,这样维护成本太高,而且如果出现数据偏差,需要回溯之前的数据,相当于给我留了个之后考虑的思考题)

总之,感觉面试官不太满意,感觉我有点拘泥于当前的数据量,当然面试官还是很不错的,最后建议我加强一下对项目的理解,加强一下对技术的理解深度。

2.算法题
(1)LRU
这个之前写过,倒不难,但是面试官让我优化,在高并发场景下要如何保证不出错,而且要效率高。

(2)给定数组,输出每个比当前位置大的第一个数。
比如给定 10, 2, 3, 5, 4, 8,20,7
应该返回 20,3, 5, 8, 8,20,-1,-1

三面
疯狂怼项目,大概怼了一个半小时
全程都是自己工程介绍,以及给你超级多的场景去设计

最后问了问最近在看什么技术,然后刚一提,就开始让我介绍。
大概快一个小时的时候,内心OS:快让我写到题吧,别问了……




还记得的几个场景设计:
1.每天几亿的送审量,如何保证送审安全,以及如何提升派单效率
2.DBProxy,为什么要用?他的好处是什么?是怎么提升管理?他还有什么好处?
3.有个场景:每篇任务都要经过多人审核,要怎么实现?(有本事去把功能给产品怼回去)(不要经过多次审核)
4.分库分表、读写分离
5.结果推送怎么做?MQ?

四面:
一堆场景设计(针对项目)
前端了解多少?模板啥啥啥知道么?(统一:不知道)
代码:合并区间

整体上大概时长是四五十分钟


然后就是超长的等待,HR小姐姐说流程审批已经走完了,但……就是一直没收到意向书。
终于收到了,来补一下面经,跟大家分享一下。



#面经##校招##字节跳动##golang工程师#
全部评论
恭喜老哥,老哥base哪啊
1 回复
分享
发布于 2020-08-03 15:38
楼主你好,请问你是实习、校招还是社招?岗位是什么?开发的话,是Java方向还是C++方向?或者其他语言方向~
点赞 回复
分享
发布于 2020-07-31 20:41
阅文集团
校招火热招聘中
官网直投
楼主面的哪个部门呀~
点赞 回复
分享
发布于 2020-08-01 00:07
楼主你好 下一年给我内推好吗😁
点赞 回复
分享
发布于 2020-08-01 19:57
问一下楼主:删除x时,会同时删掉所有的x-1和x+1,这题怎么做呀
点赞 回复
分享
发布于 2020-08-03 10:58
Go 管理依赖 gomod命令,gomod最后的版本号如果没有tag,是怎么生成的? 这个怎么答的?
点赞 回复
分享
发布于 2022-03-06 21:29

相关推荐

                  "下/载":chaoxingit点com/4904/在2024年,Flutter已成为移动开发领域的热门框架。对于那些希望快速上手并精通Flutter的开发者来说,本文将提供一份详尽的学习指南。我们将从零基础开始,带领您快速入门,并逐步进阶到实战水平。一、初识Flutter首先,我们需要了解Flutter是什么。Flutter是由Google开发的一款开源移动UI工具包,用于构建高性能、高保真的移动应用。它采用Dart语言,提供了一套丰富的组件和工具,让开发者能够轻松地创建出美观且具有一致用户体验的应用。二、快速入门环境配置:在开始之前,您需要安装Dart和Flutter SDK。确保您的计算机上已安装最新版本的Android Studio或Visual Studio Code,以及Android SDK和Xcode(针对iOS开发)。创建第一个Flutter应用:打开终端或命令提示符,运行flutter create myapp命令,这将创建一个名为“myapp”的Flutter项目。进入项目目录,运行flutter run命令来启动应用。了解基本组件:Flutter提供了丰富的UI组件,如Text、Button、ListView等。通过组合这些组件,您可以构建出美观的界面。在您的应用中探索并熟悉这些组件。状态管理:随着应用的复杂性增加,您需要管理组件的状态。Flutter提供了几种状态管理解决方案,如Bloc、Redux和Provider。选择适合您项目需求的状态管理方案。三、进阶实战自定义组件:除了Flutter提供的标准组件外,您还可以创建自定义组件。学习如何使用Dart语言编写自定义组件,并根据您的需求进行定制。性能优化:随着应用的增长,性能问题可能会成为关注点。了解如何优化Flutter应用的性能,包括减少布局重排、使用适当的动画和避免不必要的渲染。热重载和热重启:在开发过程中,热重载和热重启功能可以帮助您快速迭代和测试应用。学习如何使用这些功能来提高开发效率。发布应用到应用商店:当您的应用准备就绪时,您需要将其发布到应用商店(如Google Play商店或App Store)。学习如何准备应用的发布版本,并进行测试和发布流程。四、持续学习与社区支持
点赞 评论 收藏
转发
3 40 评论
分享
牛客网
牛客企业服务