
1. 笔试整体情况与考点分布2023年搜狐畅游的秋招笔试U3D开发岗依然是游戏客户端方向投递量最大、筛人最狠的一批。我身边好几个学弟学妹都投了畅游笔试挂掉的比例不低倒不是说题目有多偏而是很多人根本没搞懂U3D岗位笔试到底在考什么。先说结论搜狐畅游的U3D开发岗笔试核心考察的是三件事——C#基础功底、Unity引擎机制理解、以及图形学与数学基础。这三个方向大概占整张试卷的85%以上剩下的是逻辑题、网络编程和少量游戏开发常识。和腾讯、网易动辄出“写一个完整系统”的年题不同畅游的笔试更偏向基础功的检验题量大、覆盖面广、单题深度适中。从题型结构上看2023年秋招的笔试依然保持了“选择简答编程”的经典配置。选择题大概在20到25道覆盖C#语法、数据结构、Unity API、渲染管线、物理系统等简答题通常是2到3道考察对引擎机制的理解和项目经验编程题一般是1到2道一道算法题加一道Unity场景题是常见组合时间限制通常在90到120分钟。这里要特别提醒一点畅游笔试用的是牛客网或者赛码网的系统UI上能看到倒计时题目提交后不能回头改所以做题策略很重要。很多人一上来死磕选择题结果编程题没时间写这是最亏的。我的建议是拿到卷子先把简答和编程题扫一遍估算耗时再决定选择题的做题节奏。另外笔试通过后通常一周内会收到面试通知所以笔试成绩直接影响后续节奏能高分就尽量高分不要只追求过线。1.1 畅游笔试的历史特点与变化趋势如果往前翻两三年的笔经你会发现畅游的题目风格其实有迹可循。2021年和2022年的笔试C#部分占比很大尤其是值类型和引用类型的区别、垃圾回收机制、委托和事件、装箱拆箱这些高频考点反复出现。2023年延续了这个传统但有一个明显变化Unity引擎相关题目的比重增加了特别是渲染管线和UI系统的题目。这个变化和行业趋势是挂钩的。2023年Unity推出了URP和HDRP的广泛普及手游项目几乎全面转向URP所以笔试中出现了不少关于SRP可编程渲染管线、渲染队列、UI合批相关的问题。如果你还在用内置渲染管线的知识去答题一些概念会踩坑。还有一点值得注意2023年秋招的部分题目出现了“结合Unity版本特性”的考法。比如会问“Unity 2021 LTS和Unity 2022 LTS在URP上的区别”或“新版Input System相比旧版有哪些优势”。这种题目在纯书面上很难准备需要你对Unity的版本迭代有实际了解。我的习惯是每年新版本发布后做一个简单的Release Notes阅读笔记重点关注渲染、物理、UI、脚本运行时这几个模块的更新笔试时遇到这类题能答得比别人具体。1.2 整体考察范围与应对策略从考点分布来看2023年搜狐畅游U3D笔试的考察范围大致可以拆成五个模块C#语言基础与数据结构约30%Unity引擎核心机制生命周期、物理、协程、UI等约30%图形学与数学基础向量、矩阵、渲染管线、Shader基础约20%网络编程与设计模式约10%游戏逻辑与综合题含算法约10%这个分布意味着你想靠刷算法题过这场笔试是不现实的。算法题在整张卷子里占比不高就算完全做对也就拿到那一两道题的分数如果C#和Unity基础部分翻车总分根本拉不回来。应对策略上我建议把复习时间按这个比例分配C#基础用3天Unity核心机制用4天图形学用2天网络和设计模式用1天最后留1天做综合模拟。总复习周期10天左右是比较健康的节奏太长容易遗忘太短又覆盖不全。接下来我按模块逐一拆解把每个考点对应的真题类型、答题思路和避坑方法都讲清楚这些都是实际考场上验证过有效的东西。2. C#基础与数据结构笔试的得分基本盘C#部分是整场笔试里最“客观”的分数来源会就是会不会就是不会没有模糊地带。而且这部分题目通常不难属于只要你认真准备过就能拿满分的类型。但反过来如果基础不牢选择题连错三四个和其他人的差距一下就拉开了。2.1 高频考点从值类型到装箱拆箱在2023年的考卷上C#相关考点里出现频率最高的几个话题依次是值类型与引用类型的区别、装箱与拆箱、垃圾回收机制、委托与事件、字符串的不变性、List和Dictionary内部实现。值类型与引用类型的题考察方式一般是给一段代码让你判断某一个变量在赋值之后会不会影响原值。比如定义一个struct和一个class各自实例化后赋给新变量修改新变量的字段问原对象是否受到影响。这类题的坑在于很多人平时写代码没有意识到struct的赋值是“拷贝整个数据”一旦里面嵌套了引用类型字段又会变成浅拷贝行为比单纯的值类型更复杂。我建议准备一个自制的速查表把常见的类型归属整理清楚笔试前过一遍考场上基本不会错。类别常见类型内存位置赋值行为值类型int, float, bool, struct, enum栈以及引用类型内部的堆区域复制值引用类型class, string, array, delegate, List托管堆复制引用装箱拆箱在Unity开发里是高频性能坑笔试自然也爱考。最经典的题是“以下代码是否会发生装箱发生在哪一行”然后给你一段类似下面这样的代码int value 42; object obj value; // 第1次装箱 string str obj.ToString(); // 这里没有装箱两个关键点要记牢值类型赋值给object或接口时发生装箱调用值类型的ToString、GetType等继承自object的方法时通常不装箱。但如果你把值类型转成接口再调用方法就会发生装箱。有没有写对往往就是选择题里的一分差距。垃圾回收方面的题2023年考过“GC何时触发”、“如何减少GC”“IDisposable和finalizer的区别”。回答这类题不要只背定义要结合Unity场景说。比如Unity的Mono垃圾回收是非分代回收每次GC会扫描整个托管堆所以游戏中频繁的字符串拼接、产生临时数组、Lambda捕获变量都会导致GC Alloc飙升这是面试官在简答题中真正想看到的回答。2.2 数据结构与集合类别只背“定义”List、Dictionary、HashSet、Queue、Stack这几个集合类笔试几乎必考。但考试方式不是初级的“List是有序的吗”这种送分题而是给你一段增删改查的代码问时间复杂度、是否报错、为什么报错。典型的一道题是在一个foreach循环中直接对List执行Remove操作会发生什么正确答案是抛InvalidOperationException因为List在迭代时使用了版本号机制任何修改集合结构的操作都会让版本号变化从而触发异常。但如果你用for循环倒序遍历去删除就没问题。Dictionary的底层实现也是高频考点。它内部是数组加链表或红黑树在冲突较多时升级的结构所以查找复杂度均摊O(1)。笔试中要是问“为什么Dictionary的key用string比用自定义struct更快”你要能从哈希计算和内存布局两个角度回答string的哈希计算有原生优化而自定义struct的GetHashCode如果不重写会使用反射机制性能极差。字符串的不变性和StringBuilder也是必考。一个经典面试题是“字符串拼接用和StringBuilder有什么区别”2023年的笔试换了个考法给一段在循环里做字符串拼接的Unity代码问如何优化。你当然要回答改成StringBuilder或者缓存字符串但如果你能再补充一句“在Unity中频繁拼接字符串会产生大量临时内存进而触发GC优化方案是把日志拼接放到Profiler之外的地方或用 $ 插值”这就能在简答题里体现差异化。2.3 真题示例与答题思路根据我收集到的2023年秋招笔试回忆有一道简答题很有代表性请描述C#中using语句的作用以及它在Unity开发中的典型使用场景。这种题看着基础但想答出高分不容易。基础回答是“using语句实现IDisposable的资源释放编译器会将其转换为try-finally”。但如果你想拿满分要补充三点using可以处理多种资源同时声明的情况如using (var a new A(); var b new B())在Unity中using常用于数据库连接、文件读写、WWW请求、AssetBundle的内存释放等场景你还可以说using语句本质上是语法糖等价于try-finally这一点很多时候被忽略我在实际项目中用using最多的场景是文件读写和网络请求的响应流处理。有一次游戏存档模块频繁出现文件占用的问题就是因为忘了用using导致FileStream没有及时释放后来全部改成using包裹后问题彻底消失。笔试里举这类例子能让阅卷人觉得你是真正做过项目的。2.4 老手经验C#基础的快速复习法C#基础部分的复习不建议直接翻书从头看。最高效的方法是找一套往年的笔试题或面试题集把错题涉及的知识点整理成一个独立的补漏清单。比如你发现“委托和事件的区别”没搞懂就去把这个知识点彻底弄明白而不是把整个C#语法再看一遍。刷题时有一些容易出错的重灾区需要特别注意闭包和Lambda捕获变量的坑在for循环里创建Lambda捕获循环变量打印出来全是最终值这一点在笔试选择题里经常出现async和await的死锁问题Unity主线程上下文和同步上下文的关系笔试偶尔会从“为什么Unity中不能直接使用.Result”这个角度出题结构体中的引用类型字段结构体本身是值类型但字段是引用类型时修改字段内容会影响到所有拷贝出的副本很多人栽在这一题这几类题只要是常年写Unity的人几乎都踩过坑。我在个人项目里就遇到过闭包捕获循环变量的bug当时在UI按钮事件绑定循环里给每个按钮的点击事件传参数结果所有按钮点击后输出的都是最后一个按钮的值。查找原因时第一反应是按钮绑定写错了后来打断点才发现是Lambda捕获的是同一个变量引用。笔试中遇到这类题时答题速度比我快的人基本都是吃过亏的。3. Unity引擎核心机制笔试的“分水岭”区块C#部分是基础分Unity部分就是真正的分水岭。这一块考的是你对引擎机制的理解深度以及有没有真实项目的踩坑经验。背定义在选择题里能蒙对几个但简答题和编程题的开放性一出来是不是真懂就藏不住了。3.1 生命周期与脚本执行顺序Unity生命周期几乎是每年必考2023年也不例外。但现在的考法和早年不一样不再是简单的“Awake和Start哪个先执行”而是换个角度问在场景加载过程中一个GameObject上有三个MonoBehaviour脚本它们的Awake和OnEnable的调用顺序是怎样的答案是你无法确定。三个脚本的Awake执行顺序取决于脚本在Inspector上的排列顺序而OnEnable在Awake之前执行同一个对象上所有启用的脚本都会先执行各自的OnEnable然后才是Awake。这个知识如果你只是背过而没有实际操作过很容易答错。还有一道高频题是“OnDestroy和OnDisable的区别”。实际场景中有一个经典案例在OnDestroy里访问另一个已经被销毁的对象会导致MissingReferenceException因为Unity销毁对象的顺序是先执行所有相关对象的OnDisable再逐帧销毁不是同一帧同步完成的。3.2 协程与异步必考题的两个陷阱协程在畅游笔试里几乎每年都出现。2023年的考法是“以下协程代码中yield return null、yield return new WaitForSeconds、yield return new WaitForEndOfFrame三者的区别是什么”最基础的回答是yield return null表示下一帧继续WaitForSeconds表示延迟指定秒数后继续WaitForEndOfFrame则是本帧所有渲染和GUI工作完成后继续。但如果简答题想拿高分需要补充以下几点WaitForSeconds受到Time.timeScale影响Time.timeScale设为0时协程永远不会继续不要在Update里频繁开启协程每次StartCoroutine都会产生GC Alloc这是Unity官方文档也承认的协程不是真正的多线程它只是在主线程上分时执行所以不能用协程做耗时计算我实际遇到的一个坑是在游戏暂停功能里用WaitForSeconds做倒计时以为时间暂停了倒计时也会暂停结果发现Time.timeScale设成0后协程直接不恢复了。后来改成在Update里手写倒计时逻辑并用Scaled DeltaTime控制才解决问题。这类“背答案之外”的经验写在简答题里非常加分。3.3 物理系统与碰撞检测不能只背API物理系统相关的题在笔试中占比不低问法通常是“Unity中有哪几种碰撞检测方式分别适用于什么场景”常规回答是OnCollisionEnter用于物理碰撞OnTriggerEnter用于触发器检测。但如果想拿高分你需要讲清楚原理OnCollision是物理引擎计算碰撞响应后的回调OnTrigger是重叠检测不产生物理力所以性能更好。再深一层的问题是“Raycast和SphereCast的区别”。Raycast是一条射线检测SphereCast实际上是扫描体检测适合做角色移动时避免穿过墙壁和边缘。大多数人对这两个API的使用只停留在调用层面不知道Raycast性能和命中精度与RaycastAll的区别也不知道LayerMask怎么正确使用才能避免误检测。这里分享一个笔试中常用的答题技巧所有的物理检测题回答时一定要带上LayerMask的用法和GC问题。比如“Physics.Raycast默认会在所有层检测但通过LayerMask参数可以只检测指定层从而减少没必要的碰撞计算和委托分配”。这句话在阅卷人眼里能一眼看出你是真的有实战经验还是在背书。3.4 UI系统与合批Unity工程师的日常2023年笔试出现了好几道UGUI相关的题。最经典的一道是“当UI上存在大量图片时如何优化DrawCall”基础答案是“使用图集和Sprite Packer合并贴图”。但高分答案应该按这个顺序展开先用Profiler分析DrawCall数量和瓶颈点然后确认UI元素是否使用了正确类型的组件接着把散图打成图集如Sprite Atlas再检查是否有Mask、RectMask2D导致合批中断最后用UI的层级的顺序优化渲染顺序以避免打断合批。关于UI合批的核心机制笔试中可能会深入问“UGUI合批的条件是什么”。关键知识点包括合批的基本单位是CanvasCanvas下的所有可渲染元素会参与重建和合批但前提是纹理相同、材质相同、顶点格式相同。使用Canvas的“Screen Space - Overlay”模式不同图集就一定会拆成多个DrawCall如果改成“Screen Space - Camera”模式可能会受相机渲染层级影响。这些细节如果你没有在项目里实际调过UI性能很容易答得空洞。我在项目里曾经遇到一个背包界面打开时DrawCall直接到30多后来发现原因是所有装备图标没有打图集每张图各自用单独的材质。打了图集之后DrawCall降到5界面打开速度快了近一倍。这种从“发现问题到解决问题”的完整链条是在笔试简答题中最能让阅卷人信服的内容。4. 图形学与数学基础拉开分差的硬骨头图形学与数学是U3D岗位笔试里比较有意思的部分因为如果你只做过业务逻辑层的开发这部分很难答好但同时这部分题目的范围又是相对固定的准备起来不算难。4.1 向量与矩阵笔试必考的数学题向量相关题目在笔试里的出现频率非常稳定。常规题包括向量点乘和叉乘的几何意义、如何判断两个向量是否垂直或平行、如何用向量计算物体是否在目标前方。点乘的几何意义是投影两个单位向量点乘结果的余弦值是夹角的cos值用它可以判断方向关系叉乘的结果则是一个垂直于两个向量所在平面的新向量它的模长等于两个向量围成的平行四边形的面积方向由右手定则决定。在游戏开发中点乘常用于判断目标是否在角色前方叉乘常用于计算旋转轴或判断目标在左还是右。矩阵相关的常考知识点是旋转矩阵、位移矩阵、缩放矩阵以及Unity的TransformPoint和InverseTransformPoint的矩阵原理。答题时如果能提到“Unity的Transform矩阵是列主序存储”这是体现图形学基础深度的加分点。4.2 渲染管线与Shader基础答好这道题能拉开大差距渲染管线相关题目2023年考得偏实践。常见考法有两种一种是直接问渲染管线的流程另一种是给一个效果需求让你用Shader实现思路描述。标准的分段回答是顶点数据→顶点着色器→裁剪→光栅化→片元着色器→深度测试与混合→帧缓冲。但如果只是把这个流程背出来答案就太平庸了。高分答案要补充“Unity中URP管线的这个流程在哪里可以配置、HDRP和内置管线的区别、为什么移动端更倾向使用URP而不是内置渲染管线”。Shader基础方面高频考点包括ShaderLab的结构、Properties和Pass的关系、SubShader的用途、常见的混合模式Blend SrcAlpha OneMinusSrcAlpha的意义。一道我在2023年笔试回忆里看到的考题是“不透明物体和透明物体在渲染队列上的区别是什么Unity为什么要这样处理”答案的关键在于不透明物体写入深度缓冲从头到尾可以按任意顺序渲染结果都正确而透明物体需要从后往前渲染否则后面的透明物体会被前面的物体错误遮挡。而URP中如果你使用DepthTexture不透明物体渲染完才会生成深度图透明物体不会写入深度。4.3 光照模型和全局光照送分题也要答出深度光照模型题是图形学的基础题考法通常是“Lambert漫反射公式是什么”、“Blinn-Phong高光模型与Phong模型的区别”。公式本身不难但你要能解释为什么Blinn-Phong用了半角向量替代反射向量以及它的性能优势在哪里。更高一层的题目是“什么是全局光照Unity中如何实现”回答时可以从实时光照和烘焙光照两个角度说明。实时光照每帧计算Lighting实时阴影和反射性能开销大烘焙光照预先把间接光照信息存储在光照贴图或Light Probes中运行时只需要采样性能开销小。2023年的笔试里这个话题和“Light Probes是什么、用在哪”合并出题的情况比较常见。4.4 图形学复习的优先级排序图形学这块内容多且杂如果时间有限我建议按这个优先级复习向量运算和几何判断是最优先的因为几乎年年必考其次是渲染管线流程和坐标空间转换这套内容同样高频再往下是ShaderLab和混合模式这是Unity工程师不同于纯程序员的差异化知识光照模型和全局光照排在最后因为选择题考得不多只有简答题会涉及。5. 网络编程与设计模式笔试里的“加分项”网络和设计模式在整张试卷里的占比不高但属于做好了能为后续面试加分的模块。如果前面Unity和C#部分已经稳了这几道题就是你和别人拉开差距的地方。5.1 网络同步方案的三种常见实现“在Unity中做联机对战如何设计网络同步方案”这是一道高频简答题。优秀的回答应该从三个方向展开状态同步、帧同步、以及它们各自的优缺点。状态同步是客户端上传操作给服务器服务器计算并广播新的状态客户端只负责表现和上传自己的操作。优点是逻辑集中在服务器、防作弊容易缺点的服务器的压力和学习成本都很高。帧同步是大家轮流上传指令服务器把所有指令汇总后分发给所有客户端每个客户端本地执行相同的逻辑得到相同的结果。它的优点是服务器压力小适合动作游戏和RTS缺点是对逻辑确定性要求极高浮点数精度、Update顺序、随机数种子不一致都会导致画面分叉。如果你在笔试里能额外提一句“UDP和TCP的选择取决于游戏类型竞速和动作类用UDP配合补丁回合制和休闲类用TCP完全没问题QUIC协议在2023年已经开始被一些大厂用于游戏通信”这个答案就算很有层次了。5.2 设计模式在Unity中的实际应用设计模式题很少直接问定义更多是给场景问如何设计。比如“在Unity中实现一个全局的音频管理器需要考虑哪些设计模式”常规回答会提到单例模式但高分答案要有更丰富的设计维度使用单例模式保证全局唯一但要注意场景切换时单例的销毁与重建问题使用观察者模式解耦事件系统当主角血量变化时其他系统能及时响应使用对象池模式管理AudioSource实例避免反复创建销毁导致GC使用命令模式实现音效的撤销/重做虽然很少见但体现设计水平笔试中遇到设计模式题时不要把22种设计模式全列出来用最贴合题目场景的两三个深入分析就好。这比罗列所有模式更能展现思考深度。5.3 Object Pool与性能优化被低估的考点Object Pool在2023年的笔试里单独出了一道简答题大意是“在Unity中如果需要在游戏运行中频繁生成和销毁子弹对象如何设计对象池”。这道题看着简单但想答得完整需要有以下几个层面第一层说明对象池的核心思想避免频繁Instantiate和Destroy导致的性能开销和GC压力。第二层说明具体设计用Queue存储空闲对象申请时从队列取如果没有则创建新对象释放时回收到队列并SetActive(false)。第三层加分项是“不同对象的回收策略”。比如“当一个子弹碰撞到物体后是先回收再播放特效还是播放完特效再回收”取决于特效是否挂在子弹身上。如果你能回答“将特效独立成子物体回收时只把子弹本体回收特效用完毕后自动销毁或者回收复用”说明你做过实际项目而不是只在面试辅导班学过对象池概念。还有更高级的考量对象池的预加载大小和扩容策略。预加载太少会导致高峰期卡顿预加载太多会浪费内存和初始化时间合理的做法是在游戏进入战斗前根据关卡配置的敌人数和子弹数做动态预加载而不是写死一个固定数量。6. 实操经验与备战建议到这里笔试涉及的知识点基本盘点完了。但我想再花一整节说执行层面的事因为我在带人准备笔试题的过程中发现很多人知识点学得不错上了考场却因为操作策略问题丢了分。6.1 笔试过程中的答题排序与时间分配2023年畅游笔试的题量以正常速度来看90分钟内完成是紧巴巴的。正确的答题顺序应该是先做简答题和编程题再做选择题。原因有两个简答题的分值高、文字量少而且如果你先花大量时间在选择题上后面遇到简答题的时候精神状态已经没那么好了另外编程题如果时间被挤压你很难想清楚最优解容易慌。建议的时间分配是前10分钟浏览全部题目心里有数20到25分钟解决全部简答题30到40分钟做编程题最后15到20分钟完成选择题。这样即使选择题没完全检查完你也能保证把高价值题目答完。我在实际考试中有一个习惯拿到卷子第一件事不是做题而是把所有题快速过一遍把“一看就不会”的题标记出来。考场上再遇到同类型的题就直接跳过等全部答完后再回来碰运气。这种情况实践下来非常有效能避免在单个题目上浪费过多时间导致满盘皆输。6.2 刷题资源与备战时间线笔试备战不需要买课免费资源就够用。主要分三类第一类是笔试真题和面经CSDN、牛客网上有大量历届秋招网友分享的题目和答案虽然不成体系但覆盖了高频考点。建议先看最近三年的因为游戏行业的技术变化快太老的题目参考价值有限。第二类是官方文档Unity的User Manual和Scripting API是查漏补缺的宝库。很多人笔试前没有把Documentation当复习资料但其实Unity官方文档里关于生命周期、事件函数执行顺序、物理系统等内容恰恰是笔试出题的方向。复习时配合官方文档做笔记比东拼西凑看别人的教程效率高很多。第三类是GitHub上开源的Unity技术面试题集有人整理过几百道题以刷题的形式过一遍能快速发现薄弱点。我的习惯是刷题时准备一个错题集不打字手写或者直接录在笔记软件里重点记录“为什么错”而不是“答案是什么”。时间线上我建议笔试前一个月开始集中复习每天1.5到2小时前两周过基础第三周做专项突破最后一周做整套模拟。不要相信“两周速成”的说法除非你大学四年一直在写Unity项目否则不可能在两周内把C#和图形学基础补起来。6.3 笔试通过后的面试衔接笔试通过后面试官一定会拿着你的简历和笔试答题情况来提问。这意味着你在笔试卷上写过的每一个知识点都可能在面试里被追问。有个真实的教训我当年笔试时写了“熟悉URP渲染管线和烘焙相关的知识”结果面试官现场让我解释“URP中如何使用自定义Render Feature实现描边效果”。当时我只能靠印象答个大概暴露出知识不扎实的问题。所以备战笔试时要有“笔试是为了面试服务”的意识。每个答题内容最好都准备一个“我能延伸出什么”的思考方向。简单的“在项目里怎么用的”、“遇到什么问题怎么解决的”、“和其他的方案相比为什么选这个”这三个问题的答案如果能在笔试复习阶段就想好后面面试的准备负担會减轻很多。6.4 一个重要提醒笔试并不是全部最后说一个容易被低估的点。搜狐畅游的秋招流程是“简历筛选→笔试→初试→复试→HR面”笔试只是第一道筛选。从历年情况看笔试通过后还会有至少两轮技术面考察内容会延伸到实际项目细节、源码原理、性能优化案例等。笔试表现好当然是优势但不要因为笔试过了就放松对技术深度的积累。而且游戏行业的技术栈迭代速度很快。2023年特别火热的话题包括URP的Shader Graph、DOTS框架的普及程度、Unity 62023年推出的LTS版本中的新特性这些都可能成为面试的加分话题。笔试基础打牢了后续面试阶段的发挥水到渠成。我在带人准备笔试时发现很多人的问题不是“知识不够”而是“学得太碎片”。今天刷一道C#题明天学一个Unity教程后天看一篇图形学博客最后每个知识点都只懂皮毛。笔试想要高分需要的是体系化复习把知识点串成网一道简答题能推出三四个相关概念这才是阅卷人青睐的答案。我个人在实际操作中最常用的方法是画知识树一张纸写下C#、Unity、图形学、网络、设计模式五大分支每个分支再拆出子节点每天往上补充一个知识点直到考试前能不看底稿默写出一整棵树。这个方法在带教时非常管用。下一届秋招的学弟学妹们如果你们看到这篇文章就从画一张自己的知识树开始吧。