震惊:编程或者软件开发竟然不算知识?

简介:

99a59267b76d38bef04dbc5ca56d38b09c566d85

自从上次看了业界大神阮一峰发的那篇文章之后,给我的印象非常的深刻,一直想写文章跟大家交流和探讨一下,那就是:软件开发到底算不算知识呢?

在探讨这个话题之前,我们先看看大神阮一峰是怎么说的,大致内容如下:

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

我最近总是在想这段话,软件开发算不算是真正的知识?

如果它是一种真正的知识,那么理论上,我们学到的东西大部分应该不会过时,就好像微积分不会过时一样。可是实际上,我们都知道,软件开发技能有时效性,十年前学习的编程知识,十年后几乎肯定不能用于生产。那样的话,软件开发就不能算真正的知识,只是一种实施的细节。

公司旁边有一家税务所,每天都有很多人排队交税。如果你是第一次来交税,肯定搞不清楚怎么交,交税是一门学问,必须有人教你,要带哪些证件,要填哪些表,去哪些窗口排队等等。

我现在认为,学习编程跟学习交税是一样的,都是学习实施的细节。一旦外部环境变了,原来的实施细节就没用了。 当代编程由于层层的抽象和封装,我们已经不必接触底层真正具有通用性的知识了。大部分时候,所谓编程就是在写某个抽象层的配置。比如,网页样式就是在写 CSS 配置,你很难说这到底是真正的知识,还是像《办税指南》那样的实施细节。

实施细节并不是知识,而是操作步骤。如果技术栈发生变更,实施细节就会毫无用处。但是,你又不能不学习它,不知道实施细节,就没法做出项目。我觉得,程序员应该要警惕,不要落入实施细节的陷阱,不要把全部精力花在实施细节上面,然后以为自己学到了真正的知识。对待各种语言和工具,正确的态度应该是“进得去,出得来”,既要了解足够的细节,也要能够站在宏观的角度看待它,探寻底层到底是怎么实现的。

看到这段话的时候,其实自己对于软件开发技术的更新迭代速度快,并不感到震惊,也不感到吃惊。毕竟,我们作为程序员对于技术发展的速度,更新换代的时间已经司空见惯,习以为常了。

但是,正式因为我们的司空见惯和习以为常导致我们对这样的问题就缺少了思考。

我比较震惊的是知识的概念。

如果说我们的软件开发和编程经验不属于知识,那它们属于什么呢?对,它们属于技术。但是,我们再思考一下,技术和知识又有什么关系呢?

知识应该是技术的基础,知识是根,技术是术。举个例子的话就是:知识就是交通规则,技术就是驾驶技术,有了技术你就能开车上路,但是要想安全行车,就必须还得懂交通规则。

知识是懂的原理,技术是知道怎么做。如果不懂知识,死记硬背,熟练练习技术,你能干活吗?能干,但是要想干好,那就必须得懂。就像开车一样,光学会了驾驶技术,但是要想安全行车,必须懂得交通规则。

那在深一层次的问,既然知识是技术的基础,我们编程,软件开发的根是什么呢?对,就是那些原理性的东西。比如,计算机系统原理,编译原理,算法等。

其实,知识这个概念到现在也没有一个明确的概念。知识是符合文明方向的,人类对物质世界以及精神世界探索的结果总和。知识,至今也没有一个统一而明确的界定。

就比如阮老师在上面说的微积分,微积分在现阶段我们的认知下,是正确的,但是在未来就不一定对了,也不一定能够满足和使用了。所以,它终究也可能会被淘汰。只不过这个科学基础性的知识的生命周期可能比较长,不容易更新换代一样。

就像我们现在的技术更新迭代快一样。软件开发的技术一直在更新迭代,但是计算机系统原理,编译原理更新的周期快吗?生命周期长吗?对,这些科学基础性的东西就如同微积分一样,不是它不会被淘汰,只不过是在现阶段的文明和人类的认知前提下,很难有进一步的突破,一旦有突破,也会淘汰。

