如何向非程序员解释编程不是重复性的任务?[关闭]


11

有些人认为编程只是在键盘上重复键入而已。这些都不是真的。首先,除了实际键入代码外,您还有很多工作要做,例如设计架构等。其次,这可能是一个变化很大的,非重复性的任务,新挑战不断出现。

您应该如何解释编程对非程序员而言不是重复性任务?


5
问,他们的工作是重复性的吗?如果这样的话,那么,对他们来说很烂,他们可能不知道富有创造力和多样化的职业所带来的快乐。如果不是,请说完全相同。
Mark Canlas

4
@马克·坎拉斯:好点。这些人(以编程作为重复打字的观点)从事哪些工作?您可能会在他们的日常工作中指出一些肤浅的重复性,并将他们的工作简化为“重复性的东西”,然后要求他们解释为什么不是这样
FrustratedWithFormsDesigner

14
如果重复,说明您做错了。

1
该声明是一般性的。一遍又一遍地做同一件事时,许多任务都做错了。只是将汽车零件粘在一起?设计一个机器人来做(当然,假设可以,如果没有,抱歉,您会丢掉工作)。只是将机器人零件粘在一起?建造一个机器人来建造机器人;)基本上是编程。添加更多层以实现无限的非重复性。

2
说足球是一项重复性运动(每个人都在做同样的事情,踢足球)。
apoorv020 2011年

Answers:


31

给他们例子,他们可以与之相关。

网球是重复性的。您只要一直将球一直打到球网的另一侧即可。

足球是重复性的。您每次都会不断踢球直到找到球门柱。

弹钢琴是重复性的。您继续在板上移动手指。

该死的,真无聊!!!


3
网球,足球和钢琴演奏无聊,在某种程度上编程是没有的。在所有这些追求中,一个人反复面对相同的情况,必须做同样的事情。但是,正如其他答案所指出的那样,在编程中,如果两次遇到相同的情况,那就错了。
Avi

1
@Avi同样的编程方式使网球或钢琴变得无聊,因此这确实是一个有争议的论点。
Maurycy

18

您总是可以说,编程是重复打字,而写作散文是重复打字。一个人坐着并仔细地把字母放在一起,会写出一部伟大的(甚至平庸的)小说吗?


18

好吧,在某种程度上。您重复一遍又一遍地键入相同的字母(AZ,az,0-9)。只是以不同的组合。

我通常会尽量避免与此类人进行此类讨论。


1
@Rook-好的建议。
John Shaft

4
+1。使我想起书和字母之间的很好的比较。(松散地翻译为:字母是字母的集合,在结构和内容上都超过书籍。在书中,字母全都混杂在一起,字母中的字母则依次以升序书写。
back2dos

1
我希望您不要避开所有对您感兴趣的人。

3
@Rook:有人问关于编程世界的问题是一件幸事。不要回避它们。与他们交谈。尽你所能地。

4
我尝试使用标点符号来混合使用。AZ对我来说不够有趣。
MJB

13

编程就像音乐创作。这远不是一个重复的过程。

  • 您开始考虑所需实现的总体视图
  • 您只考虑构图的一小部分,然后写下来
  • 完成后,您可以播放它(在Visual Studio中为F5)
  • 您根据需要重复该过程
  • 有时您会借用想法或受到其他合成器的启发
  • 有时,您通过移动或重新制作声部来重构歌曲

有时,您不知道想要什么,然后在玩耍。可能是获得最有趣的构图的最好方法...


1
哈哈... +1进行播放(在Visual Studio中为F5)。现在,如果我只能在吉他上添加F5键...
JasCav 2011年

3
-1 for Visual Studio;)
乔丹,

Pierre,虽然不同意您对OP的总体反应,但我不同意音乐创作与编程相似。成分是很难-我想我把它合理地在这个岗位:linkedin.com/...
azheglov

1
@azheglov:基于什么更难?任何人都可以撰写。现在很少有人会上MTV,就像我们中很少有人会接受CNN采访一样

即使说作曲“更难”,CS的问题也可以弥补:每行代码可能比单个音符更容易编写,因此我们的项目中实际上包含数百万(甚至更多)代码行。因此,即使每个原子动作都比较简单,也只是期望最好的程序员解决更棘手的问题。
2011年

4

我通常会解释说编程是创造性的问题解决方案。您遇到了问题-您想要产品中的功能(而且我通常会选择一个知名产品,Amazon.com,MS Word等),而现在还不存在。从来没有做过,而且您是第一个,因此就像任何艺术项目一样-您有远见,但您需要找出道路。

