☰
商汤科技校招笔试题型全解析:多岗位合并出题与备考指南
2026/11/1 2:00:19 网站建设 项目流程

2018年秋天,我在牛客网上点开商汤科技校招笔试第一场的时候,怎么也没想到这份卷子后来会成为我总结面试经验时翻看最多的材料之一。那会儿AI公司笔试普遍刚起步,各家都在摸索怎么用一场在线考试筛出基础扎实、工程能力过硬、又懂算法原理的人,商汤这份卷子几乎是当时多岗位合并出题的典型代表——一张卷子同时覆盖C /算法开发、大数据、后端、运维、测试、数据挖掘六个方向,考察逻辑和出题风格都很有参考价值。虽然过去几年了,但如果你正在准备AI公司或大厂技术岗的校招笔试,这份卷子的题型结构和考察思路依然值得拿出来逐题拆一拆。

很多同学拿到这种多岗位合并卷的第一反应是懵:岗位这么多,到底按哪个方向准备?实际上商汤这种出题方式有一个明显的底层逻辑——所有岗位都要考数学、C 语言基础和数据结构,然后再按方向加考专业题。也就是说,第一场笔试卷子的核心不是筛选你会不会某个具体框架,而是看你在计算机基础、算法思维和逻辑推导这些底子上过不过关。这篇文章就按我当时真实的做题顺序和复盘笔记,把这份卷子的考察结构、典型题目类型、每个方向的准备重点从头到尾拆一遍。

1. 2018年商汤多岗位合并笔试的出题逻辑与考察结构

先说一个判断:2018年那批AI独角兽的笔试题,商汤出得不算最难的,但一定是最散的。散到什么程度?七个岗位方向共用一张卷子的前半部分,后半部分才会进入岗位相关的专业题。这种结构对候选人有一个隐性要求——基础能力必须全面,不能有明显短板。

我当时参加的这场笔试,整体结构大致分为三个部分:

模块考察内容题量占比覆盖岗位
通用基础数据结构、算法、C 语言、数学约40%全部岗位
方向专业机器学习/深度学习、大数据、后端、运维、测试约40%对应岗位
编程实战手写代码题约20%全部岗位

这个结构放在今天看依然很典型。通用基础部分考察的是所有技术岗必须具备的计算机核心知识,而方向专业部分则是各岗位的分水岭。值得注意的是,商汤作为AI公司,算法开发岗和C 开发岗共用的是同一套基础题,但算法开发岗额外多了深度学习原理题,C 开发岗则更侧重内存管理和底层机制——这个细节说明,商汤对算法岗的定位不是"会调包就行",而是要求候选人既有理论深度,又有扎实的工程实现能力。

笔试的时间安排也值得说一说。整场考试大概两个小时,选择题约40道,编程题3道。如果按部就班从头做到尾,大概率会在编程题上时间不够。我当时比较幸运,提前了解过商汤笔试的风格,所以采取了"先做编程题,再回头做选择题"的策略。为什么?因为编程题分值占比虽然只有20%,但一道题的区分度远高于十道选择题,而且先做编程题能在精神最好的时候把思路理清。这个策略在后面会详细展开。

还有一个容易被忽略的细节:商汤的在线笔试系统会开启摄像头监控,考试期间不允许切出浏览器,编程题的环境是牛客网的在线OJ,支持C /Java/Python三种语言。这意味着如果你平时习惯用本地IDE调试,考前最好先熟悉一下牛客网这种不带自动补全的裸编辑器环境,不然光是手写循环和头文件就可能浪费不少时间。

2. 通用基础选择题:数据结构、C 语言与数学功底的真实占比

进入选择题之后,第一个感受就是——题量大、覆盖广、但深度不夸张。和很多大厂不同,商汤通用基础部分的选择题没有太多偏题怪题,考的基本都是"你应该会但未必完全掌握"的知识点。这一部分如果基础扎实,拿满分不是没有可能。

