《28岁未成年》--- 写给程序猿

4,270 阅读4分钟

前段时间看了这场电影,之前没有听说过任何相关内容,完全是冲着名字去的。
这部电影具体怎么样就不评价了 毕竟一千个人眼中有一千个哈姆雷特,咳,但可能其中600个都有点磕碜,不过王大陆还是很帅气的。
虽然过了这么久 但片末的一句话让我印象深刻,作为文章的开头。原文记不清了,大概意思是

17岁的你从未离开过,找回原来的你,还是可以无所不能的

      
“你丫原来是走鸡汤路线的?”
这位童鞋,先牵走心头奔腾的羊驼,不要急,毕竟鸡汤在身子骨虚弱的时候也是可以补一补的。
虽然作为程序猿的你现在不需要知道宇宙第一定律,也不需要关心化学式的配平,但如果你还会从事编码的工作一阵子 亦或一辈子.
我这有几个不成熟的小建议,算是对自己工作这么久的一个的经验总结,也分享给大家.

心态

这里的心态主要是指的项目中的心态。
举例来说,一个手机项目中,有人负责锁屏模块,有人负责电话系统模块。
某个茶余饭后 负责锁屏的同事无意间听到了电话系统的同学在讨论rild,modem这些新鲜并且相对底层的技术 觉得高大上,心身向往,认为自己模块所用技术不够底层,想抛弃自己的模块去研究下底层技术。(很多做app的同学羡慕做系统定制的同学很有可能也是这个出发点。)
但在你决定迈出这一步的时候请先问一问自己 是否对自己的模块了如指掌,遇到的bug能否快速定位大概的位置,推测出可能出现的情况,模块架构是否合理,随着版本的迭代有哪些演进。
如果并没有清晰的回答,还是建议先沉下心来,不要隔岸观花 也许这边风景独好.

视角

当今无论移动端 前段还是后端,每隔一段时间都会有新的库出现。以android来说,现在glide okhttp大行其道, rx rn方兴未艾,虽然你不用再去关心图片存储 线程切换这些头痛的问题, 但面对玲琅满目的库,使用和学习成本却变高了。这是被广大程序员所垢病的, 并且认为程序是个吃青春饭 看不到出路的行业。
之所以会这样以为,我认为是因为着眼点一直在API这一层,是一种面相应用的学习。
我们为什么要用有限的生命去尝试无线的开源库呢?
如果将视角放到更高的层面,跳出五行外,会轻松很多,因为万物皆五行.
说成白话就是:

  1. 你是android framework工程师, 就应该多去总结android子系统的设计套路,会发现它不过是一个包裹着linux的系统,所有模块架构都大同小异
  2. 你是android app开发者,就尽量去了解api背后的实现原理,当面对新版本的发布,第一时间去官网和源码查看,以最小的代价了解差异
  3. 学习java, 就多去了解该语言背后的设计思想,在有新的面向对象语言出现时,能迅速借鉴和学习 .
  4. 你是程序猿,首先应该学会的是学习学习的方法,阅读第一手资料,看流行的开源项目,阅读经典的书籍.

你着眼的视角越高,越能做到在新框架,新系统来临的时候,"人束手无策,我游刃有馀"

好奇心

android开发中发送通知大家都会,并且api没有使用难度。
但你有没有想过这样一个问题?
通知栏的图标和布局结构是如何从你的app进程传递到SystemUI进程的?同理,lanuncher进程里的桌面小部件又是如何拿到三方app资源的?
在最常规的click事件面前,这个事件又是经历了哪些阶段才被最后响应的?
每个简单api后面也许都蕴藏着一个或者多个解决经典问题的经典方法,保持好奇心去弄懂他们,这样,当你需要自己设计实现的时候可以有据可循,不用闷头苦想。

最后

用2句我比较喜欢的话作为总结

  1. O ever youthful, O ever weeping
  2. 低头走路,抬头看天

  
欢迎关注公众号,谈谈技术,聊聊人生

qrcode_for_gh_665b92827be4_344.jpg