发布时间:2026/8/30 20:56:02
58同城算法工程师面试复盘:核心考点与准备思路 时间倒回到2023年秋招那阵我面了58同城算法工程师的岗位。说实话在投之前我对这家公司的技术印象还停留在“分类信息网站”的阶段但真正面试下来才发现它家算法团队的考察范围和深度比很多纯互联网公司还要杂机器学习、深度模型、推荐系统、业务场景题、手撕代码几乎全覆盖甚至还会追问大模型工程落地。这篇文章不整理具体的“原题流水账”而是把当年那轮面试背后真正高频出现的考察点以及我当时准备的一套思路复盘出来。无论你现在在看58同城的机会还是在准备其他中大型互联网公司的算法岗下面这些内容都能当作一份“算法工程师必知必会”的清单来用。1. 面试整体流程与考察重心1.1 58同城算法岗到底做什么先弄明白对方招什么样的人才能对症下药。58同城表面上是一个分类信息平台但核心业务里招聘、房产、二手车、本地生活服务等板块全都是典型的“双边交易市场”。算法工程师在里面做的不是单纯的模型比赛而是围绕搜索、推荐、广告、用户增长、风控这些方向去做排序和匹配。我当时投的是推荐方向所以面试过程中大量问题都集中在“用户怎么跟内容/职位/房源匹配”上。你要是投搜索方向那重点会围绕Query理解、相关性排序和召回策略投NLP方向则会盯上文本分类、NER、语义匹配这些。不过不管哪个方向面试官都会默认你懂完整的算法落地链路而不是只会调包调参。所以准备的时候我建议先把58的业务场景和你的岗位方向绑定。比如你是做推荐的就提前想清楚58招聘场景下的“职位推荐”和传统电商推荐有什么区别用户决策周期更长、意图更明确、数据更稀疏、上下文特征更重要。这些理解在二面三面非常加分比单纯背八股文有用得多。1.2 面试轮次与各轮考察节奏58算法岗的面试流程相对标准我了解到的一般是简历面/一面基础算法手撕代码、二面机器学习与深度模型、三面系统设计或业务场景方案、最后HR面。有的团队可能还会先做一轮笔试题量不大但覆盖了数据结构、概率统计和简单机器学习。一面通常是一位资深工程师面主要验证你的基本功和代码能力。手撕代码题难度大概在LeetCode中等偏上不会太偏难怪但要求现场讲思路、分析复杂度并能跑通边界用例。二面一般是技术专家或技术Leader问题会更开放比如“给你一个场景你怎么设计特征和模型”这时候考察的是你的系统思考能力和项目深度。三面更多是交叉面或总监面会出大的系统设计题也会聊一些工程落地、团队协作的事情。这个节奏意味着你不能只刷题还要在面试前把做过的项目从背景、难点、方案、收益到后续迭代全链路复盘一遍最好能形成一个可以随时讲10分钟左右的“项目故事”。2. 算法基础与机器学习高频考点2.1 经典机器学习模型必问题二面最先来的通常是一波“八股文”式提问。别小看这些基础题面试官会从一个简单问题开始不断追问直到你答不上来为止。拿逻辑回归来说除了要会写损失函数和梯度更新公式还会被问到为什么用交叉熵而不用均方误差因为LR加MSE之后优化目标是非凸的且梯度更新时存在sigmoid导数项在预测接近0或1时梯度很小收敛太慢交叉熵配合sigmoid求导后误差项是“预测值减真实值”梯度形式更干净。L1和L2正则的区别是什么L1能产生稀疏权重因为它在零点不可导优化时更容易把某些维度的权重压到0L2只会让权重整体变小但不会为0。特征共线性对LR有影响吗有会导致权重估计不稳定但对预测值影响不一定大所以需要结合场景判断是否做相关性筛选或正则化。决策树和集成学习也是重头戏。面试官当时问我“XGBoost相比GBDT做了哪些改进”这个题几乎每家都会问。我建议从三个层次回答一是目标函数加了二阶泰勒展开和正则项二是对缺失值有自动学习默认方向的处理三是支持列抽样和并行化近似直方图算法。同时最好能补充一句“XGBoost本身不是对所有场景都碾压高维稀疏特征下LR或FTRL有时更实用”这样能体现你有工程判断力。除了模型本身评价指标的正确选择也很高频。比如AUC的理解不能只说“ROC曲线下面积”要能说出它的概率含义随机给一个正样本和一个负样本模型预估正样本score大于负样本score的概率。还要知道AUC对样本不均衡不敏感但并不意味着不均衡不需要处理因为在线上业务里我们更关心的是Top K位置的排序质量有时候还要看GAUC、NDCG、RecallK等指标。2.2 深度学习与NLP基础58的业务里大量文本数据职位描述、小区描述、帖子标题等所以NLP基础也是必考项。我这一轮被问到了Transformer的细节Self-Attention为什么需要缩放点积为什么要在Q、K、V之外加位置编码当时我回答的核心点是点积的方差会随着维度增大而变大导致softmax梯度区域饱和所以要除以根号d_k位置编码是为了让模型感知序列顺序因为Attention本身没有顺序概念。这里有个容易踩坑的地方面试官很可能顺着Transformer问“BERT和它的变体有什么不同”不要只背“双向编码器”这句话。要能说清楚BERT用的是Transformer EncoderGPT用的是Decoder二者在Mask机制、训练任务和适用场景上的区别。如果能结合项目提到自己用过BERT做文本匹配或分类并说出fine-tune时的学习率设置和过拟合处理会非常加分。另外深度学习的通用知识点也要过一遍BatchNorm和LayerNorm的区别、Dropout的训练和预测行为差异、优化器SGD/Momentum/Adam的选择逻辑。这些看似基础但面试官会通过追问来测试你是真的理解还是在背答案。2.3 概率统计与数据结构基础不要以为算法工程师只考模型概率统计题出现频率也很高。常见的有贝叶斯公式现场推导给定一个不均匀硬币如何生成等概率事件最大似然估计和最大后验估计的区别如何判断两个变量是否独立中心极限定理的含义。我当时被问到“一个袋子里有3个红球和7个蓝球有放回地抽两次已知第一次抽到红球求第二次抽到红球的概率”这个很简单但面试官立刻加码“如果再已知两次中至少有一次是红球求两次都是红球的概率”这就变成条件概率陷阱题了。我建议准备几个类似的经典概率题关键是把条件概率公式写在纸上别心算。数据结构方面哈希表、堆、二叉树是重点。特别是TopK问题几乎所有算法岗面试都绕不开需要熟练掌握堆排和快排思想的两种解法并能分析时间复杂度和内存占用。3. 推荐系统与搜索排序的面试题3.1 从召回聊到排序每个环节都要有方案58的推荐场景不是给你一个纯商品流而是“列表页信息流”。面试官一上来就问“假设要为58招聘设计一个职位推荐系统你会怎么做”这时候千万不要只回答“训练一个CTR模型”要从经典的推荐漏斗开始拆。首先是召回。我看到过很多候选人一提到召回就说“协同过滤”这不完整。当数据稀疏、用户行为少的时候基于DeepWalk或GraphSage的图召回、基于物品内容标签的向量召回、双塔模型召回都有应用场景。回答时最好结合58的岗位特征职位有明确的行业、城市、薪资区间等强属性可以先做规则召回和粗排再做向量召回补充多样性。然后是排序。面试官大概率会问“你现在排序模型用什么”。我在项目中用的是“召回粗排精排”三段式精排模型从LR、GBDT到DeepFM再到DIN这种带有注意力机制的结构都有各自的优缺点。关键是要能解释为什么DeepFM能同时 learn 低阶和高阶特征交互为什么FM部分要嵌入到神经网络里而不是单独训练一个FM。我当时还主动提到“在精排阶段我还会加入用户历史行为序列用DIN的注意力机制去刻画不同历史行为对当前候选的影响权重”这立刻让面试官眼前一亮。最后还要聊怎么评估。离线用AUC、GAUC、RecallK在线用A/B测试。面试官特别喜欢问“离线指标涨了线上没涨怎么办”这是典型的工程题需要从样本分布、特征穿越、在线延迟、数据链路等角度分析而不是傻傻说“回滚”。3.2 特征工程与冷启动特征工程在58这种业务场景里非常关键。我当时被问到一个很具体的问题“职位推荐里用户没有点击行为怎么做冷启动”我的回答分两层第一用内容特征兜底。职位的行业、职能、薪资、城市、工作经验要求用户的简历信息这些属性本身就能做规则匹配或向量嵌入召回不需要依赖点击数据。第二用多目标模型做探索。对冷启动用户提高探索权重比如在强化学习框架里加一个UCB惩罚项或者用随机曝光补充多样性数据。特征工程本身也是高频考点。要注意结构化特征、文本特征、交叉特征的处理方式以及如何在线上保证训练和推理的特征一致性。我特别喜欢用“特征穿越”举例子如果模型用了“用户当天有没有点击这个职位”作为特征那训练时很容易引入未来信息上线后这个特征又拿不到离线指标虚高这是实战中最大的坑。3.3 位置偏差与Debias在58的信息流里用户天然更倾向于点击排在前面的内容这会导致位置偏差。面试官如果问到“模型是否需要引入位置特征”不要简单回答“要”或“不要”而是说如果训练时不加入位置特征模型会把位置信息混入其他特征里造成偏差累积如果加入位置特征预测时直接置零或用默认值能一定程度上建模位置影响更成熟的做法是用Shallow Tower或IPWInverse Propensity Weighting来消除偏差。我当时把这种问题归类为“业务理解题”因为单纯会调模型没用必须理解业务链路里的数据偏见才能提出有意义的方案。这一点在算法工程师面试里是最能拉开差距的。4. 手撕代码与智力题4.1 高频算法题与现场思路手撕代码环节面试平台一般是牛客网或者本地IDE共享屏幕。我遇到的最大感受是题目本身不难但现场边讲边写很考验熟练度。下面几个题目是我准备时反复练的建议你也刷到能闭眼写出来的程度。第一个是TopK问题。面试官可能会说“给你一个无序数组找出第K大的数”。不要直接写sort要先讲清楚两种解法快排分区法的期望O(n)复杂度和堆的O(n log k)复杂度。如果内存有限用堆更好如果数据规模小且需要频繁查询可以用快速选择。我当时写的是快排分区版本要注意处理越界和递归终止条件。def find_kth_largest(nums, k): # 第k大的数等价于升序排序后下标为 len(nums)-k 的数 target len(nums) - k left, right 0, len(nums) - 1 while True: pivot_index partition(nums, left, right) if pivot_index target: return nums[pivot_index] elif pivot_index target: left pivot_index 1 else: right pivot_index - 1 def partition(nums, left, right): pivot nums[right] i left for j in range(left, right): if nums[j] pivot: nums[i], nums[j] nums[j], nums[i] i 1 nums[i], nums[right] nums[right], nums[i] return i第二个常见的是“无重复字符的最长子串”。用滑动窗口维护窗口内字符的集合或频率表右指针不断扩展一旦遇到重复字符就移动左指针直到不重复为止。这类题要特别注意双指针的更新时机最好能在白板上先画一两个例子。第三个是“编辑距离”。这道题考的是二维动态规划状态转移方程是dp[i][j]表示word1前i个字符变成word2前j个字符需要的最少操作数分别对应插入、删除、替换三种操作。不只是写出代码还要解释清楚为什么初始化是dp[i][0]i和dp[0][j]j。4.2 代码实现中的加分细节手撕代码时面试官看的不仅仅是你能不能跑通还有你的代码习惯和沟通方式。我建议养成以下习惯先确认输入范围和数据规模判断能否用O(n^2)还是一定要O(n log n)写出函数定义时先想一想边界条件比如空数组、长度为1、负数每写一步关键逻辑轻声说一句“这里用哈希表记录访问过的节点目的是空间换时间”写完代码后主动举一个短例子手动跑一遍把变量变化过程讲清楚最后自己说复杂度而不是等面试官问。曾经有次面试我写完TopK后忘了考虑k超过数组长度的情况面试官让我补一个防御判断。那之后我养成习惯任何输入都要先做合法性校验。这种细节不会直接决定offer但能让你显得更像一个工程化的算法工程师而不是只在LeetCode上刷题的人。5. 系统设计与大模型追问5.1 推荐系统设计题从0到1怎么拆三面的时候面试官给了一个开放题“如果现在让你从零开始给58同城首页做一个推荐系统你会怎么设计”这种题没有标准答案核心是考察你的结构化思维。我是按下面的框架回答的先问清楚场景约束。是首页信息流还是列表页推荐面向什么用户候选集规模多大延迟要求多少。然后是数据层平台有哪些用户行为数据、内容数据、画像数据如何埋点和清洗。接着是算法层召回用什么策略、排序用什么模型、重排怎么做多样性和去重。最后是工程层特征如何上线、模型如何更新、如何做A/B实验和监控。这种题很容易暴露“只会单向思维”的问题。我当时主动提了一个容易被忽略的点推荐系统不是只优化点击率58的场景里还有“转化率”目标。用户点击职位之后是否投递简历、是否与企业沟通这些才是业务真正关心的指标。面试官对这个点很认可因为他知道你不是在背书而是真的理解了业务。5.2 大模型相关热点问题近几年算法工程师面试里大模型相关的问题越来越多。我当时虽然没有被直接要求手写Transformer但面试官问了几个和开源模型相关的问题“你了解llama.cpp吗”“如果让大模型在业务里落地你会怎么选用”这不是单纯考技术而是看候选人有没有保持学习。我对llama.cpp的理解是它主要解决的是大模型在CPU和消费级GPU上的高效推理问题通过量化、内存映射、算子优化等手段把原来需要多张A100的模型压缩到单机可跑。面试时回答“了解过量化原理比如4-bit量化会把权重映射到更小的整数范围精度损失可控”就足够了。但如果你能进一步说出GPTQ和AWQ的区别或者提到自己在本地部署过一个7B模型做文本摘要那绝对能让面试官刮目相看。另外RAG检索增强生成也成了高频词。面试官会问“大模型回答经常编造事实怎么办”回答的关键点是先把知识库切成小段用embedding模型转成向量检索出最相关的几段信息再拼到Prompt里让模型基于这些信息回答。这个方案技术门槛不高但很实用适合业务里的智能问答、客服助手等场景。5.3 模型优化与部署的基本功系统设计里除了算法还涉及模型上线和推理优化。比如“线上推理延迟要求50ms模型太大怎么办”考察点包括模型剪枝、蒸馏、量化、TensorRT加速、拆分计算图等。我当时回答的重点是“先分析瓶颈到底在特征计算还是模型推理”如果特征都在特征服务里提前算好模型只吃向量输入那延迟自然降下来。此外还得懂基本的在线更新方案。58这种业务场景用户行为变化很快如果每天只训练一次模型可能跟不上热度变化。需要了解FTRL这种在线学习算法以及如何做增量样本回放。这里又回到了“理解业务”这一点不是所有场景都适合实时训练要看模型复杂度和数据吞吐量。6. 避坑经验与复盘技巧6.1 我在58面试中踩过的坑回头复盘我把自己在准备和面试过程中踩过的坑列了一下希望对你有帮助。第一个坑是“项目介绍过于泛泛”。一面时我讲了很久模型结构和AUC收益面试官突然问“你在这个项目里具体做了什么、数据怎么处理的、上线后怎么监控的”我一下子有点懵。建议把项目拆成数据、特征、模型、上线、迭代五个模块每个模块准备一两句具体的话必要时写下来。第二个坑是“对业务场景缺乏前置了解”。二面被问到“58的职位推荐和电商推荐有什么不同”时我一时没答好。后来想明白面试官要的不是一个完美答案而是你有没有思考过职位冷启动难、用户求职意图强、决策成本高、实时性要求相对低。这些差异会直接影响特征和模型设计。所以在面试前一定要花半小时刷刷58同城的App看看它的信息流、列表页、详情页到底长什么样。第三个坑是“准备了很多大模型八股但没准备落地细节”。聊到llama.cpp时我确实知道它但被追问“你实际部署过吗4-bit量化后效果变化大吗”就答不上来了。现在我建议如果简历里没写大模型项目就不要自称“熟悉”宁可说“我了解原理但还需要更多实践”也不要被追问到底。6.2 算法工程师面试准备的时间安排如果在职跳槽我通常建议提前6到8周准备。前两周主攻基础机器学习知识和项目复盘中间三周刷高频算法题每天至少两道并且要限定时间模拟真实面试手写环境。最后两周做模拟面试找朋友或同事互相提问重点练表达和讲解能力。刷题不用贪多但要做分类数组、字符串、链表、树、动态规划、二分、堆、图这几类覆盖面足够。推荐系统相关的候选人额外准备一些特征组合和CTR模型推导NLP方向的最好能实现一遍简单的Transformer或者用transformers库跑一个fine-tuning不用多复杂但要有“我能动手做”的信心。6.3 常见问题速查表考察方向高频问题面试官想听到的回答要点机器学习基础LR为什么要用交叉熵损失函数凸性、梯度形式、收敛速度集成学习XGBoost对GBDT的改进二阶导、正则项、缺失值处理、并行加速特征工程如何处理高基数类别特征嵌入、哈希、频次编码、避免过拟合推荐系统冷启动怎么做内容特征兜底、探索机制、规则召回深度学习BatchNorm解决什么问题内部协变量偏移、稳定训练、调参更简单代码能力TopK问题堆/快选思路、复杂度、边界处理系统设计从0到1设计推荐系统数据、召回、排序、重排、评估闭环大模型了解llama.cpp吗推理优化、量化、低资源部署、应用场景这张表不是让你背答案而是检查自己能不能在每个问题下展开讲两三分钟。如果能说明基本功基本过关如果不能就回到对应章节去补课。6.4 最后再分享一个小技巧面试前我会把所有重要的公式和模型结构画在一张A4纸上包括LR的损失函数、Transformer的结构图、双塔模型的结构、DeepFM的架构。临场前五分钟只看这张纸比翻手机看长文有用得多。到面试中如果被问到记忆模糊的地方可以大方要求“给我一分钟在纸上推一下”面试官通常都会接受也比你乱说强。还有一点58同城这类偏业务导向的公司面试官对“算法能不能落地”极其看重。回答任何问题哪怕是最简单的LR推导也可以尝试在结尾补一句“这个性质在实际项目中会影响我选择优化器和正则化方式”。这不会显得卖弄反而会让人觉得你有工程思维。希望这份复盘能帮到你。如果正在准备算法工程师面试尤其是面向信息分发、推荐、搜索这类业务拿58这套题来摸底练习还是很合适的。祝面试顺利。