2.1 数据结构考点:链表、二叉树、栈与队列的实际题目形态

数据结构在通用基础选择题里的占比最高,大概有10到12道。当时印象比较深的几类题目包括:

  • 链表的逆转、删除节点的边界处理,比如"删除单链表中倒数第k个节点,要求只遍历一遍"
  • 二叉树的遍历序列还原,比如"已知前序和中序遍历序列,求后序遍历结果"
  • 栈和队列的混合应用,比如"用两个栈实现队列"的出队复杂度分析
  • 哈希表的冲突处理方法与查找效率对比

其中有一道题让我印象特别深刻:给出一棵完全二叉树的数组存储方式,要求计算某个节点父节点和左右孩子节点的下标。这道题和LeetCode的堆排序题如出一辙,但很多人第一次接触时会在"数组下标从0开始还是从1开始"这个细节上栽跟头。我当时在这道题上多花了30秒确认下标规则,因为数组从0开始时,节点i的左孩子下标是2i+1,而从1开始时是2i——这恰好是出题人最容易埋的坑。

2.2 C 语言必考点:指针、内存管理、虚函数与const机制

C 方向的选择题考得非常"商汤"。为什么这么说?因为商汤的核心产品是计算机视觉SDK和AI平台,底层大量使用C 做高性能计算和内存管理,所以笔试题对C 的考察偏向底层机制和工程陷阱,而不是语法糖。

我复盘了一下,高频考点集中在几个方向:

  • 指针与引用的区别,指针数组与数组指针的混淆
  • new/delete与malloc/free的异同,内存泄漏的成因
  • 虚函数表(vtable)的布局、多重继承下的菱形继承问题
  • const修饰变量、指针、成员函数时含义的层层递进
  • 智能指针(unique_ptr、shared_ptr)的底层引用计数机制
  • 构造函数、析构函数、拷贝构造在临时对象传递时的调用次数

有一道题当时难住了不少人——"类中定义了虚函数,且该类包含一个int成员和一个double成员,求sizeof该类的值"。这道题考察的是内存对齐和虚函数表指针的综合知识:因为虚函数会让对象开头多一个虚表指针(64位系统下是8字节),int通常占4字节、double占8字节,在默认8字节对齐下整个对象的大小是24字节(8字节对齐后)。如果没考虑到虚表指针,很容易算出16字节的错误答案。

此外,笔试中还出现了关于重叠内存的memcpy与memmove的题目,这属于Windows底层开发和高性能计算的高频坑。比如下面这行代码:

char *p = (char *)malloc(32); strcpy(p, "hello world"); memmove(p, p + 3, 5); // 重叠拷贝

题目问的是执行后p指向的内容是什么。如果不理解memmove为什么能处理重叠地址,答起来会很吃力,但实际手推一遍就明白了。

2.3 数学与概率:为什么AI公司笔试离不开这些

商汤作为算法驱动的AI公司,在通用基础题里塞了一道概率题是意料之中的事情。这类题目不需要太多高等数学功底,但概率直觉必须在线。当时让我印象最深的是这样一题:

一个袋子里有3个红球和5个蓝球,每次随机取出一个球,不放回,问第二次取到红球的概率是多少?

很多人第一反应是条件概率、要用贝叶斯公式,但其实这道题考的是基本的全概率公式。由于第一次取球可能是红也可能是蓝,所以第二次取到红球的总概率就是取红球的总数除以球的总数,依然是3/8。抽签的先后顺序不影响最终概率,这在算法面试中是一个非常重要的直觉。当时和几个同学对答案,还真有人选错了。

线性代数的考察相对少一些,但这几年开始逐渐增加。2018年当时考了一道矩阵乘法的计算题,要求估算两个常见矩阵乘法的复杂度,算是入门级。但可以预测的是,如今再考的话,大概率会加入特征值分解、SVD(奇异值分解)这类和机器学习PCA直接相关的内容。

