news 2026/9/1 22:26:33

2021小米秋招软件开发笔试复盘:稳定输出与时间分配是关键

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2021小米秋招软件开发笔试复盘:稳定输出与时间分配是关键

2021年小米秋招软件开发方向第一场笔试,我是在宿舍楼下的自习室里考的。

当时电脑旁摆着三瓶矿泉水,耳机里放的是白噪音,整个笔试时长两个小时左右。考完的瞬间我只有一个感觉:这考试不像是在考你会不会背知识点,而是在考你在一个有压力的环境里,能不能把最基本的东西稳定输出

身边很多同学后来复盘这场笔试,普遍反馈题量不算特别夸张,但覆盖面很广。选择题部分基本把计算机基础课拉了个大满贯,编程题则是典型的“看着不难,上手就卡”的类型。今天这篇文章我不打算复述题目原稿(那玩意儿早过期了),而是想结合我自己以及周围几位通过笔试的同学的复盘,聊聊这场考试背后的准备逻辑、答题节奏,以及真正值得反复打磨的几个地方。如果你想参加任何一场大厂秋招的软件开发笔试,这篇文章的核心方法你应该都能用上。

1. 先说结论:软件开发岗笔试,筛的从来不只是“你会不会”

第一次参加这类笔试的人,很容易掉进一个误区:把笔试当成一场单纯的知识竞赛,疯狂背知识点、刷难题。但实际上,从这场小米秋招的题目结构来看,笔试的筛选逻辑更接近——“在有限时间内,你能不能稳定完成一套中等难度的综合任务”

1.1 研发岗笔试和平时刷题的区别

平时在力扣上刷题,你可以慢慢想,可以看题解,可以调试,甚至可以把IDE配置得舒舒服服再开始写。笔试不一样。

首先是时间。整套卷子里的编程题不可能给到你一题40分钟慢慢磨,实际每道题的编码时间被压缩到20-30分钟以内。你不仅要写出能跑的代码,还要在**无本地调试工具(或仅一个很简陋的编辑器)**的情况下保证代码逻辑基本正确。

其次是心态。考场上会有倒计时,会有录像监控软件,有时还会弹出一个输入框要求你描述思路。这种环境下,平时的“会做”和考场上的“写得出来”完全是两回事。

最后是广度。这一次小米的第一场笔试,选择题部分明显覆盖了C++内存模型、操作系统的进程与线程、网络协议、数据库索引、Linux基础命令等内容。如果你是科班出身,这些课程多少都学过,但很多人的知识储备是“考前突击完就忘了”的状态。笔试就是把你这个状态赤裸裸地暴露出来。

1.2 从笔试结果倒推能力要求

通过了这场笔试的同学,后来复盘时发现一个共性:他们并不是每道题都做对了,而是没在单道题上死磕,保证了整体完成率。有同学选择题有一半是蒙的,但编程题全AC,照样进面。也有同学选择题正确率很高,但第一道编程题卡了太久导致后面两道没时间写,最终被淘汰。

这其实反映了大厂笔试的一个核心筛选逻辑:你的时间分配和取舍能力,本身就是考核的一部分。技术可以补,但如果你在有限时间内识别不出哪些分好拿、哪些分该放,那在真实业务里同样容易出现“局部用功过度、全局失控”的问题。

2. 考前准备:信息搜集、知识图谱、编码手感三线并行

很多人的秋招备考是从“打开力扣随机刷一题”开始的。这种做法最大的问题在于:你根本不知道目标公司考什么,刷题的优先级完全是乱的。我自己的经验是,考前至少需要做三件事:摸清考试形式、搭好知识框架、恢复编码手感。

2.1 信息搜集:别低估“考古”的价值

在参加这场笔试之前,我先做了一轮信息摸底。主要关注三块内容:考试平台是什么、考试时长多少、往年同一方向的笔试题型分布如何。

小米用的笔试平台不是固定的,但大概率会是牛客网或者赛码网。这两个平台我提前都做过模拟题,把平台上的输入输出模式(哪些题需要自己处理多组输入、哪些是一次性输入全部数据)摸了一遍。你别小看这个环节,很多人的编程题写的逻辑完全没问题,就是因为没搞懂平台上“示例输入”和“实际输入”的细微差别,导致自测通过、提交0分。

