你的秋招进展如何?
字节跳动 2024 校园招聘正在如火如荼地进行中,为了给技术岗的同学加油打气,技术范儿今日特别请来了算法、大数据、后端、音视频、前端、Android、iOS 七个方向的技术面试官,为大家考前划重点。
不仅有重点知识和复习资料,甚至还有面试真题。
另外,面试官们从多年面试经验中总结出的面试准备技巧你也可以参考哦~
编程能力要过关:
● 掌握常见的算法解决思路(分治、递归、双指针等)
● 复习数据结构
● 熟悉算法题
基础知识要牢靠:
● 准确回答机器学习领域最常见的基础理论:最优化、统计、随机梯度下降算法等
● 了解经典机器学习算法的原理:支持向量机、决策树、梯度提升、神经网络等
● 针对 NLP 方向的同学的基础知识:Transformer 结构、QKV 公式等
● 李航《统计学习方法》教材
● 吴恩达《机器学习》课程:
https://www.deeplearning.ai/courses/machine-learning-specialization/
● 不会直接说不会,面试官重点关注的是基本素质,一般会根据候选人储备的知识进行考察,不会因为候选人不了解某个具体的知识点而fail掉。
● 请把你的项目从头到尾讲清楚,尤其是你攻克项目难点的过程,哪怕这个项目失败了都没关系。
● 如果你想讲最新的技术,比如大模型的 SFT/RLHF、langchain 源码等,请讲讲你对它最深入的思考。
大数据基础知识:
● Hadoop、Spark、Flink 体系的基本概念
● 任务调优经验
● 给定一段 sql 代码考察引擎侧执行计划和优化思路
工程能力:
● 一道 SQL 问题,希望你能正确工整简洁化书写
● 一道算法问题,希望你能最优化 AC
《hadoop权威指南》
DDIA(Designing Data-Intensive Applications)
《数据仓库工具箱》
LeetCode 100+ 题目:
https://leetcode.cn/studyplan/top-100-liked/
● 请扎实学好基础知识,不要只背书本中的概念,重要的是展示出你对知识的理解。
● 面试问到工程算法时,请充分考虑边界鲁邦。
● 面试官提问后,你可以补充询问、了解上下文,展示出你的严谨性。
● 如果自主主导了一些创新类项目,如引擎侧语义转换工具、数据治理工具、自动化数据归因工具等,请你把这些项目的细节和内容讲给我听。
● 操作系统
● 多线程等
● 中间件原理/权衡选型/部署架构
● 对分布式系统的设计和理解
● 你常用的编程语言相关的基础知识
DDIA(Designing Data-Intensive Applications)
《操作系统导论》
● MIT 6.824:
https://mit-public-courses-cn-translatio.gitbook.io/mit6-824/
● System Design Interview 课程:
https://www.youtube.com/@SystemDesignInterview
● 多对比类似功能的设计异同点,并且知道为什么以及如何根据业务场景权衡。
● 学习中间件的时候,最好能手写一个 MVP 版本,例如 RPC,MQ 等。
● 针对一个很小的问题,你可以讲讲自己的理解,以及行业内有哪些解法,不同的业务场景应该怎么权衡。
● 如果你有过较长时间的实习经历,展开讲讲你都做了什么吧。
视频编解码相关知识:
● 视频编码的原理
● 264/265 的差异和进化体现在哪里
● 如何衡量编码质量
视频处理框架的知识与实践经验:
● FFmpeg
● GStreamer
GPU 相关的原理与知识:
● GPU 的基本单元结构是怎样的
● GPU 为什么适合并行处理
● 在视频处理有哪些方面可以用 GPU 加速
图形图像方面的知识经验:
● OpenCV
● OpenGL
流媒体相关知识经验:
● RTMP
● HLS
《视频编码全角度详解:AVS China、H.264/MPEG-4 PART10、HEVC、VP6、DIRAC、VC-1 [Video Coding Standard]》
《Mastering OpenCV》
● FFmpeg 官方资料:
https://github.com/FFmpeg/FFmpeg
https://ffmpeg.org/ffmpeg.html
● 字节跳动开源的多媒体处理项目 BabitMF:
https://github.com/BabitMF/bmf
● 尽量放松,能够到面试环节,说明前面的简历、测试环节表现不错。
● 对于面试问题,回答尽量简洁而有针对性,避免滔滔不绝过度发散,当然也不要冷场。
● 可以适当提问,提问也是面试互动的重要部分,如果你能提一些有建设性、有思考的问题,面试官可能会对你另眼相看。
● 千万不要不懂装懂,会被面试官发现的哦。
网络相关:
● HTTP缓存
● 三次握手
● 四次挥手
数据结构相关:
● 数组
● 哈希
● 二叉树的遍历方式
前端基础知识:
● CSS 盒模型、选择器优先级
● ES6语法
● 原型链
编程题:
● 前端场景题目
● 基础算法题,如快排、深度优先搜索、动态规划、滑动窗口
《JavaScript
高级程序设计》
《CSS权威指南》
《剑指Offer》
● 请坦诚清晰,我们并不要求校招候选人必须掌握前端知识,如果你不懂前端、但计算机基础知识学得很好也一样很棒。
● 介绍你的项目经验时,可以从设计思路、实现方式到遇到问题如何解决三个角度来介绍。
● 讲你的项目经验时,请说出你的思考和总结。
计算机基础知识:
● 数据结构(树、图的查找与插入,能熟练写出 bfs 与 dfs)
● 多线程(多线程的常见问题与解决方式)
● 算法题
Android 基础知识:
● 触摸事件传递机制
● Android 消息机制
● 自定义 View
● 常用组件的原理(RecyclerView 等)
业务理解(仅限有实习经历的同学):
● 业务场景理解
● 数据分析能力
● 《Android插件化开发指南》
虽然这本书出版较早,Android 版本不同,但是可以根据他的思路在新版 Android 代码上尝试。
● GitHub 上 open-android 的 Android 开源资料集:
https://github.com/open-android/Android
这个项目除了有很多视频课程之外,还有不少项目案例、以及面试题,都是视频形式,非常齐全。
● 加强自身的基础知识深度,对于新的知识勇于尝试、深入钻研。
● 锻炼表达能力与沟通能力,如果面试中讨论问题时,你能够在面试官的引导下进一步思考并得出结论,那很可能得到面试官的赏识。
● 实事求是,认识到自己的长处与不足。
● 请把你做得最棒的项目放在简历上,展示出项目中你自己的想法,以及把它实现的过程。
因为绝大部分校招同学没有专门学过 iOS 开发,因此,我们更希望看到同学们扎实的技术基础:
● 计算机网络技术
● 操作系统
● 软件架构,如 C/S 与 B/S 架构
● 熟悉偏 native 的编程语言,如C/C++
iOS 相关(加分项):
● 了解 GUI 框架,知道 GUI 运作原理与优化
● 了解 Web 前端/ iOS 开发
《操作系统概念》
《深入理解
计算机系统》
《计算机网络:
自顶向下方法》
《C++ Primer》
● 无论是否科班出身,希望你对软件/互联网/操作系统基础有踏实的理解,建立在理解的基础上回答面试问题。
● 希望你在有一定框架/技能积累的同时,展现出自己在工程实践中举一反三的能力。看教程只是学习的起点,希望看到你在教程与书本以外的代码实践积累。
● 如果遇到你一时想不明白的问题,希望你能根据自己的知识经验积累、理解分析能力,讲出对这个问题的思考。不要紧张,主动思考、多想敢说就是最好的。
● 请记得把你的能力落到代码上,在代码/算法题环节,除了描述自己的思路,也请将你的思路转化为你熟悉的编程语言。
这些面试真题,你都答得上来吗?
现在努力准备还来得及。字节跳动 2024 校园招聘正在进行中,选好你心仪的方向,来字节跳动一起激发创造吧~