3. 编程实战题复盘:字符串逆序、链表操作与动态规划

商汤这场笔试的3道编程题,难度阶梯非常分明——一道简单、一道中等、一道偏难,整体上比LeetCode的Easy/Medium难度稍高一点,但不会出现Hard级别的压轴题。这种设计意图很明显:先确保你能写对基础题,再用中等题考察代码质量,最后用难题区分高分段。

3.1 第一题:字符串逆序输出的边界与陷阱

第一道编程题是最经典的字符串逆序输出。输入一行字符串,要求按单词逆序输出。也就是说,"I love coding"要输出成"coding love I",而不是把整个字符串直接翻转成"gnidoc evol I"。

这道题对于有一定基础的同学来说不难,但它真正考察的是边界条件的处理能力,具体包括:

  • 如何处理字符串中间有多个连续空格的情况
  • 如何处理字符串首尾有多余空格的情况
  • 如何处理空字符串和只有空格的字符串

我当时用的是"C 先按空格split到vector再逆序拼接"的写法,这样最简单,也不容易出错。但如果用C语言的话就得先翻转整个字符串,再逐单词翻转,这时候对指针边界的把握就更重要了。这种出题思路和LeetCode上的"Reverse Words in a String"几乎一模一样,所以我建议准备商汤这类公司笔试时,先刷一遍LeetCode的字符串类题目,性价比极高。

3.2 第二题:链表中环的入口节点,快慢指针的数学原理

第二道编程题考察的是链表操作——判断一个单链表中是否存在环,如果存在则返回环的入口节点。

这道题是链表题里的经典老题,解法也很固定:快慢指针。快指针每次走两步,慢指针每次走一步,两者如果相遇则说明链表有环。但问题是,怎么返回环的入口节点?

我当时在考场上推导了一遍这个数学原理:设链表头到环入口的距离为a,入口到相遇点的距离为b,环的长度为c。慢指针走了a+b步,快指针走了2(a+b)步,快指针多走的部分就是环的整数倍,即a+b = n*c。再设相遇点继续走到入口的距离为c-b,所以头节点走到入口的距离a与相遇点走到入口的距离有什么关系呢?慢慢推就会发现,只要把慢指针拉回链表头,快慢指针同时以一步的速度走,它们一定会在环入口相遇。这个结论虽然常见但推导过程其实有讲究,笔试时不一定要默写结论,但最好能用自己的语言解释清楚。

3.3 第三题:动态规划进阶,从最长公共子序列到编辑距离

第三道编程题考的是动态规划,当时的具体题目是求两个字符串的最长公共子序列(LCS)长度。

def longest_common_subsequence(text1, text2): m, n = len(text1), len(text2) dp = [[0] * (n + 1) for _ in range(m + 1)] for i in range(1, m + 1): for j in range(1, n + 1): if text1[i - 1] == text2[j - 1]: dp[i][j] = dp[i - 1][j - 1] + 1 else: dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) return dp[m][n]

上面这段代码是标准的DP表格实现,如果把空间优化成一维数组,就需要额外用一个变量记录左上角的值,这也是常见的进阶考点。其实最长公共子序列和编辑距离(Edit Distance)共用同一套DP框架,如果能把状态转移方程推导过程彻底弄清楚,这类题目基本可以秒杀。我个人的建议是,别背模板,试着从"子问题是什么、状态怎么转移"的角度推导一遍,这样换个题目也不怕。

4. 算法开发与数据挖掘方向:深度学习笔试的经典考点

如果你投的岗位是算法开发、数据挖掘,那么过了通用基础题之后,会进入一个有AI公司特色的专业题环节。这个环节的考察重点是你对机器学习基本概念的理解深度、深度学习中反向传播的具体推导能力,以及特征工程和模型评估的实操经验。

4.1 机器学习基础:偏差方差困境、过拟合与正则化