不知道说了这么多,大家看懂了没有?其实讨论完这个话题之后,我们应该认识到,现阶段大部分的程序员都是忽视原理和基础的,都是在死记硬背软件的开发技术和流程,而很少去懂原理性的东西,这就是为什么很多人说我们程序员是吃青春饭的原因。因为熟练使用一种技能很容易被淘汰,而甚至原理性的东西,确实很难过时。

不知道看完这些,你们对这个话题有什么想法呢?你们认为软件开发属于知识吗?欢迎大家留言一起交流探讨一下。


原文发布时间为:2018-11-06 本文作者: loonggg 本文来自云栖社区合作伙伴“非著名程序员”,了解相关信息可以关注“非著名程序员”。


相关文章
|
程序员
程序员的奇怪规范:编程界的特殊文化
在程序员的世界里,有一些奇怪但又约定俗成的规范,这些规范看似荒谬,却成了编程行为的一部分,让人啼笑皆非。
|
6月前
|
程序员 数据处理 开发者
揭秘!程序员那些让人哭笑不得的“怪癖”:编程界的奇葩规范与隐秘文化大起底!
【8月更文挑战第25天】程序员的世界就像一片神秘且充满趣味的森林,每行代码都是探索未知的脚步。特殊的注释语言如“// 这里的逻辑比黑洞还深”,传递着程序员间的幽默与无奈。变量命名如magicNumber或函数名performUnexplainedMiracle,既随意又深藏设计者的思考与骄傲。代码审查不仅仅是技术讨论,更涉及编程哲学和个人偏好,甚至因空格与制表符之争而引发“战争”。程序员对代码整洁度的执着追求,展现了一种对美的追求。这些奇怪的习惯与规范构成了编程世界中独特而迷人的风景。
73 1
|
6月前
|
Java 程序员 Python
探索编程之美:从代码到哲学的思考之旅
【8月更文挑战第30天】编程,不仅仅是一种技术活,它更像是一扇通往深邃世界的窗户。本文将带你走进编程的世界,从一行行代码中,探寻其背后蕴含的哲理和美学。我们将一同体验从大学毕业的迷茫,到大胆尝试新领域的冒险旅程,再到通过不断学习和提升找到人生方向的过程。正如乔布斯所言:“人生中的每一个点都会在未来某个时刻连接起来。”让我们跟随代码的脚步,开启一场思考与实践交织的旅程。
|
9月前
|
存储 搜索推荐 程序员
SnippetsLab:程序员的秘密武器
SnippetsLab:程序员的秘密武器
281 0
|
9月前
|
数据采集 算法 Java
业余爱好者想入门编程,一定远离那些只会说No的家伙,尤其程序员
业余爱好者想入门编程,一定远离那些只会说No的家伙,尤其程序员
80 2
|
程序员
【程序人生】码农与软件工程师 究竟“差”在哪里
【程序人生】码农与软件工程师 究竟“差”在哪里
136 0
|
存储 算法 安全
2020年程序员/工程师必看的三本编程书籍
因为新冠肺炎疫情,很多同学都宅在家中,所以有大把的时间进行学习和充电。作为程序员或工程师的你,想要在代码方面更精进一步的话,应该看哪些书?
3724 0
2020年程序员/工程师必看的三本编程书籍
|
C语言 索引
初入职软件工程师的血泪——C语言内存优化
刚刚开始工作就被前辈训得一塌糊涂,特别是对于优化这一块没有一点潜意思,现在不得不重新学习代码优化。 对于优化C代码有很多有效的指导方针,但是对于彻底地了解编译器和你工作的机器依然无法取代,通常,加快程序的速度也会加大代码量。
1248 0
|
程序员
程序员大牛们的经典语录
原文 程序员大牛们的经典语录 1、很多问题不见得会出在你身上,但你亦需要想法解决问题,否则就会变成你的问题;   2、懂得但策略的说不(不会这个准备累死吧,程序员);     3、我考进事业单位,呵呵,没有传说中的那么好环境。
1312 0