我还关注以下事实:解决问题的方法不只一种,还有很多非常糟糕的方法,而且可能还有不止一种好的方法。从长远来看,可能会有最好的方法,但是最好的方法在很长一段时间内都不是显而易见的(可扩展性,可重用性等),因此在开发时,有很多重要的判断要求。

最后,最终产品可能会受到接收者的喜爱或讨厌。就像有些人喜欢毕加索,而有些人却不能在现代艺术中起头落尾—有些人可能喜欢某项功能,而有些人可能讨厌它。您会为大多数人尽力而为,而无法让所有人满意。

专注于:

  • 未知领域
  • 没有人回答
  • 待解释

表明这件作品更像是艺术品,而不是重复无聊的作品。

我经常与艺术家讨论这个问题(他们似乎有一种本能的信念,认为计算机工作是非创造力的。通常,我也可以设法将其与艺术家最喜欢的艺术形式联系起来。从某种程度上说,大多数艺术家也是技术人员-绘画,跳舞,制作音乐以及可能还有其他艺术作品-都涉及一系列重复性活动,这些都可以带您执行新的,与众不同的和富有创造力的事物,这样一来,艺术家通常很难否认似乎重复的活动可以导致灵感和美丽的作品。

那时,他们通常愿意承认,仅仅因为我的“艺术”包含了一组看起来很古怪的语法语句和看上去平淡无奇的UML图,这并不意味着它没有创造力,因为这些代码行和系统的模型最终会产生与部分总和完全不同的东西。


2
我自己是一名艺术家,我喜欢这种比较。这对于大多数类型的艺术家以及与艺术活动有关的艺术家都是有意义的。(我不确定是否有非艺术家。)
DarenW 2011年

3

编程是关于抽象的。您写得越多,您就会看到更多相似之处。但是到了抽象的时候了。通过重构,框架得以发展,消除了重复。这降低了问题域代码的复杂性。

重复编程是可能的。但这是低效的。


当编码变得非常重复时+1,这表明“也许您做错了!”
FrustratedWithFormsDesigner

3

如果确实如此,我们将只使用复制粘贴:D

编程中的主要挑战之一是打造高质量的构建块,从而使您

  • 可以使用它们来构建您的实体组件大厦(即您正在构建的软件),从而提高稳定性
  • 可以在同一建筑物甚至不同建筑物中多次重复使用它们(以减少重复),从而提高您的生产率
  • 将能够在不导致整个建筑物倒塌的情况下更换街区,从而增加了本地灵活性
  • 将能够一次更改块的所有实例,从而提高全局灵活性

从本质上讲,这一挑战要求您不要重复自己

必然的结果:如果您重复自己成为一名程序员,则会浪费时间来构建既不稳定又不灵活的软件。


1

除了指出重复性或键入/单击是如何肤浅的其他答案外,您还可以指出编程通常更多地是解决问题而不是键入(我认为正是Djikstra认为计算机科学是与计算机有关的天文学与望远镜有关- 或类似的东西)。

键入只是实现解决方案的一种方法(目前是最受欢迎的一种方法),尽管还有其他方法,例如:

  • 白板上的伪代码(不幸的是,它说明了解决方案,但实际上并未运行或做任何事情)
  • 打孔卡(现在已过时)
  • 也许是可编程逻辑阵列,或者如果您想直接在硬件中实现您的解决方案(尽管大多数情况下可能会有一些打字将解决方案从您的大脑转移到PLA,但我不知道对这些代码进行“编码”有多么普遍事情直接进行-我并没有真正与他们合作,只是从其他人那里了解他们)。
  • 人(我听说最近有一群人将一种分类算法当作舞蹈来实现)
  • 在沙漠中的岩石。;)

0

编程的大部分行为是打字。绘画涉及用刷子抚摸,但重复性的表达是很肤浅的。

他们会将这种逻辑应用于:-销售人员经常在电话上交谈。-经理去参加很多会议。-歌手刚唱歌。-演员重复剧本。

如果是这样,这就是为什么他们不是程序员。


-2

如果您想擅长编程,那么它是重复性的,但是对于任何事情都可以这样说。重复是掌握任何技能的核心。


-2

好的编程确实是一项非常重复的任务。尤其是在构建完基础架构之后,就开始无聊地反复构建相同的对话框/业务软件(只是略有不同)。如果您不必参加截止日期或您有足够的初级人员从事此类工作,那么您会很幸运。


1
我想这取决于您从事的工作
Anto
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.