更多Android高级工程师进阶学习资料
进阶学习视频
附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
开头
在Android开发当中,相信大家对第三方库的重要性是无需多说的,尤其是三方库源码更是重中之重,而EventBus源码就属于其中的一个重点。
EventBus是安卓(Java中也可以用)开发中非常流行的一个第三方库,是一种发布/订阅事件的总线.
想必每个入了门的Android开发者都多少对EventBus有过了解,EventBus是一个Android事件发布/订阅框架,通过解耦发布者和订阅者简化 Android 事件传递。EventBus使用简单,并将事件发布和订阅充分解耦,从而使代码更简洁。一直以来很受开发者的欢迎,截止到目前EventBus的安装量已经超过一亿次。足以看出EventBus有多么的优秀。
那么我们如何才更更好地学习和使用EventBus呢? 其实网上已经有不少优秀的EventBus的源码分析文章,但是并不全面,不够完整,今天有幸给大家分享谷歌大神熬夜整理的三方库源码笔记 EventBus源码详解
俗话说“生于忧患,死于安乐”,其实大部分中年危机,就是在安乐中产生的。
有的人或许会反驳,“照你这么说,我还必须奋斗了,不奋斗就要死,难道选择安逸的生活就不对吗?我就没有选择自己生活方式的权利吗?”
说这句话的人其实有一些误解,误解就在于,安逸的生活并不等于不需要奋斗,这要看你的家底。
某聪如果说要选择安逸的生活,他可以很安逸,因为他有了安逸的资本,而大部分的你,并没有这个资本,你如果过早的选择了安逸的生活,那么结局往往会很悲惨,而你能做的,最多也就是让你的后代有选择安逸的资本。
而你,并没有这个选择的权利,所以,想要安逸的生活,就必须先奋斗!
而大部分中年危机,就是因为安逸之前的奋斗不足导致的。
五年前,我觉得只要一身技术傍身,什么中年危机,根本不存在的,那时候觉得谈中年危机的人,都是自己水平不行而已。
但是等自己真到了如今这个年纪才明白,实际上,中年危机产生的本质,其实是随着年纪的增长,体力的下降,家庭的牵绊等等,所带来的心里负担。
而这种心里负担,与技术无关,与你的能力也无关,并不是说你的技术好或者能力强,你就可以摆脱这种危机感了,能做一个500人公司的CEO的人应该很厉害了吧?但是他依旧会有危机感,因为他一个不小心,明天就可能变穷光蛋,甚至负债累累。
所以,危机感的本质并不是你技术不够,或者能力不够,而是你的生活越来越不受你的掌控。
你不敢失业,不敢跳槽,活的越来越怂,因为你有妻儿,有父母,可能还有房贷,有车贷,你完全无法掌控你的生活,以前你不开心了可以裸辞玩上几个月再上班,但是现在你不敢,你甚至不敢轻易跳槽,更别说裸辞了。
之所以程序员大多是到了30岁或者35岁会产生危机感,本质并不是他的技术不行了,或者能力不行了,而是他开始意识到,他对他生活的掌控能力变得越来越弱了。
在30岁之前,很多程序员虽然能力还没到顶峰,但是那时候的程序员,是没有危机感的,哪怕是租房,很多人也会觉得,自己老家有房,就是一辈子租房又能如何?
之所以有这样的想法,其实是这时候的程序员,大多认为自己有能力一直保持现在的生活,比如一辈子租房下去,过着虽然没房,但从不缺钱的生活。
因为这时候的你觉得,你可以掌控你的生活,直到永远。
但随着你年级增长,你身上的担子越来越重,你就很难这么潇洒了。
说了这么多,我只是想证明一件事,那就是,危机感其实与技术、能力无关,你早晚会面对,除非你是个二代,或者你已经成功让自己变成了一代,可以让自己和后代都衣食无忧。
之前在网上看过一位大佬看似张狂,却是基于事实的说过一句话,说自己自认为应该已经超过了差不多至少50%的程序员,但依旧会有危机感,作为被超过的50%的你,又凭啥没有危机感?
你以为学好技术就可以摆脱危机感?还是你觉得做上管理就可以摆脱危机感?
很遗憾的告诉你,都不能!
这时候有的同学可能会问,“照你这么说,我特么除了找块豆腐撞死,还有第二条路不?”
我想告诉你,有!
其实整篇文章写到现在,一些同学可能会觉得,我在传递一种消极的态度,但事实上恰恰相反,我是想提醒你,要居安思危,要未雨绸缪。
埋头学习技术固然是对的,但同时,你必须要多多思考两个问题,第一个是,你想要什么样的生活,第二个是,为了保持这样的生活,你需要做好什么样的准备。
这样才能在一定程度上,缓解中年到来所伴随的危机感。
至于这两个问题的答案到底是什么,我就没办法告诉你了,毕竟这个完全因人而异。
这时候有的同学可能又要说了,“你这鸡汤有点毒啊,说了一堆,就是没说解决办法,这不是坑人吗?”
你要这么说也没错,鸡汤本身确实没办法解决实际问题,而且很多鸡汤都有毒。
但是,鸡汤的作用,本身就只是在你心中埋下一颗奋斗的种子,至于开花结果,只能靠你自己,很多人回顾自己奋斗的经历的时候,都会说,当时是看到了一句话,或者是一篇文章,才唤醒了自己。
尾声
评论里面有些同学有疑问关于如何学习material design控件,我的建议是去GitHub搜,有很多同行给的例子,这些栗子足够入门。
有朋友说要是动真格的话,需要NDK以及JVM等的知识,首现**NDK并不是神秘的东西,**你跟着官方的步骤走一遍就知道什么回事了,无非就是一些代码格式以及原生/JAVA内存交互,进阶一点的有原生/JAVA线程交互,线程交互确实有点蛋疼,但平常避免用就好了,再说对于初学者来说关心NDK干嘛,据鄙人以前的经历,只在音视频通信和一个嵌入式信号处理(离线)的两个项目中用过,嵌入式信号处理是JAVA->NDK->.SO->MATLAB这样调用的我原来MATLAB的代码,其他的大多就用在游戏上了吧,一般的互联网公司会有人给你公司的SO包的。
至于JVM,该掌握的那部分,相信我,你会掌握的,不该你掌握的,有那些专门研究JVM的人来做,不如省省心有空看看计算机系统,编译原理。
一句话,平常多写多练,这是最基本的程序员的素质,尽量挤时间,读理论基础书籍,JVM不是未来30年唯一的虚拟机,JAVA也不一定再风靡未来30年工业界,其他的系统和语言也会雨后春笋冒出来,但你理论扎实会让你很快理解学会一个语言或者框架,你平常写的多会让你很快熟练的将新学的东西应用到实际中。
初学者,一句话,多练。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
s://bbs.csdn.net/topics/618156601)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!