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

简介:

99a59267b76d38bef04dbc5ca56d38b09c566d85

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


相关文章
|
3月前
|
程序员 Python
探索编程之旅:从代码到思考的蜕变
【8月更文挑战第33天】在数字世界的迷宫中,编程不仅仅是一种技能,它更是一扇打开思维新境界的大门。本篇文章将带你走进编程的世界,体验从简单代码到复杂逻辑的思考过程,以及这一旅程如何深刻影响我们的思维方式和解决问题的策略。通过具体案例和个人感悟,我们将一起探索编程背后的哲学和生活的启示。
代码之美:从混乱到秩序的编程旅程
在编程的世界里,代码不仅仅是冷冰冰的文字和符号的组合。它们是思想的载体,是解决问题的工具,更是艺术与科学的结晶。本文将带你领略编程过程中的美学,从最初的混乱无序到最终的清晰有序,探索如何通过良好的设计原则、清晰的逻辑结构以及持续的重构来提升代码质量,从而使得代码不仅能够高效运行,还能成为令人赏心悦目的艺术品。
代码之舞:我的编程之旅与技术感悟
在数字世界的无限舞台上,每一行代码都像是精心编排的舞步,共同谱写着技术的交响曲。本文将带领读者穿梭于编程的世界,探索那些隐藏在逻辑严谨与创新自由之间的奥秘。从最初的迷茫到渐渐的熟练,每一次的挑战都是自我提升的机会。文章旨在分享个人的技术成长历程,展现编程之美,并鼓励更多的技术爱好者踏上属于自己的代码之旅。我们将一同见证,如何在细节中追求完美,在复杂中寻找简单,最终在技术的海洋里找到自己的航道。
|
7月前
|
存储 搜索推荐 程序员
SnippetsLab:程序员的秘密武器
SnippetsLab:程序员的秘密武器
247 0
|
设计模式 数据采集 程序员
代码整洁之道--告别码农,做一个有思想的程序员
代码整洁是软件长期稳定和可扩展的基础,本文作者从现实中的代码、重构、设计模式谈论代码整洁之道,总结出如何做一个有思想的程序员。
131424 58
|
7月前
|
数据采集 算法 Java
业余爱好者想入门编程,一定远离那些只会说No的家伙,尤其程序员
业余爱好者想入门编程,一定远离那些只会说No的家伙,尤其程序员
71 2
|
程序员
【程序人生】码农与软件工程师 究竟“差”在哪里
【程序人生】码农与软件工程师 究竟“差”在哪里
126 0