简介(未完成)
贩卖焦虑
技术的发展阶段
- 在一个组织内部酝酿
- 开始对外推广
- 社区兴起
- 成为趋势,各种论坛、教程、书籍铺开
- 成为日常工作技能
是做新技术的弄潮儿,还是做技术的跟随者, 其实后者并不丢人。
跟踪新技术,意味着,你有可能是第一个吃螃蟹的,但新技术的迭代很快,很多时候2.0版跟1.0版完全不一样,导致一些精力的浪费。书籍、实践的不成熟也导致学习效率不够高。
不要怕自己对新技术一知半解,有时候搞不清楚,说明那个点还没到。
新技术、夯实基础知识、应付日常工作 对精力的分割的矛盾。
一个基础原则:优先去做那些你快做完但还没有做完的事情。
学习重要的不是什么都要去学
- 理论上的重要,知识本身的特点决定的
- 有限资源下的重要,比其他重要的更重要, 不学会影响进步。
一个典型的例子, 写测试类、自动化测试很重要, 但毕业几年了也没有好好写过。
对不同的知识体系的应对措施
- 知道有即可
- 初步熟悉,会使用
- 重度使用,日常工作中用到
- 精通,容不得一点含糊
推动措施
- 主动推动,有意识的、成体系的学习某一个领域的知识
- 被动推动,被工作内容推动、碎片化的学习某一个领域的知识
对于一些公司, 工作内容对新技术的滞后性。对于公司来说,投入大量人力跟踪新技术得不偿失,远不如新技术成熟时挖一个大牛过来一步到位强。
对新知识的几个阶段
- 知道是干啥的,但没接触过
- 初步接触,写了一个hello world,但其实脑中还都是细节,此时还特别容易遗忘
- 深入使用,有一定的使用套路,有一定的抽象认知
- 看过源码
学习是有可能要学多遍的,一般一遍只可能在一个层次上有收获。
另一种分类方式
- 概念
- 实践
- 源码分析
笔者曾经写过一个spark的 demo 实例,但弄过一次就搁那了,后来再拾起来的时候,自己都不知道自己曾经写过 demo 程序。
学一个东西,可以多学几个。比如你只学了influxdb 感觉很神奇,学了opentsdb 感觉有点像,学了Prometheus ,再了解到 信息采集、处理、存储、展示的一整套套路后,发现大家都是这么干的。
借助别人的学习来成就自己的学习
- 别人系统的教程
- 等身边的小伙伴实践完,学习他的代码
实践和学习 哪个跑的太靠前了都不好。当你没有找到实践一门技术很好的场景时,等等是最好的方法。但也有必要有点直观感觉,了解下新趋势。
更高的效率一定来自需求驱动或兴趣驱动。
我们了解一个新技术有三个阶段,第一阶段是,怎么使用;第二阶段是,如何实现,原理是什么;第三阶段是,为什么这样实现。学数学和学一门新技术一样,也有这样三个阶段,先用起来,了解原理,然后了解为什么。
徐文浩:从工作相关的领域开始,先广度,再深度。从工作相关的领域开始,是让自己一是能有实际用得上学到的知识的机会,二是日常工作中容易耳濡目染,相当于常常在复习。而先有广度,是让自己在心中有一个问题到解决方法的“地图”,遇到具体的问题能够对得上,容易获得正反馈;然后再有深度,具体去对一个特定的主题学习应用。当开始深入学一个特定问题的时候,最好的方式是,追一门在线课程,譬如 Coursera、TEDx,或者在极客时间上找一门课程来学习。这是因为,在线课程有明确的节奏
学习新技术的一个方法
学习也要懂一点心理学
不论是学习哪种技术,直接扎到具体的细节中,亦或是从一个很小的点开始学习,你很快就会感到厌烦。为什么呢?因为你虽然快速地搞定了某个技术细节,但无法建立全局的认知观,这会导致你只是在单个的点上有所进展,却没法将其串联成一条线进而扩展成一个面,从而实现系统地学习。
而从自上而下的角度去学习,容易发现了很多之前学习过程中忽略掉的东西(越宏观的东西越通用,越容易与已知事物找到连接)。更特别地是,我发现这种学习方法能够帮助我维持较长时间的学习兴趣,不会阶段性地产生厌烦情绪。
工程师应该怎么学习我们总是希望自己能在技术上做到一直精进,同时随着年龄和工龄的增长又会时不时陷入迷茫,这时候去看看同龄的优秀工程师,年纪更大的优秀工程师在这个时间段在写什么代码,在写什么博客,可能对于解决自己特定时期的迷茫有益。或许就发现了一个新的领域值得自己去奉献青春。