发布评论
评论(30)
农民是否因为使用自动化机器来种植、收割和维护农作物而变得更加愚蠢?
良好的任务自动化只会让程序员变得更高效,而不是更愚蠢。
那么我们为什么不告诉我们的孩子忘记学习数学呢,我们有计算器就是为了数学呢? 这难道不会让我们的孩子变得更笨吗?
计算器是一种允许您执行某些任务的工具。 当然,您可以进行复杂的数学和多变量积分,但是如果不学习数学,您怎么知道您需要在给定时间执行该任务?
与编程和 SDK 一样,您可以使用预定义的代码添加大量花哨的功能,但是当您需要编写一些东西来解决问题时,世界上所有的工具和自动化都无法帮助您那里(无论如何人工智能还没有那么先进;)。
平均而言,是的。 :)
它们不会让我们成为更愚蠢的程序员。 他们所做的就是允许出现更多愚蠢的程序员(我想这意味着,平均而言,我们更愚蠢。)拥有更好的工具意味着经验不足且对 CS 概念了解不深的人仍然可以编写出以下代码:最终起作用并做了一些有用的事情。 这在用汇编语言编写时是不可能的,但在用 VB 语言编写时却是可能的。 (当然,当经验不足的人编写大型应用程序并最终在其糟糕的架构的重压下崩溃时,最终发生 WTF 式灾难的可能性更大。)
不可否认,“愚蠢”在这里使用是一个煽动性的词。 仅仅因为某人知道得少并不意味着他们愚蠢,这只意味着他们经验不足。 但重点是可以理解的。
s/make/allow/
少一点油嘴滑舌:它们是工具。 工具不能制造任何东西,它们也不会让任何工匠变得更好或更差。 强大的工具也不会——它们只是充当杠杆,放大特定工匠的能力(或缺乏能力)。
一些编程工具具有降低进入壁垒的效果,即使不是软件工程专业,至少也能降低应用程序的运行壁垒。 缩短开发一个可用的(或“可用的”)应用程序所需的思考量是双向的:有能力的专家可以从繁琐的工作中解放出来,并可能做出伟大的事情,但笨手笨脚的新手有时会在生产中得到他们从未见过的糟糕代码。如果没有“智能”工具,就会开始工作。 在塑造 BASIC、VB、PHP 和最近大量的 Web MVC 快速开发框架的声誉方面,后一种效果可能比前一种效果产生了更大的影响,实际上也对此类工具的总体概念产生了更大的影响。
好吧,我拥有的前两台电脑是我自己组装的。 当时这很聪明,我不太确定现在这是否能很好地利用我的时间。 我在 80 年代初混合使用汇编程序和 BASIC 进行编程,当时还是很聪明,但现在不那么聪明了。
我在这里想说的是,环境已经发生了变化,在计算中,我们必须用知识的深度来换取知识的广度,并进行必要的“简化”。 为了支持“当今计算”所涵盖的应用程序的巨大复杂性和广度,我们还被迫在更高的抽象级别上工作。 一方面,我们看到领域应用专家使用高度抽象的工具提供非常好的解决方案,另一方面我们看到计算技术/编程专家编写出优秀的代码,有能力推动整个计算行业向前发展。 称任何一方愚蠢都是煽动性的,而且可能是辩论中唯一愚蠢的部分。
在这种情况下,简化只是让更多的受众能够使用现代计算机这样的有效工具。 这是一件好事,硬核程序员不应该感到受到威胁,毕竟这是他们的宝贝。
笨蛋? 不必要。 正如之前所说,拥有更智能的工具可以让开发人员专注于更重要的事情,例如使应用程序正常运行。 我自己职业生涯中的一个相关轶事:
我不是一个熟练的数学家。 我在微积分预科课程中没及格(好吧,当然,这是因为我从来没有做过作业),甚至对一些非常基本的物理公式(例如计算摩擦力)有点生疏。 这是因为我完全缺乏实践,这只是因为我从不使用它。
以导数为例。 如果你让我找到一个函数的导数,我会找到我的 TI-89,因为我不知道如何做到这一点。 然而——我认为这更重要——我知道如何使用它。 我知道它在哪里有用,为什么应该使用它,等等。点积是另一个例子。 我知道如何使用它来计算 3D 空间中表面的镜面反射,但我不知道如何手动计算它,因为我从来不需要这样做。
我不会因此而称自己更愚蠢。 也许不够实践,但同样有能力。
在某种程度上
例如,我不知道或不关心如何编写运算符重载,因为我有为我制作它们的工具。 我什至不必记住 P/invoke 是如何工作的,因为我拥有的工具会自动创建一个 C++ dll 项目,并在我的 C# 项目中创建一个 [DllImport]
。 我不必为我的项目编写自动更新程序,因为 ClickOnce 几乎就是这样。 (而且我不知道它在“幕后”是如何工作的。)
所以,是的,我不太聪明,因为我不知道 C++ 程序员知道的很多低级内容。 但我仍然认为我是胜利者,因为我可以完成更多工作。 我可以花更多的时间在演示、质量控制以及客户真正想要拥有的功能上。 此外,深入挖掘 .NET 框架确实需要一些学习,因此这是一个权衡。
我知道这是一个旧线程,但仍然想在这里发表我的意见...
它们确实让我们变得更愚蠢,你们中大多数做出反应的人已经知道如何以正确的方式编程。 为什么? 因为你来自一个几乎不使用框架的时代。
在教育系统中,越来越多的框架在课堂上使用,……在没有使用框架的课堂上,不鼓励开始编程。 学习所有这些代码,同时在您的脑海中您知道有一个工具可以为您完成这一切。 您知道在现场/工作场所,您必须使用框架才能快速进行。 那么为什么要花这么多时间学习代码呢?
SO:从短期来看,对于所有已经了解这些语言的人来说,不......它不会让你变得更笨。
从长远来看......你会看到低级程序员变得更好,优秀程序员变得更好等级更差。
记住我的话!
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
它们不会让优秀的程序员变得更笨,而是让他们更有效率; 但它们让愚蠢的人能够编程并认为自己是伟大的程序员。
澄清:我对愚蠢没有一个准确的定义。 我所说的“愚蠢”指的是一般性的事物,即那些不应该真正成为程序员或应该尝试学习重要事物的人。 我见过很多人无法真正编码,只是从各处复制东西。 软件质量评估并不是一件容易的事情。 他们最终构建了一个蹩脚的软件,但能以某种方式工作(由于存在好的工具),这样他们就不会失去工作,并且他们认为自己是优秀的程序员,因此,永远不应该尝试学习任何东西。 相信我,我在每个优秀的开发人员身上都看到了一件事:“他们永远不会停止学习,他们不会只去学习完成工作所需的代码。” 我谈到的那些人从不尝试学习超出他们需要的东西,而伟大的工具可以减少这种“需要”。
这并不意味着 IDE 不好。 我爱他们,并认为他们应该尽可能得到发展。
They don't make good programmers dumber, they make them more productive; but they make dumber people be able to program and think they are great programmers.
Clarification: I don't have a precise definition for being dumb. From dumb I mean a general thing that is people who shouldn't really be programmers or should try to learn important things. I have seen lots of people who can't really code and just copy stuff from here and there. Software quality assessment is not an easy thing. They finally build a crappy software that works somehow (due to existence of good tools) so they don't lose their jobs and they think they are good programmers and therefore, should never try to learn anything. Believe me, there is one thing I've seen in every good developer: "They never stop learning, and they don't go to learn just the piece of code they need to complete their job." Those people I talked about never try to learn anything beyond what they need and great tools reduce this "need".
This doesn't mean IDEs are bad. I love them and think they should be developed as much as possible.