饿了么Android岗一面
- 1:双亲委托机制?
- 2:插件化原理?
- 3:垃圾回收机制及其优缺点?
- 4:PathClassLoader和DexClassLoader区别?
- 5:说下Binder?
- 6:Android旋转屏幕后Activity生命周期,Bundle是存储在哪儿的?
- 7:事件分发机制?
- 8:Handler实现?
- 9:Java内存?
- 10:OkHttp设计模式?
- 11:算法。
- 12:Http和Https的区别
- 13:HashMap的具体实施原理,HashMap和Hashset的区别
- 14:Java的垃圾回收机制
- 15:JVM的原理及线上调优
- 16:string,stringbulider,stringbuffer的区别
- 17:Java的设计模式
- 18:在白纸上手写二分法排序算法,这道题我在lintcode上面做过原题
- 19:有哪些可以保持进程同步的方法
- 20:如何避免死锁
- 21:常见的数据结构有哪些
- 22:leetcode 原题:查找单链表中倒数第K个节点的算法,面试官要求手写
百度Android岗一面
- 1:算法:寻找出现超过一半的数字?
- 2:HashMap原理?
- 3:热更新原理?
- 4:AstncTask+HttpClient 与 AsyncHttpClient有什么区别?
- 5:Https握手过程?
- 6:RecycleView原理?
- 7:RecycleView的使用?
- 8:Hybrid通信原理是什么,有做研究吗?
- 9:ListView图片加载错乱的原理和解决方案?
- 10:对称加密与非对称加密?
- 11:TCP、UDP差别?
- 12:TCP保证可靠的手段?
初级、中级 Android 工程师可能因离职而失业吗?
针对朋友找工作难的问题,我特意咨询了我在腾讯负责面试的朋友,为何Android开发普遍感觉找工作难。最后我们得出的结论基本一致:供需极度的不平衡。
这段时间他都在帮部门招人,在拉钩上也挂了JD,一个多月的时间收到的简历估计有几百份,他发起了面试的不超过5个,最后硬着头皮递上去1个还被刷了。
可问题就在这里,据他反馈大公司都在招Android开发,很多部门还非常着急,但就是招不到合适的人。别跟他说现在做Android的人很多,质量是关键,数量一点意义都没有。每年池子里的人就那么多,一份好的简历出来不止公司之间,部门之间甚至是部门内都在抢,但这批人之外,绝大部分人的简历能占用的时间不会超过5秒。
以前我们沟通时他就提到过这个问题,在现在这个阶段,公司之间的技术鸿沟已经非常明显,开发者身在其中,也因为自身学习能力,环境,项目等等的差别,技术上的差距越拉越大,造成了工作几年之后的两极分化,并且这种差距的拉开不是靠自己的努力就能弥补的。
我这个Android开发八年的朋友,离职后缺乏大型项目经验,至今未找到合适的工作!属于一个典型温水煮青蛙的案例!
Android学习路线指南
那面对这种情况,作为开发者,我们能做的是什么?最基本的,脱离舒适区,不停磨练自己的技术。
工作前三年是职业生涯中成长最快的几年,在这段时间里你会充满激情,做事专注,也容易养成良好的习惯。在大公司有些同学在前三年中就快速成为某一个领域的技术专家,有些同学也可能止步不前。接下来和大家一起探讨下如何在三年内快速成长为一名技术专家。
目录
学习方法
- 1:掌握良好的学习心态
- 2:掌握系统化的学习方法
- 3:知识如何内化成能力
- 4:广度和深度的选择
1.掌握良好的学习心态
空杯心态
首先要有空杯的学习心态,而不是傲娇自满,故步自封,空杯子才可以装下更多的东西。首先要学会取百家之长,带着欣赏的眼光看团队的同事或学校的同学,欣赏每位同事或同学的优点,然后吸取他们的优点,每个同事都有其擅长的能力,比如有的同事技术能力强,那么可以观察下他如何学习的(或者找他请教学习方法),有的同学擅长解决线上问题,那么观察他是如何解决线上问题的,解决思路是什么?如果他解决不了时,他是如何寻求帮助。有的同学擅长使用IDE或MAC的快捷键,那么可以向他学习提高工作效率。有的同学能快速理解业务知识,观察他是如何做到的,自己如何达到他的程度。沟通能力,解决问题能力以及规划能力都可以向同事学习。
坚持学习
有的同学可能工作了五年,但是学习的时间可能一年都不到。学技术不能急于求成,只要学习方法正确,量变一定会引起质变。
2.掌握系统化的学习方法
如果学习到的知识不成体系,那么遇到问题时就会非常难解决。有些同学会出现这些情况,比如编码时遇到问题百度搜索,如果百度上找不到答案,这个问题就解决不了。再比如,在开发中要用到某个技术点,就学习下API,程序调通后就不再深入研究,浅尝辄止,如果程序遇到其他问题也不知道如何解决。
以上情况我认为叫点状学习。遇到一个问题,解决一个问题,需要一项技术,学习一项技术。那么如何由点到面,由面到体,形成系统化学习呢。
首先要确定学习的知识领域,需要达成的学习目标,针对目标制定学习计划,就像你要写一本书一样,先把目录写出来,然后根据目录上的知识点逐步去学习,最后把这些知识点关联起来,形成一个系统化的知识体系。学习的时候,可以制定一个计划,以周为单位,比如第一周学什么,第二周学什么。
比如我们Android开发,学习进阶路线是:
Android开发进阶学习图谱
3.知识如何内化成能力
成长必须经历一个步骤,就是把知识内化成能力。知识是用脑记住的,能力是用手练习出来的。在工作的几年里,我们可能看过很多书,听过很多技术讲座和视频,但是通过听和看只是让你能记住这些知识,这些知识还不能转换成你的能力。
听和看只是第一步,更重要的是实践,通过刻意练习把听到和看到的知识内化成你的能力。
刻意练习,就是有目的的练习,先规划好,再去练习。
4.广度和深度的选择
技术人员的学习路径有两个维度,深度和广度。很多程序员都有这个疑问,是先深后广,还是先广后深呢?
通过这么多年的学习和思考,我的建议先深后广,因为当技术学到一定深度后,就会有触类旁通的能力,自己掌握的广度也自然有了深度。但是在实际学习过程中,深度和广度相互穿插着学习,比如学习并发编程时,首先学习JDK源码,然后学进去之后,开始看JVM源码,最后看CPU架构,在技术点逐渐深度研究的过程中,广度也得到了完善。
所以无论哪种学习方式,学习态度才是最重要的,在广度学习的时候有深入研究的态度就能达到一定的深度,在深度学习的时候,主动学习相关的技术点,广度也得到拓宽。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
最后
今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。
最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司19年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
【Android核心高级技术PDF文档,BAT大厂面试真题解析】
【算法合集】
【延伸Android必备知识点】
【Android部分高级架构视频学习资源】
法合集】**
[外链图片转存中…(img-aAD0jRRS-1710147587360)]
【延伸Android必备知识点】
[外链图片转存中…(img-Yg5BArTV-1710147587360)]
【Android部分高级架构视频学习资源】
**Android精讲视频领取学习后更加是如虎添翼!**进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!