作业帮的一二面,难度不逊于各大厂

今天分享的是训练营的朋友在作业帮的一二面面经,难度丝毫不逊于各个大厂,很有学习的价值。下面先来看一下该岗位的JD:

岗位要求:

  1. 熟练掌握Go语言,有良好代码规范和架构能力,要求有持续迭代优化系统性能经验(可接受转语言)
  2. 为各类项目需求设计架构,开发后端功能服务,同团队成员合作并积极提出建议和反馈
  3. 良好的沟通表达总结能力,同产品团队协作,理解用户需求,归纳功能用例,并转化为高效的>技术解决方案
  4. 熟悉常用开源分布式中间件、缓存、消息队列等
  5. 有长期教育培训类系统核心B端系统经验,订单系统经验优先

岗位职责:

  1. 负责核心功能模块的开发和详细设计,参与需求分析和讨论,复杂系统设计
  2. 负责核心模块编码,并优化相关模块,持续性能调优
  3. 负责产品技术架构改进,支持产品功能扩展

工作职责:

  1. 负责在线直播课教学相关系统的设计、实现与维护;
  2. 负责直播课核心服务的架构演进和稳定性建设;
  3. 负责重难点项目的技术攻关;

任职要求:

  1. 计算机相关专业统招本科或以上学历;
  2. 编码功底扎实,熟练掌握Go语言,有良好代码规范和架构能力;
  3. 能熟练使用Webserver、开源存储、消息中间件等,了解原理机制者优先;
  4. 有大型分布式、高并发、高负载、高可用性系统设计及复杂业务场景开发经验者优先;

面试内容

一面

1、rocketmq的延时机制怎么实现的

2、profile

3、kafka 4个消费者3个分区

4、数据库的二阶段提交

5、数据库大事务的影响

6、算法:二叉树中2个节点的最先公共祖先

二面

1、自我介绍

2、毕业后是在深圳还是北京?

3、腾讯的离职原因?

感觉字节那边技术更具挑战性,想实现技术突破,获得更大平台,便加入其商业化部门,因其广告量级庞大。

4、在字节待了三年半,符合预期吗?

5、年初为何想去创业?

工作 5 年半,其中在字节 3 年半,积累了一定经验,想挑战突破,且有电商同事提议,自身在电商方面也有沉淀,便尝试创业。在此期间学到运营、商务等知识,积累与供应商、物流商对接经验,后发现自身优势仍在技术领域,创业中技术发展受限,打算回归职场深耕技术。

6、现在创业之事停了吗?

我这边没有再继续了。

7、创业是亏还是赚?

亏了。

8、做跨境电商的主要难点在哪?

难点在于把控市场、供应链,以及运营和售后等方面,事务繁琐,超出预期。

9、人数规模?

算上招的运营,最多时有十几个。

10、如何保障简历所写保障轨迹的及时率和完成率 98%以上?

主动查询调度中心,周期性查包裹轨迹;用消息表记录并定时对账,防查询任务断掉。发现加主动查询后,因物流商系统延迟,轨迹仍不达标,便做技术调研,从其他轨迹服务商获取轨迹增补,设计增补链路,将单包裹与单物流商对应链路拓展为一对多,增加轨迹分单模块,记录包裹、所在物流商、轨迹服务商的关系。又因多数据源会致轨迹重复,增加清洗去重模块,依据时间、地点等重要信息去重,使多数据源下包裹轨迹果正常,提升及时率。

11、多数据源互补怎么做,如何避免数据格式不一致、重复、冗余问题?

应先介绍轨迹按节点存储,多节点组成配送链路,再依据轨迹状态、部位、时间去重。

12、主动查询的延时时间如何设计、考虑,是直接设定吗?

先根据国家和业务差异定延时时间,有 2、3、6 小时等配置,依据包裹轨迹操作时间与系统接收时间差值定义及时率,不同国家差值不同,时间间隔也不同。

13、延时队列是怎么实现的?

rocketmq。

14、若公司 rocketmq 版本低,不支持任意时间延时,且同一时间多消息,如何设计延时队列?

一开始想用数据库存消息、定时轮询,未考虑性能问题,后想用 redis 设过期时间、利用过期消息订阅通知,仍无法满足数据量大且对时延敏感情况,经面试官提示,用 redis 的 zset。正常方案是将消息存 redis,键值和延时后消费的时间戳存到 zset,为防 zset 过大,用哈希表将键存到多个 zset 里,消费端轮询 zset 最小值,对比时间戳消费。

15、在字节的商业化部门做什么,与广告投放相关吗?

