开头
在大厂,写得一手好文档是一个非常吃香的技能。这可不只是一个锦上添花的东西,而是很多工程师晋升,打造自己话语权的武器。 我这两年在组内的深刻体会就是,大部分厉害的高级工程师(不包括那些纯混日子靠资历晋升的人),写文档的能力一点也不含糊,很能抓住上级和项目的G点。
可能有人会觉得,我技术牛逼就行了,为啥还要提高写文档的能力,有这功夫我还不如多看看源码分析?这是一些初级或者刚入门的工程师的普遍的困惑。这是因为大部分刚刚入行的朋友有一个很深的误区,就是他们以为做软件工程是一个和计算机打交道的工作,其实不然。软件工程不只是和代码打交道,更重要的是和人打交道,是一份社会性质很强的工作。在大部分公司里面,尤其是大厂,牵涉到的人,组,都是非常非常多的。在小厂,人与人之间交流意见和设计可以口口相传,心领神会,但是一旦人开始多了,就只能靠文档了。除非你可以厉害到一个人把所有代码撸完,不然还是最好老老实实的夯实自己写文档的能力。
如果你有写技术博客的习惯,那么恭喜你,相信你已经对如何抓住文档受众的技巧有所了解了。这对你在大厂生存有很大的帮助。如果没有也不要伤心,这篇文章就是为你精心设计的。
在这篇文章里,我会大致的把一份安卓的项目设计文档的骨架,和一些我工作中实际遇到的正反例都列出来,方便大家以后在工作中实践。
今天整理了电脑,发现了半个月前总结了一半的阿里面经
想起来了一个月前不愉快的阿里二面,今天分享给大家
一面(全都会)
1.点击图标,应用打开,点击home键,重新进入,Activity生命周期回调
2.service生命周期
3.fragment什么时候用
4.软引用和弱引用,什么时候用弱引用?
5.LruCache内部通过什么数据结构实现?最大存贮容量?
6.activity如何传递信息?
7.bundle能传什么类型的数据?
8.parcelable和serialazible的区别?
9.binder底层实现?复制几次?
10.Android handler和looper源码?
11.loop()方法阻塞,为什么不影响事件分发?
12.Android 事件分发?
13.看过哪些Android的书?
二面面试官上来问:看你Android是自学的,软件相关的课程也应该学了吧(楼主专业偏通信),我:学过一点,但学的不太全。
然后问了这些。。。
期间问道实习遇到的问题,我回答到一半,说信号不好,我换了个地方,回答完,说让我回答实习遇到的问题,我就又回答了一遍,回答完面试官说你简洁点说实习遇到的问题,我就又简洁的说了一遍,最后面试官说听不懂。。。我说要不我再说一遍,他说不用了。。。感觉面试官根本不是搞Android的。。。
二面(只记得这些了,问的不止这些)
1.七层模型,每一层是干什么的
2.http和https区别
http1.0 http1.0 http2.0的特点和改进
3.如何改进http,提高响应速度,减少请求时间(说了三种方法)
4.实习遇到的困难
5.操作系统中什么是堆栈(不会)
6.为什么内存要在堆栈中分配(不会)
7.查找算法有哪些(说了两个)
8.什么是时间复杂度
9.二分查找的时间复杂度是什么
最后
总而言之,Android开发行业变化太快,作为技术人员就要保持终生学习的态度,让学习力成为核心竞争力,所谓“活到老学到老”只有不断的学习,不断的提升自己,才能跟紧行业的步伐,才能不被时代所淘汰。
在这里我分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司19年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。需要的朋友可以私信我【资料】或者 点这里 免费领取
还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。 领取地址: Android学习PDF+架构视频+最新面试文档+源码笔记
BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)