还有一点,建议去翻一翻前两三年的面经和笔经(搜“XX公司 软件研发 笔试”就能找到)。虽然每年的题目不会重复,但出题风格和侧重点往往有延续性。比如有些公司喜欢考偏底层的C++细节,有些公司喜欢考动态规划,有些公司则比较杂。小米这场给我的感觉是基础知识覆盖广、编程题偏工程实现与中等算法,没有特别偏怪的题,但涉及面非常宽。

2.2 快速过一遍核心知识模块

对于软件开发方向的笔试,我的复习资料很朴素:学校课堂PPT、一本408辅导书、一份自己整理的错题笔记。如果你时间紧,不需要把每本书从头读一遍,重点看这几个模块:

  • 数据结构与算法:数组、链表、栈、队列、二叉树遍历、图的简单应用、排序算法的复杂度、常见查找算法。算法进阶部分看动态规划的基础题型就够,不必死磕难题。
  • 操作系统:进程与线程的区别、死锁的条件与处理、内存管理(分页、分段)、虚拟内存、进程间通信方式。这些概念建议能用自己的话讲明白,选择题经常换着角度考。
  • 计算机网络:TCP三次握手、四次挥手、TCP与UDP的对比、HTTP协议的基本特点、IP地址与子网掩码。这个模块最关键的还是理解过程,死记硬背容易被题目绕进去。
  • 数据库:SQL基础语法、索引失效场景、事务的ACID特性、隔离级别。如果有多表查询的题目,考前一定亲手写一遍JOIN。
  • Linux基础:常用的命令(cd、ls、ps、top、grep、awk、find、chmod)、软链接和硬链接的区别、如何查看端口占用等。

这个阶段不需要把每个知识点都抠到极致,但要做到看到题目选项中四个相似的概念,能快速分辨出差异。笔试选择题不会给你思考五六分钟的时间,平均每题只有一两分钟。

2.3 编程手感需要“刻意恢复”

考前一星期我给自己定的目标是每天至少写三道编程题,不求难题,但必须亲手在编辑器里敲出来提交通过。这里想强调“亲手敲”这个动作。

我见过有同学复习算法只看题解,眼睛会了,手不会。笔试的时候,当你面对一个空白的编辑器,需要在没有自动补全的情况下写出完整的函数签名、循环和边界判断,那种紧张感会放大一切手生。建议你从最基础的类型开始恢复:

  • 输入一个整数,输出它的二进制表示中1的个数
  • 反转字符串/整数
  • 判断链表是否有环
  • 求两个排序数组的中位数
  • 层序遍历二叉树

这些题目看起来简单,但真的是笔试中高频出现的“基础款”。如果你连这些都能在10分钟内一遍写对,编程题部分的底气就很足了。另外,一定要练习控制在没有本地IDE的情况下写代码。笔试平台的编辑器通常会高亮,但大概率没有代码补全和自动报错,这跟本地写代码的体验差距非常大。

3. 考场复盘:题型分布、时间分配和真实的答题节奏

整个笔试过程中,我由于前期准备工作做得比较足,整体节奏把控在中上游水平。这里把这场笔试中我感知到的题型分布和应对策略拆开来聊一聊,这部分对后续要参加求职笔试的同学参考价值最大。

3.1 选择题:考的不是记忆,是区分度

第一场笔试的选择题占比不低,考点也杂。从我考完回忆的角度看,大致涵盖以下这些方向:

  • C/C++与Java基础(重头戏):包括指针与引用的区别、const的语义、static在C和C++中的不同用途、内存划分(堆、栈、全局区、常量区)、Java中HashMap和Hashtable的区别、JVM内存区域等。
  • 数据结构与算法:给出一个序列,问哪种排序算法第一趟结果是什么;给定特定场景,选合适的容器类型;堆的插入和删除过程。
  • 操作系统:时间片轮转调度、进程状态变化、银行家算法、虚拟内存页面置换(FIFO/LRU)、管道和消息队列的区别。
  • 计算机网络:TCP状态变迁、HTTP状态码含义、DNS解析过程。
  • 数据库(较少):简单SQL语句判断、索引相关的概念判断。
  • Linux:命令执行结果的判断。