2018年商汤算法岗选择题中有不少关于机器学习基础概念的题目,这些题目现在回头看依然是高频考点:

  • 偏差与方差的权衡(Bias-Variance Tradeoff)
  • L1正则化为什么能产生稀疏解,L2为什么不能
  • 过拟合的常见原因与应对手段(增加数据、降低模型复杂度、Dropout、早停)
  • 交叉验证的几种方式与适用场景(K-Fold、留一法、Stratified K-Fold)

其中有一道多选题是这样的:"以下哪些方法可以缓解过拟合?"选项包括:增加训练数据、增大模型参数、添加L2正则化、使用Dropout、降低学习率。正确答案是增加训练数据、添加L2正则化和使用Dropout。但当时有不少同学把"降低学习率"也选上了,这就是对概念理解不够透彻的表现——降低学习率只是让训练更稳定,它本身阻止不了模型过多拟合训练数据中的噪声,所以算不上正则化手段。

4.2 深度学习必考推导:Softmax交叉熵损失反向传播

如果只是准备选择题,深度学习部分其实还好;但商汤这种AI公司笔试,选择题通过之后还可能有在线笔试中的简答题,或者是面试时的现场手推环节。我当时在备战时反复推导过Softmax + 交叉熵的反向传播,结果笔试和面试真的都用上了。

Softmax函数的形式和参数如下:

如果某个样本的logits输出为z1, z2, ..., zk,则Softmax输出为p_i = exp(z_i) / Σexp(z_j)。交叉熵损失为L = -log(p_y),其中y是正确标签对应的类别。

那么这个损失对logits向量第i个分量的偏导是什么?推导结果是:

  • 如果i是正确标签对应的位置,偏导是p_i - 1
  • 如果i不是正确标签对应的位置,偏导就是p_i

这个结果极其优雅,也难怪各大公司都爱考——因为它一石二鸟,既考察了链式法则的数学基本功,又考察了Softmax与交叉熵搭配时梯度化简的直觉。笔试题中偶尔会出现"请写出Softmax交叉熵损失对z_i的偏导"这种简答题,如果你能现场推导而不是背答案,会加分不少。

4.3 数据挖掘方向:特征工程与海量数据经典题

数据挖掘方向的题目更多偏向特征处理和经典机器学习。我当时遇到的这类题目中有几个值得单独拎出来的:

  • 连续特征离散化的好处(增强鲁棒性、降低过拟合风险、便于逻辑回归等线性模型表达非线性关系)
  • 类别特征的编码方式(One-Hot、Label Encoding、Frequency Encoding,各自的适用场景)
  • 如何处理缺失值(删除、均值/中位数填充、模型预测填充、单独标记缺失)
  • 和业务结合的场景题:比如"如果CTR预测样本中正样本占比只有1%,应该如何处理"——这考察的就是数据不平衡问题,手段包括欠采样、过采样、调整损失函数权重、使用AUC等对不平衡不敏感的评估指标。

这里有一个很多同学容易忽略的考点:线下评估与线上效果不一致时怎么排查。往细了说,可能是训练集和测试集特征分布不一致、特征穿越(label leakage)、采样逻辑不同、离线评估指标选择不当等。这类问题在笔试中偶尔以简答题出现,在面试中出现的频率更高。准备时最好准备一个自己完整做过的特征工程+模型评估案例,能讲出"我做了什么、为什么这么做、效果如何、踩过什么坑",非常加分。

5. 大数据开发方向的题源:Hadoop生态、Spark原理与TopK问题

大数据开发方向的题目在商汤这场笔试中占比不高,大概5到8道,但很有代表性。商汤作为AI公司,它的数据平台要支撑海量图片、视频数据的存储与计算,所以大数据题目的考察重点非常明确:基础组件原理 + 分布式思维 + 海量数据处理经典方案。

5.1 Hadoop体系考点:HDFS读写机制、MapReduce执行流程