相关新闻

2026/8/30 20:51:02

PowerShell + Docker:一套容器运维脚本跑三端

PowerShell Docker:一套容器运维脚本跑三端 【免费下载链接】PowerShell PowerShell for every system! 项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell Linux 服务器上管容器靠 bash 脚本、Windows 桌面上再抄一套,这是最常见的…

2026/8/30 21:06:03

Jellyfin 照片管理:4 步把家庭相册搬上自己的服务器

Jellyfin 照片管理:4 步把家庭相册搬上自己的服务器 【免费下载链接】jellyfin The Free Software Media System - Server Backend & API 项目地址: https://gitcode.com/GitHub_Trending/je/jellyfin 周末整理旧手机里的一堆照片:结婚照、孩…

2026/8/30 21:06:03

校园超级App全栈开发实战:从微信小程序到微服务架构

简介:本资源是南京航空航天大学官方校园服务综合平台微信小程序的完整源码工程,面向高校开发者、小程序学习者及教育信息化实践者,旨在提供一套功能完备、结构清晰、可快速部署的校园生活服务类小程序参考实现。资源共87个文件,涵…

2026/8/30 21:06:03

前端实习面试全记录:从基础手写到项目深挖的实战复盘

1. 开年第四份面经是怎么来的:投递节奏与岗位观察从大年初七开始改简历,到二月中旬面完这家,前前后后已经面了四家。前两场属于试水,基本是裸考状态被面试官按在地上摩擦,第三场慢慢找回节奏,第四场也就是这…

2026/8/30 21:01:03

draw.io 桌面版完整指南:离线画图、本地存档,5 分钟装好

draw.io 桌面版完整指南:离线画图、本地存档,5 分钟装好 【免费下载链接】drawio-desktop Official electron build of draw.io 项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop 图表画完导出成图片存网盘,半年后想…

2026/8/30 0:03:35

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/30 0:03:35

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/30 0:03:35

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/8/30 0:03:35

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/30 0:03:35

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/30 0:03:35

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/8/28 16:16:48

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/28 16:16:50

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/28 11:06:45

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…