小米工程师训练营事后总结

碎碎念

终于发 offer 喽!六月整整一个月,我几乎每天都是早起晚睡 —— 一边要备战期末考试,一边得投入小米工程师训练营的学习,身体和精神都承受着巨大压力,无瑕更新,于是销声匿迹了这么久。

在六月,我通过筛选参与了小米在南邮开设的第三批工程师训练营,经过 15 天系统学习、实战和答辩后,也是成为了池子中的一条鱼,由于工程师训练营发 offer 的时间不确定,我也不敢一直赌,于是另一边也在准备其它。终于到了七月中旬开奖的环节,有幸被小米选上。这两天有时间了,遂将小米工程师训练的经验分享出来,希望对大家有所帮助。


1. 时间线

  • 5 月 22 日:训练营宣讲会,同步启动报名
  • 5 月 30 日:训练营报名截至,同步进入简历筛选
  • 6 月 4 日:通过筛选入营
  • 6 月 6 日:小组破冰会,同步申请小组长
  • 6 月 9 日 ~ 6 月 25 日:理论课程 + 实战训练
  • 6 月 28 日:答辩
  • 7 月 4 日:结营仪式,同步公布优秀营员和卓越营员
  • 7 月 18 日:电话确认意向

2. 训练营概况

2.1 个人背景

首先我是一个很菜的软件工程本科生,不过在学校担任了一些职务,在社交方面我还是有点自信的。个人技术栈方面就是 Java 后端,所以技术上其实并没有什么很突出的表现,经过我的实测,训练营对本身的简历也没有设置过高门槛,所以大家放心就好啦。

但是如果你对 Java/Kotlin 或 C++ 没有基础,上完这十五天的课程是极其痛苦且作业和项目是难以完成的,很可能最后因为作业或者项目没有完成而失去 Offer 并浪费你宝贵的时间,所以谨慎参与。

2.2 在线测评

小米训练营发放的是秋招正式 offer,所以和正常校招一样,测评的流程是必不可少的。其实各大厂商的测评都差不多,与其说是测评,倒不如说是 不要点不要点 ,还有比如一些常用的理解题,会给你一大段文字,快速理解之后让你做题(类似于英语考试的阅读理解,如下图),或者图像辨析题,给四个非常抽象的图像,让你找出其中的规律,再就是一些性格题目,不能答的太快,后台会记录的,这些题可能有正确答案,也有可能没有正确答案,不过也是有淘汰率的哦!虽然小米的 hr 在课堂上说这个对 offer 发放没有决定性的影响,只作为一种参考,但还是不要大意!大意失荆州!

1752820459313.png

性格测试务必需要注意的几个点:

  • 前后需要一致,因为会出现同样的题,如果你前后不一致次数太多,可能后台会有类似的记录导致挂在这里。
  • 向着积极乐观的方向选择,不要整一些消极情绪在里面,面对困难,要敢于迎接挑战,而不是躲藏之类的。
  • 不想当领导的士兵不是好士兵,但是这里需要反着来,不要刚进来就想着升官发财。

我能想到的只有这么多啦,具体就看你们自己的实际情况灵活选择咯!

2.3 方向与分组

在南邮开设的第三批小米工程师训练营分为了 C++ 和 Android 两个方向。每个方向都会配备一个班主任和若干导师,班主任和导师都是小米资深员工,技术实力很强(像今年有小米电视负责人,小米相机、图库等系统应用负责人等),可以找他们聊天或者问课程里没有听懂的问题。

下面说说这两个方向的区别:

  • C++:重点后台逻辑实现,主要培训内容有 多线程交叉编译操作系统等
  • Android:囊括一个 APP 从编写到打包上线的全部知识。

分组的话,一组是 18 个人,最后的 offer 按小红书、贴吧、牛客等的多方说法应该是组内竞争。每组配备一个导师,导师负责平时课程的答疑和作业批改,最后答辩的面试官也是你们组内的导师。

2.4 小助手与扑克牌

每个组可以组内自己竞选一个小组长,小组长可以获得最后的评分加分,其职责是在整个培训过程中协调导师各项工作开展。但是据我观察,小组长唯一的作用是登记每天课程中大家获得的扑克牌数量。

扑克牌是课堂中回答问题的奖励,每天获得的扑克牌数量被登记下来,用于你的结营评分加分。另外每天获得扑克牌数量最多的两个人可以获得奖励,有米家体重秤,SU7 铝合金 1:18车模以及小米背包等。

1752821657950.jpeg

2.5 课程与作业

我是 Android 方向的。根据我的经历,如果没有 Java 或 Android 基础,要完整跟上整个学习过程会非常困难。另外课程体系的设置把最难的部分放在了第一周,Android 学习群一开始有一百四十多人,最后就只剩九十多个了,绝大部分人都是在第一周退出的。另外我们今年训练营时间偏晚,训练周期与期末考试重合,几乎天天睡不了五个小时,如果你想拿到 Offer,一定要坚持坚持再坚持!

理论课程是 12 天(包含一天大师课),课程时间是每天早上 8:15 到下午的 5:10 分,每节课 1 小时,休息 15 分钟,中午有一个半小时吃饭时间。

1752823283115.jpeg

作业是在每天课程结束后布置,视作业难度截止时间在 10 点到 11 点钟,代码全部提交至 GitLab。基本上来说前十天作业都是要做到截止时间才能做完的,其中有几天的作业能不能做完都不一定,量和难度不小。

