小米Android面试(Rust方向)

这次小米的面试准备很不充分,面试包括算法和八股文。作为一个工作的9年的程序员,以为说说自己做的项目就可以了。说实话自己对负责的业务模块还是很熟悉的,业务涉及技术知识也很清楚,但是如果别人不问,就会抓瞎,所以还是需要补充点知识广度。提升竞争力。

一,首先自我介绍一下,我工作经历都写着简历上的,不知道意图是什么,随便说了一下工作经历,因为他们招聘上说了要求懂一点framework,所以我说了我最开始做过框架,虽然那是很遥远的事情了。

一,算法
首先来了一道中等难度的算法,leetcode的第15题,三数之和,这道题比较简单。但是很遗憾没有做出来,主要不知道可以直接使用排序api,而且几年没有刷过算法题了,死得不冤。于是我想到一个问题:“程序员是否应该偶尔刷刷算法”,
如果去大厂肯定是要刷的,大部分公司特别是非互联网公司基本不需要算法,但是我决定还是偶尔刷刷,尽量每天刷一道题,并非为了去大厂,更多是为了提升自身逻辑能力,三十多岁,去大厂的机会很渺茫了。

二,开始面经(不到40分钟)
1. 讲讲binder线程池
2. 讲讲Android view的绘制流程,不是measure,layout,draw那套,需要从框架层讲起
3. 四大组件都会触发ANR吗?(陷阱题)
4. 内存泄露场景,我随便举了几个例子,对面不是很满意
5. 如何分析anr问题,虽然工作中经常排除ANR,但是不好描述,能用但是不熟悉
6. 使用过rust吗?或者用rust写过代码吗?

总结:
面试之前一定要了解招聘方的要求,
1. 是否需要算法,算法难道范围,
2. 面八股文技术还是项目经验,对于工作5~10年的程序员,项目经验应该没什么问题,如果是面试八股文,那需要准备了

面试这个还跟运气有关,技术这个东西,你不能保证自己所有的认识都是正确的,问的问题也不一定都知道,都很深入。如果跟面试官技术栈相似,成功的概率很大。当然随机应变能力也很重要。
全部评论
果然安卓社招是地狱
点赞 回复 分享
发布于 05-17 22:16 甘肃
我已经知道你有多难了
点赞 回复 分享
发布于 04-08 15:07 北京

相关推荐

05-29 16:32
门头沟学院 C++
2. 是对视频进行识别,还是分割成图片?素材来源是什么?  3. 是否属于无监督或自监督学习?是否需要标注数据?  4. 如何验证检测精度的提升?反馈机制是什么?  5. 解释无监督学习、自监督学习、强化学习的本质区别  6. 举例说明无监督学习的应用场景  7. 强化学习的例子有哪些?  8. 大语言模型的训练方式是什么?是否需要监督?  9. 大语言模型突然火爆的驱动因素是什么?  10. C++与C语言的核心区别是什么?  11. 面向对象三大特性(封装/继承/多态)的具体含义  12. C++多继承可能引发什么问题?如何解决菱形继承问题?  13. 抽象类与接口的区别是什么?  14. C++多线程的实现方式及如何保证线程安全  15. 单例模式的实现方式(如懒汉式如何保证线程安全)  16. 死锁的触发条件及场景  17. C++内存分区(堆/栈/全局区等)及区别  18. STL中vector和map的底层实现原理  19. 哈希冲突的解决方法  20. 设计模式的分类及创建型模式的具体类型  21. 工厂模式与抽象工厂模式的区别  22. 进程和线程的核心区别  23. 线程的生命周期及是否可以多次start  24. 网络七层/五层协议的分层结构  25. TCP协议的特点及三次握手/四次挥手的原因  26. UDP协议的特点及适用场景  27. HTTP协议版本差异(如1.0/2.0)  28. HTTPS握手过程与HTTP的区别  29. 浏览器输入URL到渲染的完整流程  30. Git分支管理协作流程(如合并冲突处理)  31. 算法题:单链表删除倒数第N个节点32.生产者消费者模型
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务