这些选择题的难度并不高,但时间压力下很容易因为混淆而失分。我当时的原则是:能不回看的题坚决不回看。有些题第一眼不确定的,标记一下,等全部做完如果还有时间再回来纠结。不能因为一道题拖延了整体节奏。

还有个心理战术:遇到读不懂的题,不要凭空硬猜,直接跳过,不要恋战。你应该把省下来的时间留给编程题,编程题的1分往往比选择题的1分更值钱。

3.2 编程题:结构清晰比炫技重要

编程题一般有两道到三道。从我的观察来看,这场的编程题更倾向于给出一个具体场景,让你实现某个功能或算法,而不是纯模板式的“求最长上升子序列”这类直白题。它往往会包一层背景,比如“系统的日志记录模块,要求你设计一个结构,支持按时间顺序插入和查询”这类。

我在这里分享一个通用的解题框架,适用于大多数笔试编程题:

第一步,花2-3分钟理解题意,明确输入输出。千万不要拿到题就开始敲代码。先把示例输入输出自己推一遍,确认数据范围。如果题目要求是整数数组,但没说是否有序,这本身就是关键信息。

第二步,在草稿纸上写出暴力解的思路,并评估复杂度。笔试的编程题一般有两档要求:普通解法能过部分用例,优化解法能过全部。先保证暴力解能写出来,再尝试优化。往年有些人卡在优化上,最后连暴力解都没提交,这是最亏的。

第三步,用一段主函数体和三个工具函数把框架搭好。先写大框架,再填充细节。注意处理好输入读取和输出格式,这在实际平台上是考试成败的关键。

第四步,代码写完回头扫一遍边界条件。数组为空、只有单个元素、数值为负数等情况是否处理?循环边界有没有可能越界?

我印象很深的一点是,笔试平台的编辑器往往会让你的代码缩进风格变得很奇怪,或者是明明复制了样例到自己手里却因为多了换行符导致格式不对。因此平常练习时就要养成自己处理输入格式的习惯,包括stripsplit这类操作,务必熟练。

3.3 时间分配的真实体验:前紧后松,留出缓冲

我现在复盘当时的时间分配,大概是这样:选择题部分花了35-40分钟,三到四道编程题依次分配了30、25、25分钟,最后留了10-15分钟做检查。

这里比较关键的是,选择题做的比较快,因为大部分概念属于“会就是一眼会,不会就是死磕也没用”。与其在一道概念题上纠结五分钟,不如把这个时间预留给编程题的边界测试。

编程题部分我建议按照“易、中、难”的顺序做。哪怕第一道题分值低,但它往往是最容易拿满分的。我个人的习惯是先把所有编程题都扫一遍,快速判断每一题的难度层级,从最简单的开始写。千万不要因为第一道题没思路就慌了,也许第二道题就是送分题。

4. 最容易丢分的几个细节:亲身踩坑清单

这部分是我最想强调的。笔试能不能过,往往不是取决于你会不会做难题,而在于你有没有在细节上大量踩坑。这里的每一条,都是我和身边同学用实际经历换来的。

4.1 输入输出格式永远是第一杀手

很多人笔试挂掉,不是算法的锅,而是没搞懂输入输出。

我在模拟赛码网时有一次经历:题目要求“第一行输入一个正整数n,接下来n行每行两个整数a和b”,我理所当然地用int n; cin >> n; for(...) cin >> a >> b;来处理,结果提交后就是0分。后来发现,平台在某个特殊用例中,输入数据之间可能包含多个空格或换行,如果你的代码对“干净输入”有过度假设,就容易读不完整。

解决方案:读取输入时尽量用统一的、稳建的读取方式。比如C++就统一用cin(不要混用scanf),Java就用BufferedReader,Python就直接sys.stdin.read().split()。不要写对空白字符敏感的解析逻辑。输出部分也要严格遵守题目格式要求,比如“行末不要有多余空格”“用空格分隔而不是逗号”。

4.2 边界条件不判,等于白写

举个最简单的例子:反转链表。题目如果给的是空链表,你的函数是否还能返回nullptr?如果题目要求删除数组中某个值,数组为空时你还能不能正确返回0?这些细节看似不起眼,但笔试平台的判题恰恰会包含这些边界用例。

