程序员会面对一个陷阱:就是永远有新的知识可学。比如nodejs,swift,各种编程语言,各种各样的开发库,机器学习,统计学,交互设计等等。 时间宝贵,我们很容易把时间浪费在学习上面,学了一堆,结果获得的成果寥寥。
新的知识往往会有这样的一些问题:
不够稳定
:新的东西往往没有充足的开发人力和实际应用,使用的时候各种坑,遇到各类的bug和问题,宝贵的时间就用来和这些坑纠结了。适用场景狭窄
:很多时候一个新东西是针对一个领域的特定问题的,如果你不实际用到它,学了完全没有用处。同质化
:经常会有一门新的编程语言冒出来,它们可能有一些好的特性,但是你真的需要再学一门编程语言吗?人力有限
:你确定需要学习前端,后端,服务器,机器学习,交互设计全部的知识?每样都没有时间学精,这么多东西也塞不进自己的脑子里面。
因为新的知识有这样或者那样的问题,很多时候不如退一步,去学一些不那么酷,但是经久使用的旧知识:
经过时间检验的知识
:比如C,脚本语言,甚至英语,这些你总归会用到的。不会变的基础知识
:tcp/ip协议,操作系统原理,数据库,基础算法。虽然平时工作不一定遇到,遇到的时候自己不懂就有得受了。继续深入现存技能
:打磨我们日常用到的技能,是投入产出比最高的。
我觉得可以去学习新知识的情况:
浅尝辄止
:可以了解新的一些事物,知道它们的潜力,但是不要轻易深入学习。工作领域的延伸
:比如你是普通web应用的开发者,可以学习重前端框架,异步后端框架,这些可以弥补现在掌握技能一些照顾不到的空缺。更先进的替代工具
:比如你现在是php开发者,可以去学习rails。下一个职业发展方向相关
:你希望成为一个新兴领域的专家,那么你需要投入大量的时间和精力在这个领域里面。
大多数时候,学习新知识的投入产出比,比不上学习旧知识的投入产出比。一个什么都懂的万金油程序员,不如一个领域专家收入高。