广告的投后风控系统。定时抓取线上全量广告的落地页、图文等,过机审模型,依命中模型策略执行不同处理。

16、性能优化怎么做?

一是语言迁移,从 python 到 golang,利用 golang 特性做并发优化,提升性能,减少实例数与机器资源占用;用 redis 缓存热点数据,降低数据库直接访问,提升读写性能;用事件驱动方式,将复杂逻辑如落地页内容实现、模型规则命中设为异步发至消息队列,打平流量。

17、接下来找工作更看重什么?

希望接触更多技术业务场景,解决业务问题,提升技术,实现职业技术进阶,往高阶发展,优先考虑武汉,因家在武汉。

18、创业与在职场上班,哪种更适合?

经历过后,觉得自己更适合在职场专精某领域,创业琐事多。

19、字节的职级?

20、反问环节:公司的业务场景和挑战?

公司主要负责作业帮直播课偏 b 端系统。直播课是作业帮核心营收源,分 c 端、b 端。c 端涉及学生上课各端、流媒体长链接等服务;b 端给辅导老师提供服务,包括学生信息管理、分层标签、课程信息进度,课前提醒、课中反馈、课后报告批改等。挑战在于业务复杂度高,要服务多种场景,且系统质量要求高,问题第一时间反馈公司,与 c 端不同。

21、反问提升的建议?

主要针对延时队列场景题。

22、还有问题吗?

面试官介绍公司和团队:作业帮 21 年双减受影响,23 年起在线教育管控放松,今年业务超双减前峰值,公司低调。武汉是第二研发中心,直播课 B 端团队后端加前端约 20 人,测试共 20 多不到 30 人,产品在北京,业务在武汉基本闭环。23 年武汉约 100 人,今年 200 多人,明年预计扩编,公司倾向将招聘资源向武汉倾斜。

全部评论

相关推荐

