深度技术
本篇不写具体的技术,而是聊聊技术深度的一点感悟。
说到技术深度,第一感觉是很玄乎的东西,深到底多深才叫有深度,是不是技术钻研的越就显得越牛逼,那学一门技术要怎么学才叫有深度的学?
先来看看骨灰级大佬的观点(来自极客时间的《左耳听风》专栏):
1. 这个技术出现的背景、初衷和要达到什么样的目标或是要解决什么样的问题。这个问题非常关键,也就是说,你在学习一个技术的时候,需要知道这个技术的成因和目标,也就是这个技术的灵魂。如果不知道这些的话,那么你会看不懂这个技术的一些设计理念。
2. 这个技术的优势和劣势分别是什么,或者说,这个技术的 trade-off 是什么。任何技术都有其好坏,在解决一个问题的时候,也会带来新的问题。另外,一般来说,任何设计都有 trade-off(要什么和不要什么),所以,你要清楚这个技术的优势和劣势,以及带来的挑战。
3. 这个技术适用的场景。任何技术都有其适用的场景,离开了这个场景,这个技术可能会有很多槽点,所以学习技术不但要知道这个技术是什么,还要知道其适用的场景。没有任何一个技术是普适的。注意,所谓场景一般分别两个,一个是业务场景,一个是技术场景。
4. 技术的组成部分和关键点。这是技术的核心思想和核心组件了,也是这个技术的灵魂所在了。学习技术的核心部分是快速掌握的关键。
5. 技术的底层原理和关键实现。任何一个技术都有其底层的关键基础技术,这些关键技术很有可能也是其它技术的关键基础技术。所以,学习这些关键的基础底层技术,可以让你未来很快地掌握其它技术。可以参看我在 CoolShell 上写的 Docker 底层技术那一系列文章。
6.已有的实现和它之间的对比。一般来说,任何一个技术都会有不同的实现,不同的实现都会有不同的侧重。学习不同的实现,可以让你得到不同的想法和思路,对于开阔思维,深入细节是非常重要的。
--------------------------------------------------------------------------------------------------------------------------------------------------------------
从以上6点来看,有横向扩展也有纵向深入,把一门技术的各个方面都考虑进去了。作者也提到如果能坚持两三年,会在某一领域成为佼佼者。那要如何才能填满这些呢?无非就是多看资料(书籍、高质量博客、文档),多交流,多实践,多总结(思考、输出)。要对一个技术理解的比较透彻不能只看一本书,那是一个人的思维。要看不同层次的人写的东西,因为每个人理解程度都是不同的,结合不同人的思维去学习技术,并在自己的认知上提炼,把别人的东西变成自己的东西,这样才叫get一个技能。当然,这过程也不是那么容易的,需要热情,需要时间,需要坚持。
想想本人一路走来,走了很多弯路,技术深度远远不够,仍需努力提高自己的水平。
相关阅读
摩拜单车及其竞争对手 ofo 发展势头迅猛,透过行业资讯两家均有可能成为下一个独角兽公司。令人惊讶的是,在这个互联网寒冬时期,依然
javajdbc中的Statement到底是什么,怎么理解,还有其他一
javajdbc中的Statement到底是什么,怎么理解查了些资料首先,一个连接数据库的,就有一个Connection,然后这个Connection有很多Statemen
最近发现越来越多的人开始分析抖音这款产品了,关于抖音的文章也是铺天盖地。本人接触抖音时间比较早,也写过一篇抖音的产品分析报告
oracle数据库中order by用法 oracle数据库中order by的一些高级用法 现有一个表,表内容如下: 以下的操作都是对该表进行
对于产品相关“上游”岗位来说,独立思考是一项非常重要的能力。很多人都知道这么说,可是实际上应该如何才能做到独立思考呢?本文通过