当时选择题里直接考了HDFS的块大小默认值(64MB/128MB)以及Block副本机制——为什么要存3份副本?这涉及机架感知(Rack Awareness)的基本原理:第一份副本放在客户端所在节点,第二份放在同机架的不同节点,第三份放在不同机架,目的是兼顾写入性能和容灾能力。

MapReduce的考点则集中在Shuffle阶段的具体过程:Map端输出后如何分区(Partition)、排序(Sort)、合并(Combiner),Reduce端如何拉取对应分区的数据。这种题如果只是背概念很容易漏掉细节,建议动手跑一个简单的WordCount任务,打开日志看每个阶段的状态流转,印象会深很多。

5.2 Spark与MapReduce的对比:为什么能快那么多

Spark相关题目更侧重理解:RDD的两种操作算子(Transformation和Action)、窄依赖与宽依赖的区别、Spark为什么比MapReduce快(基于内存计算、DAG优化、避免反复落盘)。

这里有一个商汤笔试很爱考的知识点:哪些操作会触发Shuffle?答案包括groupByKey、reduceByKey、distinct、join(非广播场景)等。而map、filter、union这些窄依赖操作不会触发Shuffle。我当时就在一道判断题上栽了跟头——题目说"Spark的map操作会触发Shuffle",这显然是错误的,但如果不熟悉宽窄依赖的概念很容易被带偏。

5.3 海量数据处理经典题:1亿个整数找Top100

最后一道大数据方向的题目是经典的海量数据TopK问题:一亿个整数,找最大的100个,内存不足以全量排序,怎么办?

标准解法是维护一个容量为100的小顶堆,遍历所有数据,如果当前元素比堆顶大就替换堆顶并调整堆。时间复杂度是O(n log k),空间复杂度是O(k),而k=100,非常小。

这个问题还有一个变体:如果数据是分布式存储在多个节点上的,可以先在每个节点上求局部Top100,再对所有局部Top100做全局归并。这在思路上就是MapReduce里的"Map阶段求局部TopK,Reduce阶段求全局TopK"。这种题目考察的核心不是你会不会调Spark API,而是你有没有分布式计算思维。准备大数据方向笔试时,建议把TopK、中位数、去重计数(基于BitMap/BloomFilter)这类海量数据经典题都整理一遍,基本上到哪儿都能用上。

6. 后端、运维与测试方向:工程能力与系统思维的较量

如果你投的是后端开发、运维开发或测试开发,那么在专业题环节看到的就是另一套东西了:网络协议、操作系统、数据库、Linux命令、测试用例设计。这些题目更偏工程实践,和算法岗的数学推导路线形成鲜明对比。

6.1 后端必备:TCP三次握手与四次挥手、HTTP与数据库索引

后端方向的选择题逃不开计算机网络的核心考点。当时考了关于TCP的这样一个问题:"TCP连接建立为什么需要三次握手,而不是两次?"答案是:三次握手是为了防止失效的连接请求报文段突然又传到服务器端,从而产生错误连接。简单来说,如果只有两次握手,客户端发出的SYN由于网络延迟很久才到达服务器,服务器会认为这是一个新连接并发送确认,此时客户端已经放弃了这个连接——两次握手就会造成服务器资源的浪费和连接混乱。

数据库索引的考点也很典型:覆盖索引的底层原理——一个索引同时包含查询字段和返回字段,这样查询时不需要回表,减少了磁盘I/O。笔试题往往给一个表单和多条查询语句,问你哪条查询能命中覆盖索引。这需要你理解B+树的结构、联合索引的最左前缀原则,以及回表的判断逻辑。建议准备时手画一棵B+树,把"索引叶子节点存的是什么"这件事彻底搞清楚。

6.2 运维必考:Linux进程/内存管理命令和系统排查思路

运维方向的考题集中在Linux操作系统基础。比如:

  • ps aux和ps -ef的区别
  • top命令里的load average三位数字分别代表什么
  • free命令行里buff/cache和available的区别
  • 查看端口占用用什么命令(netstat -tlnp或ss -tlnp)
  • 如何统计日志文件中出现次数最多的前10个IP

