写点什么

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

作者:王中阳Go
  • 2025-01-09
    湖南
  • 本文字数:2282 字

    阅读完需:约 7 分钟

今天分享的是训练营的朋友在作业帮的一二面面经,难度丝毫不逊于各个大厂,很有学习的价值。下面先来看一下该岗位的 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 多人,明年预计扩编,公司倾向将招聘资源向武汉倾斜。

欢迎关注 ❤

我们搞了一个免费的面试真题共享群,互通有无,一起刷题进步。


没准能让你能刷到自己意向公司的最新面试题呢。


感兴趣的朋友们可以加我微信:wangzhongyang1993,备注:infoq 面试群。

用户头像

王中阳Go

关注

靠敲代码在北京买房的程序员 2022-10-09 加入

【微信】wangzhongyang1993【公众号】程序员升职加薪之旅【成就】InfoQ专家博主👍掘金签约作者👍B站&掘金&CSDN&思否等全平台账号:王中阳Go

评论

发布
暂无评论
作业帮的一二面,难度不逊于各大厂_面试_王中阳Go_InfoQ写作社区