我后来养成的习惯是:每个编程题写完后,花30秒检查三个空——空值、单值、最大值/最小值。这个方法为我挽回了很多不该丢的分数。如果你能在最后检查阶段把这些边界补上,往往能从“部分通过”提升到“完全通过”。

4.3 不熟悉笔试编辑器也是个致命伤

有些同学平时使用VS Code或IDEA写代码,习惯了自动补全与静态提示。笔试平台的编辑器功能比较有限,很多时候只有一个高亮,连括号自动补全都没有。这种情况下,你的敲码速度和准确性会明显下降。

我建议考前专门去牛客/赛码的模拟环境里写几天代码,提前适应用“裸编辑器”写代码。尤其是括号匹配、作用域闭合、分号遗漏这类错误,平时IDE直接帮你拦住了,在笔试环境里就得靠自己的基本功。我也遇到过一部分同学,在练题时发现光标移动、缩进、删除等基础操作都不顺,心理上已经乱了,这是笔试前最不值得的失分项。

4.4 时间分配失衡导致的连锁反应

这场笔试有一道编程题,我一开始没有形成清晰的解法,就想着“先死磕20分钟,磕出来再说”。结果到了20分钟,依然没有AC,眼看时间所剩不多,只能慌张地切换到下一题,结果下一题心态已经崩了,本来会做的也写得磕磕绊绊。

这给我一个很大的教训:笔试中切忌在单题上恋战。如果你在一道题上卡了10分钟还没有完整思路,赶紧在草稿纸上记下当前的想法,跳下一道。也许下一秒你的大脑就能“离线想通”,等做完其他题后再回头补上。时间分配失衡的成本不只是少做一道题,更可能是整个考试节奏的崩溃。

4.5 忽略题目中的“潜台词”

软件开发方向的笔试,尤其在算法题的题干里,经常藏信息。比如题目说“数据范围:n ≤ 10^5”,那基本就是提示你要用O(n log n)或更好的复杂度,暴力O(n^2)大概率过不了。如果题目说“结果需要对 10^9+7 取模”,那说明数据量很大,要在运算过程中取模,而不是最后取一次。

题干里凡是提到“有序”“连续”“不重复”这类词,都是在给你提供算法设计的切入点。读懂这些潜台词,能有效减少走弯路的时间。

5. 从笔试到面试:这场测试的真正价值在哪里

笔试只是秋招的第一道关。但我发现,笔试里暴露的问题,如果认真复盘,可以直接转化为面试环节的优势。这也是我建议每一个求职者不要把笔试当“考完就完”的原因。

5.1 笔试暴露的三个能力象限

第一是基础知识的扎实程度。如果你选择题错了一些基础概念,比如TCP的TIME_WAIT、虚拟内存的页面置换算法,那面试前你有明确的知识点需要重点补。第二是编码能力的稳定性。如果编程题写的摇摇晃晃,边界处理不完善,那面试时必须预留时间手撕代码,这就是最好的针对训练。第三是时间管理和优先级判断。笔试呈现出来的笨拙,也代表你处理多任务、紧急任务的成熟度还不够。这一点,在面试中同样会被考察——面试官会问你在项目中如何排优先级,就会用笔试状态来佐证你的回答。

5.2 把笔试中的内容变成面试素材

面试中,面试官听到你说“我在刷题”、“我LeetCode周赛2000分”,其实很难留下深刻印象。但如果你能说一句“在小米笔试中,我发现自己对大数据量下的排序和查找处理不够高效,回去后我梳理了各种排序算法的适用场景,并用日志场景重新实现了一次”,这会立刻转化为亮点。

我身边一位拿到offer的同学,就是在面试时主动提到了笔试中的某道编程题,说那道题让他认识到了自己设计数据结构的不足,他后来自己写了一个小型的LRU缓存来练习,结果面试官顺着这个话题一路问下去,最终拿到了不错的评价。笔试题目本身是什么不重要,重要的是你有没有“从问题中提炼出更深层能力”的习惯。

5.3 给下一届同学的倒计时备考建议