2.6 实践项目与答辩

理论课程结束后会有三天时间完成一个实战项目,一天给你一个新需求,你要根据 Figma 设计稿和接口文档、需求文档等搓出一个类网易云的安卓 APP,难度不小。我认为实战项目有两个注意点:

  • 如果你有意争夺优营卓营,一定要在实现所有需求的基础上做一些扩展功能。据我观察,发过经验帖的优营卓营大多都是在完美实现需求的基础上做了扩展。
  • 项目一定要完整,完善,一定要能讲出来你所有的实现过程,不然答辩过不了的。我有朋友平时表现很好,扑克牌也拿的非常多,最后就是答辩支支吾吾被淘汰了。

课程结束三天后会有一个答辩,主要是讲你做的大项目和八股,当然不同导师之间问的一些问题会有差异。我不建议用 AI 大面积完成你的实战项目,因为这样答辩的时候你很难逻辑清楚的讲完整你项目的实现过程。


3. 训练营课程准备

3.1 IDE

两组都会使用到 Android Studio,提前下好在本机不要下在虚拟机。另外 Android Studio 的 Gradle 很反人类,建议提前配置好镜像源,有魔法的更推荐配置好 AS 的魔法代理,会减少很多不必要的麻烦。

3.2 版本管理

Git必装,最好会使用GitHub,小米会使用GitLab来管理作业。操作是一样的。至少熟练上传命令。如果你都熟练,那么第一天早上内容你已经掌握。

git init
git add .
git commit -m ""
git push

3.3 小但必要

  • markdown 语法必学,写得好的 README 非常加分和开发文档,我认为这是我脱颖而出的原因之一。
  • 记得做的内容截图,打包好每天的 Apk,增加你的可信度,老师不一定有时间运行所有人的代码,所以还一定要写好 README
  • 提前了解 Java 的一些基本语法、多线程等(如果你不会)。

3.4 思想准备

我认为既然有这个机会,参加了就尽量把它学完,不管最后有没有 offer,就当这是一个项目需要完成。


4. 训练营课程详情

4.1 Day 01

Android 历史、工具与启动

给导师最容易留下好印象的就是第一天,很多人会配一天的 Git 和 AS,当你熟练使用 Git 和 AS,并且完美提交仓库,老师可能会根据你的目录结构风格让大家都参考你的。

特别一提的是 README、截图和 Apk,一定要让班主任很容易就看到你的思路和结果,前面就说到,班主任、导师都是员工,他们也是打工仔,每天上课工作都比较累,可能都不会细看你的代码,所以,写好 README ,能让你在第一天就脱颖而出。当然后面也要天天写 README。

第一天总体非常轻松。

4.2 Day 02

Activity 和 Fragment 详解,请非常认真的学习这一块的内容

我认为整个训练营中 最重要 的课,老师可能讲的会比较快和浅。如有不懂,问老师或速查文档、GPT。要在这节课训练 Activity 和 Fragment 的代码实现,这是后面一切课程的基础。

4.3 Day 03

Android UI 及原理、布局详解与优化

这一块你可以理解为 Android 前端,介绍一些常见的原生布局、控件等,总体十分轻松。

4.4 Day 04

四大组件,Android 重中之重

在整个训练营的课程体系里,四大组件被安排在了同一天,但恰恰是这样核心的内容,老师在讲解时可能会因为要覆盖的知识点太多,节奏会非常快,也没有很多实操时间,很多细节也只能点到为止,讲得相对浅显。​

不管是服务(Service)、内容提供者(ContentProvider),还是广播接收器(BroadcastReceiver),其功能实现往往都需要依托 Activity 和 Fragment 来构建交互界面或进行组件间的通信。所以之前的课一定要好好学习不能一知半解。

4.5 Day 05

权限控制、存储实践、网络通信实践与原理

第五天的课教的所有东西可以说最后的项目一定会全部用到。你会学习如何在 AndroidManifest 中配置应用权限,如何用 OkHttp 以及 Retrofit 进行网络通信,如何用 MKKV 和数据库进行存储。在最后项目中,无论是从服务器获取数据、提交用户信息,还是实现实时数据更新,都离不开这些工具的灵活运用。如果你没有 Java 项目网络编程和多线程的经验,这会是比较痛苦的一天。

4.6 Day 06/07/08

常用组件库的介绍与原理,动画,自定义 UI 和 View 的原理

依旧 Android 前端。这一块你将接触到 RecycleView,Glide,动画,自定义 View 等大项目一定会用到的知识,同时这一块作业也会很难,语法也比较抽象,一定要弄明白,能上手敲出来。

4.7 Day 09/10

异常处理、代码规范、质量提升、内存泄漏优化方案和 ANR 解决方案。

主要讲解阿里巴巴代码规范,小米代码规范,怎么提升代码安全性以及一些工具的使用,总体而言十分轻松。

4.8 Day 11

玩转 Kotlin

讲解 Kotlin 语法,课堂上会利用 Kotlin 重构前几天的项目,如果你会 Kotlin,其实前几天的作业是事半功倍的,这个语言很“现代”,用过就知道。


总结

总的来说,无论结果如何,首先整个训练营中小米方给人的感觉都非常和蔼、耐心、专业。大胆参与!微笑面对,相信大家都可以的!

同时也不要一棵树上一直等着,毕竟这个战线拉的确实有点长,如果情况不理想,可能会导致落下考研或秋招学习的情况!

最后祝大家,都找到理想的 offer!

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