网站首页 > 技术文章 正文
离职的开始:新的征程
2025 年 1 月,我正式递交了离职申请,结束了在上一家外包公司的日子。这些年一直在外包公司辗转,做的都是 Android 开发,虽然项目不少,但始终感觉没什么成长。趁着年后跳槽季,我决定拼一把,目标是进大厂,拿到一份更稳定、更有技术深度的工作。
离职当天,领导找我谈话,问我要不要考虑内部转岗,甚至暗示可以涨点工资。我笑着拒绝了:“谢谢领导,不过我想试试自己的可能性,冲一下大厂。”领导叹了口气,说:“大厂不容易进,你还是要考虑清楚。”
我心想,大不了再回外包呗,先冲再说!
第一站:字节跳动——手握两面,惜败 HR
字节是我一直很向往的公司,算法氛围浓厚,技术团队优秀。投递后没多久,HR 就联系了我,安排了一面。
一面(技术面)
面试官是个 30 来岁的 Android 资深开发,开场先问了我最近做过的项目,重点围绕 性能优化、Jetpack 组件、Binder 机制 展开。他问了一个让我印象深刻的问题:
“如果一个 Activity 里面有多个 Fragment,每个 Fragment 里都有网络请求,如何优化请求管理,避免重复请求?”
我回答:“可以用 ViewModel + LiveData 共享数据,并结合 Repository 层缓存,避免 Fragment 之间重复发起相同请求。”
面试官点头,继续追问:“如果用户在短时间内频繁切换 Fragment,你如何保证请求不会因销毁而被取消?”
我回答:“可以使用 WorkManager 或者 Coroutines 的作用域来管理请求生命周期。”
整体感觉还不错,面试官说:“你的基础可以,就是对 Android 最新技术(如 Compose)了解得不够深入。”
二面(系统设计 + 算法)
这一面更偏向架构和算法,面试官让我设计一个 大规模 Android App 更新管理系统,要求支持断点续传、多版本回滚等。我说了一套 OkHttp + WorkManager + Room 数据库 的方案,并结合 Flow 进行数据流转。
算法题是一道 LRU 缓存,幸好 LeetCode 刷过,顺利做出来了。
HR 面:意外的终结
前两面感觉还行,但 HR 这关,我感觉她对我的外包背景有点顾虑。她问我:“你有大厂背景吗?为什么之前都在外包?”
我解释:“虽然是外包,但一直在核心项目里,技术栈跟大厂并无太大差异。”
最后等了一周,HR 邮件回复:“很遗憾,本次未能通过。”
我心想,估计是外包背景+经验不够突出,字节的门没能敲开。
第二站:百度——走到最后,输给了 HC
百度的 Android 岗位也挺多,投了后很快安排面试。
一面(技术面)
和字节类似,面试官主要考察 Jetpack、线程安全、RecyclerView 优化。
一道问题让我印象深刻:“RecyclerView 里有大量图片列表,你会怎么优化滑动性能?”
我回答了三点:
- 使用 DiffUtil 进行数据对比,避免不必要的刷新;
- 开启 Prefetch,提前加载下一屏数据;
- 优化 Glide/Fresco 缓存,减少 GC 频率。
面试官挺满意,二面继续。
二面(系统设计 + NDK)
百度 Android 这边要求了解点 Native 开发,面试官让我讲解 JNI 的内存管理,我回答:“主要通过 DeleteLocalRef 手动释放,或者使用 WeakGlobalRef 进行 GC 处理。”
算法题是一道 单调栈 相关的题目,想了 10 分钟才写出来,面试官点头。
HR 面:以为稳了,却被裁员影响
HR 这关挺顺利,聊薪资、聊职业规划,甚至谈到了 onboarding 的流程。我以为稳了,结果三天后,HR 电话过来说:“HC 缩减,今年招聘计划变动,先不推进了。”
我彻底无语,时运不济,百度的大门也没敲开。
第三站:美团——拿到 offer,却在博弈中错失
美团的面试比前两家更偏业务,Android 方向涉及 多进程架构、推送系统、卡顿监控。
一面:考了 Handler 机制、AIDL,以及一道 二叉树 的算法题,过了。
二面:聊了业务架构,如何设计 多端消息同步,面试官认可我的方案,过了。
三面:和主管聊业务挑战,感觉很好。
HR 面:给了 offer,但薪资不如预期。
当时我还等着其他大厂,想着能不能再谈谈,结果拖了一周,美团那边说 HC 被用掉了,offer 失效。
写在最后
我还是进了外包公司。
经历了一个月的面试战,我发现大厂对外包出身确实有些顾虑,要么是背景问题,要么是 HC 不稳。最终,通过猎头介绍,我去了 OPPO 的外包团队,做 手机系统开发,主要涉及 Framework 层、系统优化。
虽然还是外包,但薪资涨了一些,技术栈比之前也更深入了。虽然冲击大厂没成功,但也收获了不少。接下来,我会继续刷题、研究 Android 新技术,争取下一次能真正迈进大厂的大门。
猜你喜欢
- 2025-03-13 浅谈命令查询职责分离(CQRS)模式
- 2025-03-13 详细介绍一下Spring Boot3中如何整合JPA技术?
- 2025-03-13 SpringBoot——100种常用注解(分类版)
- 2025-03-13 京东大佬问我,每天新增100w订单数据的分库分表方案
- 2025-03-13 SpringBoot整合Spring Data JPA
- 2025-03-13 (新手勿进,全是代码)@ComponentScan、@ComponentScans详解
- 2025-03-13 清晰架构:融合 DDD、洋葱架构、整洁架构、CQRS (译)
- 2025-03-13 [Java 速成] @Service,@Repository 和 @Component 的区别 (day 8)
- 2025-03-13 一篇深入理解分层架构的文章
- 2025-03-13 Spring Data JPA——多表设计、一对多、多对多、多表查询
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)