莫把实施细节当知识

曾看到这样一句话,是告诫年轻的程序员的:

在软件开发中,技术变化如此之快,你花费了大量时间学习技术和工具,一旦这些技术被取代,你的知识将变得毫无价值,因为它们大部分都是实施细节。

当我看到这句话时,我陷入了深深的思考,回想一下自己所学的那些技术:从编程语言、框架、第三方库,各种大型工具,数据库技术等。与那些不熟悉这些技术的人相比,自己学到的大部分的确是实施的细节。而实施的细节是如同软件一样时不断迭代更新的,有些技术更新的慢,那学这些技术就可以用的久一些,有的技术更新的快,那就得不停的学习。但 10 年后,现在所学的技术基本上不能再用于生产。

程序只会不停的更新,而很难传承,这也是程序员的技能可积累性差的重要原因。很多从事 IT 的人到了中年会格外焦虑,年轻时精力充沛,加班也无所谓,学习新东西也快,但到了中年,有了家庭,时间不够用,加班加不动,学习效率也大打折扣,加上工作中总被琐碎的事情填满,会逐渐忘记大学所学的课程,新技术也无暇顾及。时间一长,长江后浪推前浪,除了对一些实施细节熟悉之外,竞争力逐渐不如年轻人。

而其他行业,比如医生、律师、作家,这些职业技能的可积累性就非常强,俗话就是越老越吃香,多年的经验等于多年的专业知识,但在软件行业,技术变化如此之快,你花费了大量时间学习技术和工具,一旦这些技术被取代,你所知道的将变得毫无价值。

那么,作为程序员应该学什么呢?

通过向大牛的学习,结合自己的体会,有以下内容分享给大家:

首先,作为一名程序员,应该把本质工作做好,在学习技术的时候要能能走进去,也能走出来。也就是说既要钻进去学习技术的细节,更要理解这些技术背后的原理和基本知识,这些原理和基本知识是万变不离其宗的宗。

不学习这些技术的实施细节,你做不出项目,但要记住这些实施细节不是知识,不具有累积效应,不要把大量的时间来投入到实施细节上,以为自己学习到了知识。要把重心放在学习技术背后的基本原理,框架,算法,即能走进去,也能走出来。比如初学者在学习编辑语言的时候不需要纠结学 Python 还是 Java,在学前端时不需要纠结学 Vue 还是学 React,本质上他们都是实施细节,应该把重心放在这些语言的设计哲学和算法上,如学习 Java 的虚拟机,Vue 对象的生命周期。在选择哪个技术栈时,只需要选择对自己来说比较简单易学的即可,因为他们只是工具,既然达到的效果相同,那就优先选择学习成本最低的。在技术中,逻辑思维是非常重要的,逻辑思维来自基础学科数学,因此应该持续学习这些基本的知识,如计算机中常用的数学知识、算法、计算机组成原理、网络等基本知识,这些基本的知识不会过时,至少在有生之年不会过时,而且这些基本知识有助于你站在宏观的角度看待技术问题,也有助于你探寻底层到底是怎么实现的。这样,随着时间的积累,你的技术能力会越来越强,你的竞争力也越来越强。

其实,在做好本质工作的同时,如果有余力,不妨尝试积累一些其他技能。如果你懂技术,同时又懂产品,那你已经比大多数人优秀了。技术人的发展是多领域、多维度的,不要将自己限制在程序员这个圈子里,你即可以是程序员,也可以是产品经理,方案专家,理财经理,营销经师等,不要对自己设限。在选择积累一些其他技能时,尽量选择可积累性的技能,比如写作,你肯定是写的越久,越会写,比如投资,肯定是经验越丰富,给你带来的收益越高,比如营销、产品等。

最后,坚持自己所选择的,不要轻易放弃。

我经常会看到网上关于程序员中年危机、焦虑之类的文章,内心也会有一些焦虑。现在想想,其实完全没必要。感到焦虑或者感到危机的原因在于比较,你看到周围的人涨工资了,自己没涨,会感到一种危机,看到身边的同龄人发达了,感到自己被抛弃了,会感到自已很失败,同样也很产生焦虑。这都是外在的环境对你产生的影响,你还是你,只是对比之下,你会有一种挫败感,不要让这种感受持续太久,而打乱了自己学习的节奏。只要每天比昨天进步一点点,坚持学习,就没什么好焦虑的,那些文章大多也是贩卖焦虑,读完也没有什么收获,忽略就好。

猜你喜欢

转载自blog.csdn.net/somezz/article/details/83927546