写点什么

在线等!阿里、百度一面就惨遭吊打,kotlin 语言书籍

用户头像
Android架构
关注
发布于: 刚刚

1:双亲委托机制?


2:插件化原理?


3:垃圾回收机制及其优缺点?


4:PathClassLoader 和 DexClassLoader 区别?


5:说下 Binder?


6:Android 旋转屏幕后 Activity 生命周期,Bundle 是存储在哪儿的?


7:事件分发机制?


8:Handler 实现?


9:Java 内存?


10:OkHttp 设计模式?


11:算法。


Http 和 Https 的区别


HashMap 的具体实施原理,HashMap 和 Hashset 的区别


Java 的垃圾回收机制


JVM 的原理及线上调优


string,stringbulider,stringbuffer 的区别


Java 的设计模式


在白纸上手写二分法排序算法,这道题我在 lintcode 上面做过原题


有哪些可以保持进程同步的方法


如何避免死锁


常见的数据结构有哪些


leetcode 原题:查找单链表中倒数第 K 个节点的算法,面试官要求手写

百度 Android 岗一面

1:算法:寻找出现超过一半的数字?


2:HashMap 原理?


3:热更新原理?


4:Astnc


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


Task+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 开发,学习进阶路线是:


3.知识如何内化成能力

成长必须经历一个步骤,就是把知识内化成能力。知识是用脑记住的,能力是用手练习出来的。在工作的几年里,我们可能看过很多书,听过很多技术讲座和视频,但是通过听和看只是让你能记住这些知识,这些知识还不能转换成你的能力。


听和看只是第一步,更重要的是实践,通过刻意练习把听到和看到的知识内化成你的能力。


刻意练习,就是有目的的练习,先规划好,再去练习。

4.广度和深度的选择

技术人员的学习路径有两个维度,深度和广度。很多程序员都有这个疑问,是先深后广,还是先广后深呢?


通过这么多年的学习和思考,我的建议先深后广,因为当技术学到一定深度后,就会有触类旁通的能力,自己掌握的广度也自然有了深度。但是在实际学习过程中,深度和广度相互穿插着学习,比如学习并发编程时,首先学习 JDK 源码,然后学进去之后,开始看 JVM 源码,最后看 CPU 架构,在技术点逐渐深度研究的过程中,广度也得到了完善。


所以无论哪种学习方式,学习态度才是最重要的,在广度学习的时候有深入研究的态度就能达到一定的深度,在深度学习的时候,主动学习相关的技术点,广度也得到拓宽。


职业规划




写给看到最后同学的话:


(1)一定要紧跟技术前进的脚步,尤其是大数据相关的技术,在技术更迭的时候一定要学习熟悉新技术,看源码,哪怕自己在工作中用不到也一定要学。因为这是你下一份工作的敲门砖。


我作为一个老兵,在上一家公司工作 4 年,我没有逼迫自己学习新技术。


结果现在面试碰壁,其实大部分原因就是人家用的都是主流技术,你不会你就被淘汰。


(2)不要给自己设置舒适区,这个就是说,一个公司待久了不要懒惰,不能荒废自己,始终要保持清醒的头脑和进取心,不断学习,不断完善自己的技术,架构设计能力,项目管理能力,交付能力等。


一定要及时从项目中总结经验和不足,最好落实到日记本中,最后通过不断思考,形成自己的做事方法论。


(3)对自己的职业生涯要有一个规划,以后要做哪一块一定要有自己的想法,确定了就要从这个方向完善自己,多学多练。


目前大数据这一块,有数据中台架构的公司不是很多,除了算法岗外,大多数人在团队中都是 1 专多能的角色,今天干干 ETL,明天搞数仓,后天又给 BI 出数据,可能又搞调度系统、报表系统、标签系统、反作弊平台等平台。


没有人会专一做某一块,但是自己一定要想好哪一块是自己以后要走的方向,那么这一个方向确定了就要深入的学习这一块的知识,多看源码,多做练习,如果接触到具体项目,要在项目中沉淀自己,最后形成自己的知识体系。


(4)做事情要有担当,不要根据 OKR 给自己设置界限,有能力有空闲多做一定要多做,这也是别人认可你的最佳途径之一。互联网圈子很小,大家认可你,以后去大厂,换个好工作,也许就更容易。


我们写代码,真的不要单纯的为了生计,单纯的觉得这是一个青春饭,我们可以把它当做一个一辈子的事业,30 岁以后你转型产品,转型架构师,你都是要有 code 的积淀的,不是说能转就能转的。


一个一生的事业,我想是值得你付出时间去学习的,鸡汤就这么多了。

技能储备

下面我提供一下我多年工作以来收集整理的学习路线,给大家做个参考:


学习一线大厂的各项技术:


大厂是我们的技术先驱,不仅仅是各种技术,还有很多令你大开眼界的使用方法,学习这些有利于自己竞争力的提高,深入理解后也可以提升你的学习效率。


现在竞争这么激烈,只有通过不断学习,提高自己,才能保持竞争力。


1.2020 大厂面试高频知识点


  • 图片

  • 网络和安全机制

  • 数据库

  • 插件化、模块化、组件化、热修复、增量更新、Gradle

  • 架构设计和设计模式

  • 性能优化

  • Android Framework

  • Android 优秀三方库源码

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
在线等!阿里、百度一面就惨遭吊打,kotlin语言书籍