如果你的秋招还有一个月,我的建议是前两周梳理知识点,中两周刷题加模拟笔试,最后一周专门做全真模拟。一定要用和真实考试一样的平台、一样的难度、一样的时长来模拟。模拟的时候就要按“宁可放弃难题,也要保证简单题全对”的策略来。很多时候大家平时刷题是在做“增量”,但笔试更需要的是“不丢分”。

我特别建议做几次“紧张状态下的限时模拟”。别给自己放水,比如允许自己多停5分钟、允许自己用本地IDE调好了再贴上去,这些在真实笔试中都不允许。你必须在模拟时就塑造出“考试失去所有帮手”的环境,才能真正检验出自己的水平。

如果你还有三个月时间,那优先补数据结构、操作系统、网络、数据库这四个地基。地基稳了,后续不管是做项目还是刷题都会更快。

6. 写在最后的一些实在话

考完这场笔试,我最大的感受不是“题目好难”,而是“自己的基础还远远不够扎实”。很多选择题的选项,我第一眼觉得哪个都对,仔细一看发现是概念理解偏差。这种“似懂非懂”的状态,恰恰是最需要在笔试前解决的问题。

我个人过这一轮的经验是:最后三天别刷难题了,把基础知识点快速过一遍,把做过的中等难度题的思路在脑子里总结一遍,把手写代码的肌肉记忆保持住。真正到了考场上,你的目标是“稳定拿分”,而不是“惊艳全场”。笔试的功夫在平时,但临场的那股稳定劲儿,也是可以通过模拟练出来的。

希望这篇复盘能帮到准备秋招的你。如果你也在准备软件开发方向的笔试,欢迎在评论区聊聊你对这类题型的感受,我们一起把踩过的坑变成将来上岸的台阶。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 22:24:33

Matlab实现分布式电源接入配电网影响分析:从建模到报告全解析

简介:本资源面向计算机、电子信息工程及数学等相关专业本科生,聚焦分布式电源接入对配电网运行特性的影响分析,适用于课程设计、期末大作业或毕业设计阶段的建模仿真实践。压缩包共17个文件,含16个MATLAB核心脚本(如ne…

作者头像 李华
网站建设 2026/9/1 22:24:06

AI撰写CSDN技术博客:为何拒绝?如何正确提问?

抱歉,这个主题我无法为你撰写成 CSDN 技术博客。原因很简单:从标题看,它属于角色扮演类内容记录(replay),不是技术项目、工具、框架或开发经验。CSDN 的读者期待的是可落地、可验证、可复用的技术内容&…

作者头像 李华
网站建设 2026/9/1 22:22:52

开源AI电话代理OpenCyvis:基于LLM的语音交互系统构建指南

在 AI 应用开发领域,将大语言模型的能力从文本对话延伸到真实世界的交互,尤其是通过电话进行沟通,是一个极具挑战性和实用价值的方向。传统的 AI 电话客服或外呼系统往往依赖于昂贵的商业 API 和封闭的解决方案,其底层模型、业务流…

作者头像 李华
网站建设 2026/9/1 22:20:47

LibTV导演台与General Image Pro:AI真人短剧全流程制作指南

这次我们不聊概念,直接看工具。LibTV是一个面向AI真人短剧制作的全流程创作工具,它把剧本、分镜、角色设定、图像生成、视频生成、配音和导出这些环节尽量收敛到同一个工作流里。标题里提到的“导演台”和“General Image Pro”是它的两个高频入口&#…

作者头像 李华
网站建设 2026/9/1 22:20:03

顺丰信息安全工程师笔试考点拆解:Web安全与密码学全解析

2019年秋天那阵子,我正好在帮几个学弟学妹整理大厂安全岗的秋招真题,顺丰科技这份信息安全工程师笔试题让我印象很深。它的风格不像某些互联网公司那样堆偏题怪题,整体非常务实,很多题目背后都能直接看到物流业务场景的影子——快…

作者头像 李华
网站建设 2026/9/1 22:18:48

游戏数仓校招笔试复盘:从维度建模到SQL实战的完整指南

秋招季总有人跑来问我:游戏公司的数据仓库开发工程师,笔试到底考什么?最近一个学弟把当年参加搜狐畅游2020校招笔试的回忆版题目发给我,让我帮他捋一捋复习方向。我把整套题过了一遍,最大的感受是:这套笔试…

作者头像 李华