这类题目不偏不怪,只要你平时真的在服务器上排查过问题,基本都能答上来。但如果只是背命令参数,很容易把ss和netstat的用法混淆。我建议准备运维岗的同学把Linux命令按"进程管理、内存管理、磁盘管理、网络管理、文本处理"五个类别整理一遍,每个类别记三到五个最常用的命令及参数,效率最高。

6.3 测试开发视角:设计测试用例的经典场景题

测试开发方向的笔试通常会有这样一道场景题:给你一个登录页面,包含用户名和密码输入框以及登录按钮,请设计测试用例。

这道题考察的点非常全,从功能测试到异常测试、从安全性测试到性能测试都有发挥空间。我当时在答题时把测试用例按层次写了四层:

测试类型测试用例示例
正常功能正确的用户名和密码,登录成功并跳转到首页
输入边界用户名/密码为空、超长输入(1000字符)、特殊字符
异常处理密码错误提示是否友好、连续输错5次是否锁定
安全与性能密码是否明文传输、注入攻击是否被拦截、多人同时登录的响应时间

注意,这种题目是没有标准答案的,关键是看你的测试思维是不是系统化、有没有边界意识和安全敏感度。商汤这类AI公司有大量面向开发者和企业用户的平台,测试开发岗的核心能力就是能设计出覆盖各种真实场景的测试用例。

7. 笔试复盘与准备路径:当时踩过的坑和优化后的备考顺序

考完商汤这场笔试之后,我给自己做了一次完整复盘,发现有几个坑是我当时的临场表现和准备方式里可以明显优化的。这些经验不只是对商汤这场笔试有用,对后来参加其他AI公司和大厂的校招笔试也适用。

7.1 踩坑实录:时间分配、语言选型与不熟悉OJ环境

第一个坑是选择题卡时间太久。当时遇到一道关于C 虚函数表布局的选择题,我忽然不确定"虚函数表指针放在所有成员之前还是之后",结果在这道题上纠结了将近5分钟。这本来是送分的基础题,但由于我对C 的内存布局细节掌握不够牢固,白白浪费了时间。复盘之后我给自己定了一个规矩:选择题单题超过90秒,先标记跳过,绝不恋战。因为商汤的笔试题量大、分值分散,为一道两分的选择题牺牲后面一道20分的编程题,太亏了。

第二个坑是编程题的输入输出处理。我平时在LeetCode上做题时习惯了函数式编程,只需要实现核心逻辑即可。而商汤用的是牛客网OJ,需要自己处理stdin/stdout的格式。我第一道编程题就浪费了5分钟在"如何按行读取包含空格的字符串"上。正确的快速写法是:

#include <iostream> #include <sstream> #include <string> using namespace std; int main() { string line; while (getline(cin, line)) { // 读入一整行 stringstream ss(line); string word; while (ss >> word) { // 按空格拆分单词 } } return 0; }

这段代码里值得一提的几个细节是:第一,getline能读取含空格的完整行而不被空格截断;第二,stringstream可以用>>运算符自动跳过空格,正好满足"按单词处理"的需求;第三,while循环处理多行输入时逻辑可以保持简洁。如果考前不熟悉这类输入输出写法,笔试现场很容易手忙脚乱。

第三个坑是语言选型摇摆不定。我本人主攻C 和Python,但笔试中有一个编程题我犹豫了——动态规划那道题用Python写更简洁,但商汤在线OJ对Python版本的兼容性我拿不准。后来我确立了一个原则:编程题第一选熟悉度和正确率,第二选语言本身。准备笔试时每种常用语言至少有一道完整的OJ输入输出示例,明确哪个场景用哪个语言最顺手,不要到考场上才临时决定。

7.2 有效的备考路径:从知识清单到模拟训练

