不停变化的技术
软件技术从诞生到现在仅有几十年历史,还在高速发展的阶段,每月每周甚至每天都有所谓颠覆性的新技术诞生,为了保持自身的竞争力,我们这些技术狗该如何应对?
需要认清以下几点:
-
新技术层出不穷,但是保持顽强生命力的九牛一毛,没必要不停追逐;
-
新技术是否可以推广,需要看它是否解决了现有技术的普遍问题,是否是通用的解决方案,以及性价比是否合理;
-
技术的合理发展路线是在不断迭代中向前演进,站在巨人的肩膀上创新,如果有一项技术宣城全新的并且具有颠覆性,一定要慎重对待;
-
对工作,结合当前遇到的问题,寻找有效的通用解决技术,永远不要为了上新技术而更新;
-
对个人,对新技术保持敏感,过滤掉大量干扰,业余时间投资具有竞争力的新技术,完善自身技术体系;
从过去学习
传统行业的失败案例,会在业界迅速传播,并学习,而且固化到具体的执行条例;但在软件行业,还远远未达到这个程度,人们只乐意传播那些所谓的热点和成功的明星,却很少坐下来一起分析总结那些失败的软件,从而吸取其中的教训;
-
定期进行总结,不管是自己的项目,还是接触的其它项目;
-
找出问题发生的原因,分析应对或规避的策略;
-
将经验进行固话,形成软件框架、库或设计、开发行为准则,并进行推广;
其实新旧技术的对比也可以参考这个方式,如果一项新技术出来,宣城要代替某一项已有技术,你需要仔细分析以下几点:
-
已有技术的缺点,以及新技术是否很好的解决了这些问题;
-
已有技术的长处,新技术是否继承或加强;
-
新技术是否存在我们已经总结出来的那些问题(反模式);
-
新技术是否存在新问题;
对待别人犯的错误
正确对待别人犯下的错误,需要仔细思考这些错误我自己是否也会犯,并且这些错误也可以固化到准则中,避免后来人犯同样的错误;
要制造氛围,大家都乐于分享错误并总结,只有这样的团队才能不断进步;
不要进行预言
软件技术的发展无人可以预测,不要轻易断言明年会怎么样,重要的是做好当下;
-
结合当前情况,在架构设计时留有适量余地,为现在而设计,而不是为将来而设计;
-
设计时考虑成本,不做无谓的浪费(比如小系统上负载均衡、容灾等);
已有技术的价值
人们总乐于追逐新技术而抛弃老技术,事情没有绝对,一个老COBOL工程师的月薪可能定十个Java程序员;
以下几点:
-
过时技术,掌握的人极少,但可能存在大量遗留系统需要维护,供需关系决定这些人的待遇可能更好;
-
当下流行技术,用的人多,工作选择范围大,但也意味着竞争激烈,供大于求,求职者话语权不足;
-
下一代技术,学习成本高,工作范围小,但可能是下一个风口;
-
未来技术,留给未来,偶尔关注即可;
个人建议:
-
已经掌握的技术不要丢,说不定还会有新启发,可能会有惊喜;
-
当前正在工作中使用的技术,是个人竞争力的主要载体,多花时间,深入研究,技术是为需求服务的;
-
新技术保持跟踪,针对目前工作改进的一两项新技术进行预研;
知之为知之
-
你知道自己知道的: 保持谦虚,没什么大不了的;
-
你知道自己不知道的:保持上进,选择性的学习;
-
你不知道自己不知道的:保持谦虚,主动,多和别人交流,不断扩大自己的知识面;
实践
- 选择一项曾经吹过牛逼,但是最终消失的技术。思考以下几个问题:
-
它为什么会失败?
-
它缺少什么特质?
-
它应该怎么做,才会改变这个结果?
- 选择一项曾经吹过牛逼,但最终变成现实的技术。思考以下几个问题:
-
它是怎么做到的?
-
如果它怎么做,会造成失败的结果?
-
基于现有的技术趋势,你认为明年哪想技术值得投资?为什么?
-
基于现有的技术趋势,你认为明年哪想技术不值得投资?为什么?
架构思考读书笔记 一
架构思考读书笔记 二
架构思考读书笔记 三
架构思考读书笔记 四
架构思考读书笔记 五
架构思考读书笔记 六
网友评论