软件开发算不算知识

3 月,跳不动了?>>> hot3.png

封面图:798艺术区,北京 ,2018

软件开发中知识是快餐性的

最近我在一篇文章中看到一个开发者说过这样一段话:

"大多数职业(从医生到电工),多年的经验等同于多年的专业知识。但是在软件开发中,技术变化如此之快,你花费了大量时间学习技术和工具,一旦这些技术被取代,你的知识将变得毫无价值,因为它们大部分都是实施的细节。最终,所有这些年,你确实积累了一些一般性的经验,但与具体实施相关的知识,你都不再掌握了。唯一留下的是那些基本的东西,你应该专注于软件开发的核心知识和数学知?识,您的这些技能会不断增长,而不是随着技术潮流的变化而消失。"

其中我个人感受较深的是其中这部分:

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

这句话我反复的想了很久似乎都没有找到可以反驳它的地方,也许在校的学生或是刚毕业不久的同学会认为他说的并不对。仁者见仁智者见智吧,接下来我会举一些我亲身经历的事情。

技术盛宴满桌快餐

我是2015年从学校毕业的,一毕业就进入了软件开发行业。在 java 领域内,2015年以前基本都是 struts2 , spring , hibernate 的天下,被合成为 SSH 。如果当时你要去找一份 Java 服务端开发的工作,不会这三个框架基本上是不可能找到工作的。到了 2016 年的时候市场主流技术发生了变化 ,spring mvc 取代了struts2 的地位 , mybatis 取代了 hibernate 的地位 ,spring boot 是基于 spring 开发的不过也属于一个新的产品,毕竟也是要花时间去学习的。微服务架构理念在市场上普及开来,各种 rpc 框架取代了以前的 webservice 技术,在微服务架构理念紧随其后的又提出了 service mesh 的理念。

前端方面以前大部分都是 jsp , freemark 等一些模板视图技术占据主流地位 , jquery , bootstrap ,之类的前端框架也是主流。随着发展前端推出了更多的框架技术如 vue , react , angular 等等。服务器运维方面容器技术如 docker 的兴起取代了虚拟机技术,自动化运维取代了人肉运维。

开发人员需要去学习,掌握这些新出现的技术和框架,这无疑需要花费大量的时间和精力。想把其中的任何一项学好都不是一件很容易的事情,为什么呢?如果你是一个开发者就会知道,因为每一项技术其中都包含了大量的细节,大量而且琐碎的细节,其中一个细节不对,一个参数设置的不对就有可能出问题。所以为了搞清楚这些细节就要花费大量的时间和精力去查文档,去翻看源码。

当开发者花了大量的时间去掌握了这些细节后,市场的主流需求又发生了改变,于是开发者为了适应市场的变化就需要再次投入到这样的过程当中。当某一个熟练掌握的技术被市场淘汰后,开发者所掌握的这些知识就几乎变得一文不值,还有价值的是在这个过程中沉淀下来的学习能力。

这就有点像是快餐店做炸鸡,今天客户喜欢吃麻辣味道的于是你花了2小时学会了如何制作麻辣味道的炸鸡。明天客户喜欢吃五香味道的,于是你又学会了如何制作五香味道的炸鸡。

学的快忘的快

快餐的特点就是快,软件开发的知识就是这样。学的快是因为市场的变化速度很快,忘得快也是因为市场的变化速度很快,因为你没有必要记住哪些多你来说没用的东西。那么我想软件开发到底算不算是知识呢?这又是一个仁者见仁智者见智的问题了,我个人认为软件开发不算是知识,只能算是一种技能。就像是学会如何做炸鸡一样,按照操作手册,第一步如何,第二步如何,第三步如何。

发布了132 篇原创文章 · 获赞 2 · 访问量 546

猜你喜欢

转载自blog.csdn.net/weixin_45839894/article/details/105198407