第 1 轮 · 返回本次面经 · 已是最后一轮 →

本轮要点: 三面偏重项目经历、思维深度与工程解决方案,兼顾产品理解与算法能力。

本轮共 6 道题。答案默认折叠,便于先自行作答。

1. 讲一下之前的实习经历,主要负责什么工作,你们团队是做什么的?

题目要点

在回答实习经历时,可以遵循: “团队是做什么的 → 自己负责了什么 → 过程中遇到的挑战 → 最终的结果和成长”。 这样既能让面试官清楚地看到候选人的贡献,也能体现出对团队目标的理解和自身成长路径的清晰度。

要不要我帮你准备几个可直接套用的实习经历表述范例,比如业务团队和前端基础设施团队两个版本?

参考答案

这个问题本质上考察的是候选人能否清晰表达实习经历的价值,以及是否能将个人的工作与团队目标联系起来。回答时既要避免流水账式的叙述,也要避免过度拔高,而是重点体现做过什么、为什么做、产生了什么影响

回答思路

1. 团队定位与职责

先交代团队是做什么的,比如:

  • 是否负责某条具体业务线(例如地图、金融、电商、内容平台);
  • 是否是基础架构团队(组件库、工程化平台、性能优化、监控体系);
  • 团队的核心目标是什么(提升用户体验、提升研发效率、支撑业务增长)。

这样能让面试官快速理解环境。

2. 个人负责的工作

描述时可以抓住几个关键词:

  • 核心任务:负责开发某个功能模块、参与前端组件封装、接入监控埋点、优化性能等;
  • 协作方式:是否需要和后端、测试、设计配合,是否参与需求评审或接口联调;
  • 挑战与亮点:是否遇到过性能瓶颈、复杂交互、数据量大等问题,是否提出了改进方案。

避免简单说“写页面、改 bug”,而是强调“通过实现某个功能/优化某处性能,解决了某类问题”。

3. 收获与成长

最后点出在实习期间的成长:

  • 是否熟悉了前端项目的完整研发流程(需求 → 开发 → 测试 → 上线 → 复盘);
  • 是否积累了在团队协作、代码规范、工程化工具上的经验;
  • 是否提升了技术能力,比如掌握了某些框架或优化手段。

2. 在工作中遇到过什么问题,是怎么解决的?

题目要点

这个问题的最佳回答路径是: “提出一个具体问题 → 说明如何分析定位 → 阐述解决过程和思考 → 总结结果和反思”。 重点不是问题有多难,而是展现出遇事冷静分析、推动落地并能沉淀经验的能力。

要不要我帮你列几个可以直接在面试里使用的典型案例场景,比如“性能优化”、“构建优化”、“协作问题”三类?

参考答案

这个问题考察的是候选人的问题意识、分析能力、解决路径和复盘能力。面试官关注的不是问题本身多么“高大上”,而是能否体现出逻辑清晰、方案合理、结果正向

回答思路

1. 问题背景

问题需要真实、贴近前端工作场景,例如:

  • 性能问题(页面渲染过慢、首屏加载时间过长);
  • 工程化问题(构建时间过长、依赖冲突、CI/CD 卡点);
  • 协作问题(接口定义频繁变动、联调效率低);
  • 用户体验问题(复杂交互逻辑导致 bug 难以复现)。

选择的问题不必“最难”,但要能展开思路。

2. 分析问题

体现出有系统化思考能力,比如:

  • 如何定位问题根源?是代码实现、架构设计还是协作流程?
  • 是否通过工具(如性能分析工具、日志埋点、构建分析插件)进行验证?
  • 是否评估过不同解决路径的利弊?

3. 解决方案

回答时要有过程感,而不是直接“后来就解决了”:

  • 采取了什么短期措施保证业务可用;
  • 推动了什么长期优化(如引入虚拟列表、增加代码规范检查、推动接口 mock 工具);
  • 有没有涉及跨团队沟通与推动。

4. 结果与复盘

最后强调:

  • 问题得到了解决(比如性能提升 40%,联调时间缩短一半);
  • 自己在过程中积累了什么方法论,是否形成了可复用的方案或沉淀成团队规范。

3. 你怎么看待这一款产品?

题目要点

核心考查:你怎么看待这一款产品?的概念、原理与实际应用。

参考答案

4. 如何根据广告来推荐商品?

题目要点

用户画像与广告投放数据建模。

参考答案
  1. 用户画像与广告投放数据建模。
  2. 使用点击率预测模型 (CTR/CVR) 排序推荐结果。
  3. 引入实时反馈提升推荐效果。

5. 大型语言模型(LLM)详细讲讲

题目要点

  • Transformer 架构
  • 大模型应用原理
参考答案

LLM 基于 Transformer 架构,通过海量语料训练实现文本生成、理解、摘要、翻译等功能。核心组件包括自注意力机制、残差连接、大规模并行训练。

6. 找出路径最大值

给定一个三角形数组,找出从顶到底的路径最大值,要求只能从上一层相邻节点移动到下一层。

例如:

  • 输入:triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]
  • 输出:18(即 2 + 3 + 5 + 8 = 18)

题目要点

使用自底向上动态规划,逐层选择较大值累计:

参考答案

使用自底向上动态规划,逐层选择较大值累计:

function maximumTotal(triangle) {
  for (let i = triangle.length - 2; i >= 0; i--) {
    for (let j = 0; j < triangle[i].length; j++) {
      triangle[i][j] += Math.max(triangle[i+1][j], triangle[i+1][j+1]);
    }
  }
  return triangle[0][0];
}

第 1 轮 · 返回本次面经 · 已是最后一轮 →