笔试概览
猎豹移动的笔试通常采用在线考试平台(如牛客网)进行,时长一般在 90-120分钟,题目类型以选择题和编程题为主,部分岗位可能会有简答题/论述题。
笔试主要面向软件开发岗(客户端、后端、算法、测试开发等),不同岗位的侧重点会有所不同。
主要考察内容(分岗位)
通用部分(所有技术岗)
这是笔试的基础,主要考察计算机科学的基础知识和综合能力。
-
数据结构与算法:
- 核心重点:这是重中之重,没有之一,几乎占据笔试分数的半壁江山。
- 数据结构:数组、链表、栈、队列、哈希表、树(二叉树、二叉搜索树、AVL树、红黑树了解基本概念)、堆(优先队列)、图。
- 算法:
- 排序:快速排序、归并排序、堆排序的原理、时间/空间复杂度。
- 查找:二分查找。
- 递归与分治:如汉诺塔、归并排序。
- 动态规划:经典问题(最长公共子序列、0-1背包、最长递增子序列等)。
- 贪心算法:如活动选择问题、哈夫曼编码。
- 图论算法:深度优先搜索、广度优先搜索、最短路径(Dijkstra、Floyd)、最小生成树(Prim、Kruskal)。
- 字符串处理:KMP算法(了解原理即可)、字符串匹配。
- 题型:通常是选择题(考察概念、复杂度分析)和1-2道编程题(中等难度)。
-
计算机网络:
- 核心重点:TCP/IP协议栈是核心中的核心。
- OSI七层模型与TCP/IP四层/五层模型的对应关系。
- 各层的主要协议和功能(应用层:HTTP/HTTPS, FTP, DNS;传输层:TCP, UDP;网络层:IP, ICMP;数据链路层:以太网等)。
- TCP的三次握手和四次挥手:过程、状态变化、为什么是三次和四次。
- TCP与UDP的区别:场景、可靠性、头部开销等。
- HTTP方法(GET, POST等)、状态码(200, 404, 500等)。
- DNS解析过程。
- 题型:选择题为主,细节题较多。
-
操作系统:
- 核心重点:进程与线程、内存管理。
- 进程与线程的区别与联系。
- 进程间的通信方式。
- 进程的调度算法(FCFS, SJF, RR等)。
- 内存管理:虚拟内存、分页、分段、页面置换算法(FIFO, LRU, OPT等)。
- 死锁的四个必要条件及预防/避免/检测/解除方法。
- 题型:选择题为主。
-
数据库:
- 核心重点:SQL语句、索引、事务。
- SQL基本语法(
SELECT,JOIN,GROUP BY,HAVING等)。 - 索引的原理(B+树)、优缺点、何时使用。
- 事务的四大特性(ACID)。
- 数据库的三大范式(了解基本概念)。
- SQL基本语法(
- 题型:选择题和简答题,可能会有简单的SQL编写题。
岗位专项部分
这部分是决定你是否能进入面试的关键,与应聘岗位强相关。
-
后端开发岗:
- 编程语言:C++ 和 Java 是两大主流,笔试题会围绕其中一种或两种,需要熟悉其核心语法、STL/标准库、面向对象特性、内存管理(C++的智能指针、Java的JVM和GC)。
- 框架:了解主流框架(如Spring Boot, Spring Cloud)的基本原理和常用组件。
- 系统设计:可能会出现一些开放性问题,如“设计一个高并发的秒杀系统”、“如何设计一个短链接服务”,考察你的架构思维和知识广度。
-
客户端开发岗:
- 平台:主要分为 Android 和 iOS。
- Android:Java/Kotlin语言、四大组件、布局、多线程(Handler, AsyncTask)、性能优化、Jetpack组件。
- iOS:Swift/Objective-C语言、UIKit/SwiftUI、内存管理(ARC)、多线程(GCD)、性能优化。
- 跨平台:了解Flutter或React Native的基本原理是加分项。
-
算法工程师岗:
- 数学基础:线性代数、概率论与数理统计、微积分。
- 机器学习/深度学习:
- 经典机器学习算法:线性回归、逻辑回归、SVM、决策树、XGBoost/LightGBM等。
- 深度学习:神经网络、CNN、RNN、LSTM、Transformer等模型的基本原理和应用场景。
- 深度学习框架:熟悉PyTorch或TensorFlow。
- 题型:编程题难度通常高于后端/客户端,可能涉及模型实现、数据分析、特征工程等,也会有理论选择题。
-
测试开发岗:
- 测试理论:黑盒测试、白盒测试、灰盒测试、测试流程。
- 自动化测试:熟悉Selenium, Appium等自动化测试框架的原理。
- 编程能力:同样需要扎实的编程和数据结构基础,用于编写测试脚本和工具。
- 题型:会有一些测试场景设计题,以及编程题。
题型特点与趋势
- 基础知识扎实是王道:选择题占比不低,且非常注重细节,比如TCP的某个状态、操作系统的一个概念,都可能成为考点,死记硬背不行,必须理解。
- 算法题是硬通货:1-2道算法编程题是筛选候选人的主要手段,难度通常为中等,即 LeetCode Easy 到 Medium 的水平,题目可能不是最偏门的那种,但要求代码规范、逻辑清晰、考虑边界条件。
- 与业务结合:部分题目可能会结合猎豹移动的业务场景,如何优化下载速度”、“如何设计一个推荐系统”等,考察你将技术应用于实际问题的能力。
- 广度与深度并存:不仅要求你懂C++/Java,还可能问一下Go/Python;不仅要求你会用框架,还可能问问框架的底层原理,知识面广是加分项。
备考策略
基础知识巩固(笔试前1-2个月)
- 数据结构与算法:
- 书籍:《剑指Offer》、《程序员面试金典》、《算法导论》(选读)。
- 网站:LeetCode 是核心,至少刷完 Hot 100 和 Top Interview Questions,重点掌握数组、字符串、链表、二叉树、动态规划、回溯等题型。
- 计算机网络:
- 书籍:《图解HTTP》、《计算机网络:自顶向下方法》。
- 方法:画图!把TCP三次握手、四次挥手、数据封装过程都亲手画几遍,理解自然就深刻了。
- 操作系统:
- 书籍:《深入理解计算机系统》。
- 方法:理解概念,不要死记硬背,理解了为什么需要虚拟内存,就能记住分页和置换算法的作用。
- 数据库:
- 书籍:《SQL必知必会》。
- 方法:亲手在MySQL或PostgreSQL上多练习JOIN和复杂的查询。
岗位专项强化(笔试前2-4周)
- 后端:
- 语言:系统复习C++ STL(
vector,string,map,set等)和Java集合框架,多看优秀开源项目的代码。 - 框架:阅读Spring Boot官方文档,了解其自动配置原理。
- 语言:系统复习C++ STL(
- 客户端:
- Android:复习Jetpack组件,特别是ViewModel和LiveData,思考Activity的生命周期和屏幕旋转问题。
- iOS:复习GCD和RunLoop,思考内存管理的场景。
- 算法:
- 数学:复习线性代数(矩阵运算)和概率论(条件概率、贝叶斯)。
- 模型:复现几个经典模型(如线性回归、CNN),理解其推导过程。
模拟实战(笔试前1周)
- 找真题/模拟题:在牛客网等平台搜索“猎豹移动 笔试”,看往年的题目风格。
- 掐时训练:严格按照笔试时间进行模拟,锻炼时间管理能力。
- 环境熟悉:提前熟悉牛客网的编程环境,知道如何调试、如何提交代码。
面试经验参考
笔试通过后,通常会有1-2轮技术面试和1轮HR面试。
-
技术面试:
- 自我介绍:简洁明了,突出项目经验和技术亮点。
- 项目深挖:面试官会对你简历上的项目进行深入提问,你在这个项目中遇到的最大挑战是什么?”、“如果让你重新设计,你会怎么改?”。
- 手撕代码:现场在白板或在线IDE上写代码,通常是1-2道算法题或设计题,考察的是你的编码规范、沟通能力和解决问题的思路。
- 系统设计:对于高级岗位或后端岗位,可能会问一些系统设计题,考察你的架构能力。
- 反问环节:准备2-3个有深度的问题问面试官,团队的技术栈是怎样的?”、“新员工入职后会有什么样的培养计划?”。
-
HR面试:
- 主要考察你的职业规划、团队合作能力、稳定性以及薪资期望。
- 准备:准备好自己的职业规划,思考一下为什么选择猎豹移动,以及自己的优势。
猎豹移动的笔试是一场硬仗,它要求你基础扎实、编程能力强、知识面广,备考的核心在于系统性和持续性。
- 打好地基:数据结构、网络、操作系统、数据库是重中之重。
- 猛练算法:LeetCode是你的武器库,刷题不能停。
- 聚焦岗位:根据你应聘的岗位,进行专项强化。
- 调整心态:笔试是筛选,面试是交流,放平心态,展现出最好的自己。
祝你准备顺利,成功拿到Offer!
