山羊很贪睡 level
获赞
100
粉丝
62
关注
9
看过 TA
900
合肥工业大学
2027
量化分析
IP属地:安徽
暂未填写个人简介
私信
关注
鼠鼠大三,回顾大二一整年的技术积累和实习经历,我觉得还是有很多值得总结和分享的内容。希望我的一些经验,能够为即将准备秋招和实习的同学们带来一些启发。由于我的技术栈偏底层,主要面向高性能方向,因此在求职时可以覆盖的岗位范围也相对较广。在今年,我拿到了以下几份offer:阿里巴巴淘天终端:主要方向为框架优化与 SDK 优化;Shopee 搜广推部门;某量化公司实习岗位接下来,我将围绕手撕代码、八股、项目、实习经历和场景题这几个方面,逐一分享我的经验。手撕在无论是大厂还是量化岗位的技术面试中,手撕代码都是极其关键的一环。它直接体现了你的编码能力、逻辑思维、问题建模能力。因此建议一定要系统性训练这部分内容。首先我推荐入门的话,可以先刷刷leetcode上hot100,理论上你刷完hot100对你面试就足够了(这里指的足够是你能把hot100基本都能很快的写出来).接下来你还想继续强化的话(面独角兽和量化),那我十分推荐这里面的 [题单](https://huxulm.github.io/lc-rating/zen),你按照里面题单刷,对能力提升我觉得是质变的.(具体刷是按照难度和自己的熟练度,觉得自己掌握了就跳200的熟练度的下一题)八股就是八股的部分.对于八股来说.你必须要掌握的,我觉得有三方面,一个是数据库,分布式,和redis.对于前两者来说 有比较好推荐的资源是cmu的15445和mit的6.824.这个对于你理解数据库和raft是很有必要的.这两者是相辅相成的,你学完这两者会让你直接猛猛提升理解.能力提升很多很多. redis的话,我推荐你读源码,redis源码1是不难,2是确实写的很好.又能提升读码能力,又能提升对nosql的理解.至于操作系统和计算机网络.因为掌握这两方面对于你对计算机里理解的提升是质变的,可以看linux早期源码和bsd网络协议栈源码(如果时间充裕的情况下),这对你阅读源码的能力的提升很大.但时间不够或者不感兴趣没必要看源码,浪费时间.语言方面的话,我是cpp,rust.我只能推荐这两个你要深入的理解的话,你可以先理解cpp,你就会发现rust就是严格板cpp.学cpp的八股有两本书,一本书stl源码详解,一本是modern effective cpp,照这两个学,再加上做个cmu的那个数据库任务,就足够了.rust的话,直接读官网教程就很ok了.反正最重要的还是理解,你得把他们理解贯通,在面试中随时切换,就很棒了项目对于项目来说,最重要的是现在的简历的项目同质化很严重.你需要给面试官眼前一亮的感觉,没必要做啥xx商场,xx外卖这些的.做个可以体现你能力,技术栈的项目就很ok,加上点啥想法,给面试官耳目一新的感觉就ok了(一定要有mysql优化,感觉面试官很喜欢问),最后在包装包装,就很ok了实习实习经历的话,你得要讲清楚自己做了什么,具体而言是什么.用了什么手段,怎么优化,把每一步都说清楚,这样的话,很给你加分的.比如我做了什么什么的优化,我为什么做这个优化,我是怎么发现这个的问题.然后把你试过的每一个方案都讲清楚.怎么进一步优化,最终结果是什么,有什么还值得更深一步的改进的地方.体现你对做个业务的逻辑的思考,面试官都是比较喜欢这种.场景场景题我感觉很容易问,天天问你各种场景,问你有一棵树怎么快速保存和恢复,问你怎么设计负载均衡的算法,问你怎么比较快速通知100万人.这些问题其实非常的考验自己的计算机能力和见识,这就是我为什么推荐去看看底层实现,这都是底层实现中比较常见的实现,例如第一个,分成保存索引和实际数据两块,负载均衡可以参考cfs,通知考虑推拉流,这更多体验你全方位的能力,可以多看看面经,然后有不懂的问ai,把这些都搞懂,就没什么问题了.多看面经 + 学会主动思考 + 不懂就问 AI,积累久了你也能应付自如。其他建议突击的话,你就面前一两天,几个小时刷刷,比如数据库,计网,os这些,然后具体看看你面试的那个部门的面经,具有参考的意义很大.总结总结大二这一年的成长,我最大的感受是,“真正打动面试官的不是包装,而是你对技术的理解深度与思考广度。”好好沉淀吧,希望我的复盘能为你在实习或秋招中提供一些方向感。如果觉得有用的话,给我点个赞吧
在写bug的芹菜很大...:合工之名,威震天下
没有实习经历,还有机会进...
0 点赞 评论 收藏
分享
鼠鼠第一次投大厂面试,写面经攒人品:1. 个人介绍(2min)2. 挖项目(我跟后端相关的项目似乎只有抖音商城(字节跳动青训营),他一直挖我这个项目)3. 服务是怎么被发现的?(微服务)4. 假如你这个服务要更新,要更平滑,不让用户感到延迟,你会怎么做?- 维护两套环境(蓝:当前生产环境;绿:新版本环境)。- 新版本在绿环境测试通过后,切换流量到绿环境,蓝环境作为回滚备用。- 优点:零停机,用户无感知切换。5. 你输入一个url的处理过程6. 然后就开始写题了,面试官直接口述,输入一个数字,输出下一个最小的比这个数大的数字(重新排列)leetcode类似的题目是:[556. 下一个更大元素 III](******************************************************)这道题手撕还是相当紧张的,给我撕出来了7. 数据库事务是什么8. mvcc是什么,怎么实现的?9. 场景题,给你一个番茄小说的书,有十万订阅,如何快而准确的通知到所有订阅的人更新了(这里要求你去用具体的实现)我这里寄了,后面复盘的时候,应该是使用feed流,这个是用ai写的答案:- 推模式 (Fanout-On-Write/Writes):- **操作时机:** 当关键事件(如新章节发布)发生时**立即**执行。- **目标用户:** **核心活跃粉丝(数量相对较小)**。- **动作:** 将事件**直接写入**这些目标粉丝的个人 **收件箱(Inbox Feed)**(一个按时间排序的数据存储)。用户访问自己的 Feed 流时,直接从这个收件箱拉取即可,延迟极低。- 拉模式 (Fanout-On-Read):- **操作时机:** 当用户主动请求访问 Feed 流时执行。- **目标用户:** **非核心粉丝(长尾粉丝,数量大)** 或 触发推模式的粉丝,在访问 Feed 时可能需要拉取更长时间范围内的数据。- **动作:** 后端服务在用户请求时,**实时聚合**用户所关注对象(收藏的书籍)的 **发件箱(Outbox Feed)** 数据(包含所有发布事件),按时间排序后返回给用户。这需要访问多个发件箱(每个收藏的书一本)并聚合。- **「推拉结合」的关键:** **合理区分「核心粉丝」与「长尾粉丝」**,只对核心粉丝进行实时写入。**关键组件与流程详解:**1. **事件源 (Event Source):**- **新章节发布:** 最核心的事件源。携带 `bookId`, `chapterId`, `publishTimestamp`。- **粉丝关系变更:** 用户收藏 (`favor`) 或取消收藏 (`unfavor`) 一本书。携带 `userId`, `bookId`, `action`, `timestamp`。2. **事件总线 (Event Bus):**- 使用高吞吐、可靠的消息队列如 Kafka/Pulsar。接收上述事件并进行持久化,供下游消费者订阅。后面是就是针对十万用户的进行**精准界定“核心活跃粉丝” (`HotFanCache`):**,查询优化,**高性能存储与分片:**10. 反问,问了业务是什么,技术栈是什么,然后和面试官聊的蛮开心的,面试官夸了基础好,知道稳了10min之后,hr通知2面.1面成功.
番茄小说二面3人在聊
0 点赞 评论 收藏
分享
投递华为技术有限公司等公司10个岗位
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务