基于这次笔试的复盘,我后来总结出了一套更适合自己的备考顺序,分享出来供参考:

  1. 第一周:按方向梳理知识点清单。如果你是算法岗,就把机器学习基础、深度学习基础、C 基础、数据结构列个清单;如果是大数据岗,就把Hadoop/HDFS/MapReduce/Spark/常见海量数据处理题列清楚。目标是把考试范围具象化,不要漫无目的地刷题。

  2. 第二周:专项突破最薄弱部分。用牛客网或LeetCode的数据结构、算法题组做专项训练,每天固定做3到5道题。重点不是刷数量,而是每道题都能讲清楚思路、复杂度、边界条件。我当时的薄弱环节是动态规划,所以连续一周每天做4道DP题,从LCS到编辑距离到背包问题,最后再做这类题基本不需要在草稿纸上推状态转移了。

  3. 第三周:限时模拟整套笔试。在牛客网或赛码网找一间安静的教室,严格按照考试时间做一套完整试卷。模拟时开启免打扰模式,不查资料,还原真实考试状态。我当时这样模拟了3套,最大的收获是适应了与时间赛跑的压力,考场上不会因为题目多而出现焦虑性失误。

  4. 考前两天:只复习错题笔记和手推公式。把之前做错的选择题、没写出来的编程题、推导不流畅的机器学习公式重新过一遍。考前不要再接触完全没见过的难题,这样反而会打击信心。

这里有一个心态上的建议:商汤这类公司的笔试,其实不是让你拿到满分的,而是让你尽量在区分度高的题目上拿分。遇到不会做的题目很正常,关键是不要把时间无谓地耗在没思路的题上。我见过不少同学在第三道DP题上卡了20分钟,结果第一、第二道编程题反而没时间仔细检查,最后提交的代码里还有低级错误。合理的时间分配是:三道编程题,按照难度递增的顺序分配约15分钟、20分钟、25分钟,留出15分钟做检查和回头补选择题。

8. 后续扩展:这份卷子对当今AI与科技公司校招的参考价值

最后说一点个人体会。虽然这份卷子是2018年的,但在我看来,它的考察框架放在今天依然不过时——甚至可以说,现在的AI公司笔试,本质上还是在用类似的方式筛选候选人。

一个明显的变化是深度学习的比重更高了。2018年商汤笔试里还会考Softmax和交叉熵的推导,放在现在的AI算法岗笔试题里,这已经是"默认掌握"的级别,更多题目开始偏向Transformer结构、注意力机制、分布式训练、模型量化部署这些实际应用层面。如果你是现在准备商汤这类AI公司的算法岗笔试,除了传统的机器学习基石和深度学习基础,还建议补充当前大模型相关的技术栈:Tokenization、Positional Encoding、KV Cache、LoRA微调、多模态对齐等。

另一个变化是纯工程岗位的竞争越来越看重项目实战。2018年那份卷子里的选择题只考了命令和概念,现在的后端/运维/测试岗位笔试题往往会给出一个线上故障场景,要求你从日志、监控、调用链中定位问题原因。这种题目靠背题是答不出来的,需要你平时真的有排查故障的实战经验。如果你还是在校生,建议尽早参与真实的开源项目或自己搭建一套完整的个人项目(比如基于Node.js或Spring Boot的前后端分离应用),把环境搭建、编码开发、测试部署、上线监控整个流程走一遍。

如果现在让我对准备第一场商汤校招笔试的学弟学妹说一句最实在的话,那就是:别把注意力放在猜题押题上,把计算机基础打扎实,把算法题的正确率提上去,比什么都重要。商汤这场笔试之所以值得回顾,不是因为它有多难,而是因为它用一份卷子清晰地告诉你——在任何AI公司做技术岗,数据结构、C 语言、数学功底、算法思维这四样东西,是永远绕不开的基本功。把基本功练好,不管笔试出什么题,你都有底气。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询