想了很久怎么样可以让文章的标题不那么悲观,但是各种文案都在我脑海里面不断的被否定,要么是不那么抓眼球,要么是立意不匹配。最后想了想,这个标题是真的符合我最近的感悟。加上已经四个月没有更新,就写一篇我自己的感想。不过在开始正文之前,我想先声明一下,这篇文章绝对绝对不是一个负能量的文章,而是作为一个小小的安卓开发,这四五年来的一些思考,和这种思考给我个人带来的升华。希望看过文章,能有同感的朋友也能多思考一下。
最近因为疫情的关系,相信很多国内的小伙伴都逐渐开始了解到在家上班的体验。在美国基本上work from home在IT公司里面算是比较常见的现象了。一般大厂每个周都会有一天被划为No Meeting Day,说只是不开会日,但通常都会被大家当成在家办公日。不开会嘛,那我在家和在办公室也没区别不是🐶🐶🐶🐶🐶🐶🐶。
也正是因为闲的时间多了,看文章的时间也多了。我是个不喜欢看书,更倾向于看碎片化文章的人,没事翻翻掘金,翻翻Android Weekly,是我上厕所蹲坑时候的首选项。。。
但是让我感到悲伤的是,好多安卓技术博主,就在这么一个月两个月之间消失了。点击他们的个人主页,你会发现上次更新可能都是好几个月,甚至是一年前的事情了。粗糙的以为是因为疫情,其实想一下,这个事情符合技术这行的发展规律。
我是从15年末正式开始做安卓开发的,当时安卓开发界比较出名的像Trinea, 任玉刚等等。尤其是Trinea当时的安卓源码分析项目,给了还是一个安卓小白的我一个非常好的学习机会,那个Volley 源码分析,让我知道如此短小精炼的代码可以把那么复杂的逻辑组织的如此的有条理。说实话,因为现在公司的app还是在用volley做最底层的网络库,因为熟读源码的原因让我在出现网络问题的时候debug的速度比其他组员快很多(毕竟知道哪里打断点。。)
当时还加了Trinea大神的qq,发了简历给他还得到了大神对我简历上的指点,清晰的记得Trinea把我简历上的IOS改成了iOS。。。还说我这样写非常不专业。。。
但是自从Trinea大神在跳槽到滴滴之后,就渐渐开始忙了起来,我和他最后的一次通信停留在了2016年,我告诉他我有机会去参加当年的GoogleIO大会了,他微笑的点了个赞。。。也自此之后,他的个人博客主页更新的更多的是滴滴的职位内推等等。。
16年之后,RxJava开始火了起来,在这个神奇的框架还没被大部分人吃透的时候,扔物线出现了,这位江湖人称凯哥的人在中文资料都还不是很齐全的时候,写出了这篇给android开发者的RxJava详解, 时光荏苒,马上RxJava 3.0都出来了,但现在再回头看这篇中文的RxJava文章,还是有许多让人感慨的地方,凯哥在那个时候对RxJava的理解是超前的,虽然之后陆续有很多更棒的RxJava的文章,比如这个RxJava 沉思录系列-> RxJava 沉思录(一):你认为 RxJava 真的好用吗?
,但是凯哥的那篇文章还是对我产生了很大的影响,不只是对RxJava的理解,让我力排众议在当时的小公司开始实现RxJava,还有他诙谐的行文风格,促使我也开始写技术博客。一年多以前凯哥开始辞职创办自己的安卓进阶培训班,博客的更新速度就慢慢开始直线下降了(小声逼逼一句,他的Coroutine教程还是很不错的),虽然心里觉得很遗憾,但是也能理解,毕竟大家都是要赚钱养家的。
16-17年算是安卓技术社区热度跌下高峰前的夕阳红时刻,加上国内的热更新技术的发扬光大,那一年安卓技术线上线下的交流也达到了前所未有的热度。我个人也或作为听众或作为演讲者参加了好几场国内国外的技术交流会
也正是这一年我在博客上的持续输出,得到了当时西瓜视频负责人的关注,还在简书上私信了我,可惜当时已经有了亚麻和facebook的offer,还是没加入现在已经已经如日中天的头条。
不过奇怪的是,那一年开始,好像除了一直以来比较高产的 鸿洋_之外,没有什么特别突出的后起之秀了。新出现的博主大多是更了两三篇文章就消失了。貌似是官方也察觉到了这个趋势,以前关注的InfoQ的安卓技术公众号直接改名成了前端之巅,把iOS,安卓,web 合并在了大前端这个技术领域里面。这个信号对很多刚刚入行的安卓小白们就像在劝退一样。19年初,InfoQ官方的小编还写出了这样一篇文章,开头是这样的:
写在前面
今天,我想给大家讲一段故事,这个故事里包含有黑科技、天才少年,有意气风发的豪情和壮志未酬的遗憾。更重要的是,这是一段真实的故事,是我人生中的一段重要经历。
-----> 移动开发的罗曼蒂克消亡史
这开头就定了一个暗黑系的调,果不其然,末了,作者还来了一个《萌芽》里面小说家族板块式的结尾:
插件化热潮注定成为技术发展的一段小插曲,也许再过几年,不会有人记得了。那段激情飞扬的岁月,终将成为 The Wasted Times。
做过什么,发生什么,到末尾一切都不值一提,然而我终究还是拿起笔,记下那些为了忘却的纪念。
也正是自2019年起,好像的确没有什么特别火爆的安卓技术可供大家讨论了。倒是面试这个话题,成了很多安卓技术博客的爆款。
To go to 大厂or not,this is a question....
我记得以前有句话,叫
书是越读越薄,然后再越读越厚
我一向不是个悲观主义者,我喜欢思考事情发展背后的真实。一开始在看到安卓技术社区不再像以前那么繁荣的时候,我也感到很失落过。直到去年开始,我才真正了解到那些消失的技术大佬们不再更新的原因,不是他们干得不好,恰恰相反,是他们干的太好了。
19年我接了一个大项目,而且重点是,我开始带人了。不是转做管理,而是作为项目的tech lead。从19年6月份开始,从项目的前后端通气,设计客户端架构,技术选型的调研,再到设计审核,到开发,最后到项目交付的War Room,我从头到尾每个环节都参与,并且负责。也是这一个项目让我切身体会到了一个项目从开始到落地每一个环节,作为一个负责人要做些什么。
一个团队的Lead,要做你带领团队大部分人做不了的事情。技术上,怎么搭架构,做技术选型,让团队的开发们可以顺利的完成他们每天的开发任务。管理上,对下怎么划分任务,鼓励团队的开发对自己做的"一亩三分地"保持热情,不会感到枯燥乏味,对上,怎么及时汇报项目进度,沟通需要上级的帮助。
这是我在lead完这个项目之后的感想。在项目开始的前两个月,我没有写一行代码,大部分时间在写文档,做技术调研,解决开发前期的环境配置(大厂的依赖真tm复杂。。。)。虽然不算是真正的做开发工作,但是这一个项目给我思维上的提升却远远大于之前我做的任何feature。
再这之后,可能是老板觉得我还算靠谱,也希望我再自己不熟悉的领域多成长,就没有再让我进行过多的业务逻辑的开发,而是鼓励我参与更多解决团队痛点的项目。在这些过程中,我接触到了JNI,均衡器(音频底层开发),团队代码规范工具等等。这些小项目都在不断的挑战我自己的知识面。
回到开头的那一句话,
书是越读越薄,然后再越读越厚
我现在算是充分的理解了。一开始大家总说安卓开发安卓开发,学习重点在于一些安卓的具体实现细节,这是一个书越读越薄的过程。但是当项目变的越来越大,越来越广的时候,就不是安卓不安卓的问题了,而是一个宽泛的软件开发,管理的过程。当产品足够大的时候,一个团队所需要考虑的不仅仅是业务逻辑的开发了,作为一个Lead,需要的知识也就越来越需要向广度来发展,做均衡器,你要了解线性代数,滤波器,做代码规范检查,你需要了解编译原理的词法分析,语法分析,这又是一个书越读越厚的过程。安卓开发到最后,需要超脱于安卓本身。
当那些技术博主们,不再拘泥于一些安卓的小技术细节,而是升到了一个更高层次的Tech Lead,或者是Manager的岗位,自然也就不会再发一些技术细节的文章,因为这不是他们该思考的问题了。
我记得之前有段时间很多人在知乎上抱怨,说像任玉刚,stormzhang这样的“大佬”开始不务正业,整天在公众号上分享一些心得体会,都没有技术“干货”了。其实如果真的能理解我上面说的,也就不难理解他们为何会这样了。站在一个更高的维度去看软件的开发,会更加注重于开发的方法论,的确不会再像以前一样发技术细节的文章了,再者,如果干了4-5年安卓开发,还需要每天看诸如Java 线程池源实现原理这种文章,不觉得是不是太晚了点?
书越读越厚,同样也体现再温故而知新上。
我最近关注了一个博主:却把清梅嗅
他写了一个反思系列的文章,我觉得非常好,他把我们之前很多一些感到理所当然的一些安卓开发的方法论做了一个简单易懂的总结
比如很多文章都在写事件分发原理,但是大部分都是源码复制粘贴,跟踪代码,说实话,没有总结的分析都是耍流氓,分析了等于没分析。很少有人能一针见血的指出安卓的事件分发就是深度优先递归的一个实现,有没有人能思考一下不DFS行不行?BFS广度优先能不能一样实现事件的拦截?
对已有知识进行反思,同样也可以得到进步,而不是需要一昧的追求所谓的“新”知识。
最后,我想说,尤其是对于那些刚刚入行安卓的朋友们,努力提升自己,进一个更大更好的平台,比自己躲在被窝里面死命钻研所谓的“技术”要有用的多。只有在接触到更大的平台,你才能发现,原来还有这么多自己不懂的东西。任何技术都有消失的时候,相聚离开总有时候,没有什么会永垂不朽。唯有经验与思维永存。
大家五一快乐!
共勉