我记得我刚毕业的时候,图片加载的3级缓存是一个经常被考的知识点。
但是现在面试考的是什么呢?
是插件化的原理,Gradle 的知识等等。三级缓存很少再考了。
为什么呢?因为这个知识点已经被大多数人都知道了。
就算知道这个知识点也无法证明你比别的候选人强。
所以现在的面试题目越来越难了,各种原理、各种 hook。
但是更恐怖的事情是什么呢?
现在就连插件化、系统源码这种更深层次更底层的原理,知道的人也越来越多了,网上关于这些知识的分析的文章也越来越多了。
所以我们可以预见的是,再往后插件化、Gradle 等等这些知识也不能再证明你比别人强很多了。如果这些知识你不懂,那只能说明你比别人差。
说了这么多,我想表达的问题是,这里懂的更多,本质上是信息差。
把信息差作为护城河并不是一个好的选择,它是有时效性的。
那我们真正的护城河是什么呢?
我们前面说到知识点并不能作为护城河,但是能快速的学习吸收知识点,并且能实际运用就是一个护城河。
说白了就是学习能力和解决问题的能力。
那学习能力是什么?
是一个新知识到来的时候,你能比别人更快地掌握。通过学习能力,把信息差不断扩大。这是护城河。
那解决问题的能力是什么?
是遇到问题以后,能想到用哪些流程去解决,能想到用哪些知识来解决。毕竟每个人解决问题的过程是不一样的。你能比别人快速地解决,那这就是你的护城河。
这两个能力本质上来说是对知识的运用。
我们再往深想一想,更深的护城河是什么呢?
是创造知识的能力。
什么叫创造知识呢?
以安卓为例,第一个做出插件化这个事情的人,就是在创造知识。第一个写出图片加载库的人,就是在创造知识。
前端也一样,写出 React 和 Vue 的人,就是在创造知识。
创造知识,听起来很大。我们分析一下。
如何去创造呢?
首先我们要发现一个别人没有解决或者没有彻底解决的问题。
这里没有彻底解决是个关键。说实话以现在技术的发展,要想找一个完全无人解决的问题已经很难了。就像图片加载库有很多,但是他们之间是有各自优点的。这些优点就是别的框架没有彻底解决的问题。
然后我们要给出解决方案。
那这个方案,就是创造的知识。
第一个写图片加载库的人,一定是发现了图片加载不方便的问题,然后提出解决方案。
所以我们可以说,创造知识的本质,是要发现问题和解决问题的能力。
我们再往下想,那如何发现问题呢?
需要我们的敏感性,在遇到问题的时候,能意识到这是个问题,并且能想想,我是不是可以解决这个问题。
其实我们仔细想的话,日常生活中遇到的问题是很多的,只是我们都忽视了。
那解决问题的能力是什么?
是在之前领域有了积累,可以迁移过来,解决现有问题的能力。
本质上是类比迁移能力。
就像写图片加载库的人,之前应该有见过其他领域的图片加载,可能是pc端,可能是前端。
就像汽车的发明,本质上是把汽油机迁移到三轮车上。
我们发现解决问题的能力其实提到了两次,一次是运用知识解决问题,一次是类比迁移知识解决问题。
所以我们最后总结一下,技术人员的护城河是什么呢?
是学习能力,发现问题的能力,运用知识解决问题的能力,类比迁移知识的能力。
大家觉得呢?
==============================================================
在这里我也分享一份收录整理的Android学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料
这些都是我现在闲暇时还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效地帮助大家掌握知识、理解原理,帮助大家在面试季取到一份不错的答卷。
当然,你也可以拿去查漏补缺,提升自身的竞争力。
最后
我见过很多技术leader在面试的时候,遇到处于迷茫期的大龄程序员,比面试官年龄都大。这些人有一些共同特征:可能工作了7、8年,还是每天重复给业务部门写代码,工作内容的重复性比较高,没有什么技术含量的工作。问到这些人的职业规划时,他们也没有太多想法。
其实30岁到40岁是一个人职业发展的黄金阶段,一定要在业务范围内的扩张,技术广度和深度提升上有自己的计划,才有助于在职业发展上有持续的发展路径,而不至于停滞不前。
不断奔跑,你就知道学习的意义所在!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!