7.12好痛苦,越来越觉得自己像迟钝的人机最近在刷莉蔻,又开始恶补那些算法知识,其实已经学过很多次了不是吗?但是一点也不妨碍这些东西在我脑子里留不下任何一点痕迹啊!想哭😭大一的时候第一次学,后来忘了,大二的时候打比赛又学,大四跑去面试又学,现在又忘了…我的脑子好像一个容量为几kb的临时堆栈,只能存下几天内学的东西,几天过后,内存自动释放,那么多八股咋背下来的啊!!项目涉及到的方法要学,方法相关的方法要了解,知道xx是咋实现的,还要知道为什么xx要这么实现,不xx的话会怎么样。。。面试官以为我的脑子是万能的ai吗,什么都答得上来,围着一个点能展开三四点…唉我真的好容易被影响,周一的面试很顺利很轻松,我就开始放松警惕,不咋接着学了,今天下午的面试一坨,磕磕绊绊,最后面试官还跟我说再好好学学吧还是,尴尬的想找个缝钻进去了。(吐槽环节结束)我也在想为什么那些题刷过几遍之后我还是没印象,是我没过脑子刷吗?是我刷的次数太少了吗?(yes,二者都有)可是头脑里偶然会有个声音冒出来:现在ai都会做那些题了,而且比你做的更好更快,有什么意义吗?(你看,我又开始思考意义了,思考意义是我的逃避方式之一)当然,ai比我可以把我摁在地上打,可是,见过美食博主的视频就等于自己吃过那顿饭了吗,见过旅游博主的视频就等于自己也去环球旅行了吗,会用翻译器就等于自己掌握了那门外语吗?(转变想法:直面现实,既然必须要做,不如创造些意义,欣然地去做)但是就像博主的视频可以作为我们做攻略时的参考,我们是不是也不要对ai有敌意,而是转变想法,ai就是一位优秀的老师,让来引导我,向它学习。ai当然会刷题,但跟我会不会刷题又有什么关系,我自己做出来那些题目当时是有意义的,说的近可以应付笔试面试,说得远了刷题有助于提高未来代码的性能。背面经的意义更不用多说,一方面了解学习这些知识,另一方面借助面试官来拷打自己的薄弱环节,愈挫愈勇,宝宝,你一直不会被轻易打败的,不是吗?(洗脑环节先到这里,我接下来可以做些什么让情况变得更好)1️⃣面试磕巴,不自信不自信很正常,因为我时间不够准备不充分,我过去的经历告诉我,准备足够充分的话,我的语气眼神都很坚定,透露着满满的自信。那么问题就变成了准备不够充分的情况下如何装的更自信。首先,声音要洪亮,注意一些语气词,少点试探性的词汇(应该,感觉,吧)。其次,不会的话就道歉,大方的和面试官说,不好意思,这部分没有准备。最后,磕巴的本质还是不够熟悉,脑子里有话但说不出,周日我自己找个地方念叨念叨2️⃣ 需要准备的内容过多设置优先级,项目>基础技能知识>其他知识- [ ] cs144每个模块的功能,主函数的实现- [ ] 数据结构的基础知识- [ ] 计网八股- [ ] cpp八股3️⃣心态容易被影响拉长时间轴,放宽心态,宝宝你的经历已经告诉你:成果是日积月累的,不是一蹴而就的。紧急准备实习,本来希望就很渺茫,找到了说白了也是运气好,应该给自己做稍微长期一些的规划。尽可能的做到自己能做到的最好。(问题梳理结束,把计划细化到可以执行)🚩短期goal:应付下周一的节子面试7.12- [ ] 刷完链表- [ ] cs144的前三个模块- [ ] 背一轮计网八股- [ ] 数据结构过一遍知识点7.13- [ ] 刷完二叉树- [ ] cs144的期待他模块- [ ] 栈、堆、二叉树🚩长期goal:- [ ] 操作系统的学习- [ ] webserver- [ ] 数据库(心灵除草环节)回到标题,之所以说自己像个迟钝的人机,是因为我害怕变得无趣,害怕变得一板一眼,害怕丧失活力,而最近背东西让我回到了一种熟悉的被考试支配的感觉,放大了这种恐惧。但话反过来讲,“人机”一些是否也意味着在变得更加地professional?再者就是今天被打击到了,自己曾经引以为傲的东西离我远去了,意识到知识不是永恒的呆在我脑子里的,知识那么容易被遗忘,我好难过。如果我可以有面柜子,上面整齐的排列着一个个的小箱子, 我可以把我曾经学到的知识打包好放在箱子里,需要用的时候直接取就好了。还有就是觉得自己永远是个小学生,永远有好多东西要学,不要停止,脑子是越用越快的,不用是会生锈的。抛开这些,我希望我可以拥有自己的信仰,信仰不一定是宗教,但我希望我的信仰是绝对正确的东西,这样脑子会轻松简单很多。我正在寻找一些永恒不变的真理,可以指引我的想法,指导我的行动。好难,不过我可以从自己的经验出发,不断记录,尽量保持开放,慢慢相信些什么,要不太容易被外界打倒了。我不要被打倒。我不会轻易地被打倒。
点赞 评论 收藏
分享
06-25 16:21
已编辑
南昌航空大学 后端
你跋涉过技术面的刀山火海,蹚过了总监面的枪林弹雨,终于站上HR面的“终极舞台”——却发现自己不过是抽奖箱里的彩球,老虎机上的符号,俄罗斯轮盘里那颗随机中弹的子弹!你以为这是“终局之战”?不,这是“鱿鱼游戏”的真人秀:当HR翻开简历如抽扑克牌,你的三年项目经验不如她杯底咖啡渣的图案有吸引力;你侃侃而谈职业规划时,她的眼神像在超市挑临期酸奶——随手一扔就是命运的分界线;那句“回去等通知”更是绝妙魔术:前一秒你幻想工牌照,后秒你已跌入“人才库”黑洞当电子幽灵!这哪里是面试?分明是HR的“淘汰消消乐”:技术面刷掉“不会做题的”,总监面筛走“不会吹牛的”,到HR面?专治“呼吸太大声的”!你精心准备的离职原因,在她耳中像超市广播的促销广告;你颤抖着报出期望薪资,她嘴角一抽仿佛听见了冥币报价;你强撑笑容说“热爱公司文化”,她眼皮一抬——得,今日倒霉蛋KPI+1!最终幕的荒诞剧:当会议室门关上那刻,你不是候选人是待宰羔羊,HR是转盘指针,录用结果是玄学骰子——她手机一震(可能是外卖到了),你简历一合(可能是垃圾桶满了);她笔尖一勾(像在填彩票号码),你人生一拐(像被踹下悬崖的杂技演员)!💡 真相补刀:据求职者血泪统计(知乎:为什么HR不当面拒绝?),大厂HR面淘汰率≈摇号中签率。所谓“终面”,不过是给随机淘汰披上“专业评估”的皇帝新衣——你拼尽全力的冲刺,终成HR下午茶时间的消消乐三连击 💥
ResourceUt...:都是些吃尽时代红利的人只能说我们生不逢时了
点赞 评论 收藏
分享
评论
8
16
分享

创作者周榜

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