关于编程问题,最荒谬的神话是什么?


101

换句话说,您遇到的最常见的,令人沮丧的编程误解是什么?

您发现程序员难以消除/纠正哪些广泛而长期的神话/误解。

请解释为什么这是一个神话。


24
我希望Mythbusters承担其中的一些责任。
海绵

8
有人想加入Mythbuggers YouTube频道吗?:-)
Tamara Wijsman 2010年

1
呜呜,MythBuster和比赛条件!米萨喜欢!

@TomWij拥有这样名称的网站太好了!
Junior M 2010年

Answers:


272

那是因为您是一名程序员,所以您知道如何修复[person]病毒缠身的计算机。


34
汽车类比/下车条款:“我是赛车手,不是机械师。”
彼得·布顿



21
@Tim如果她会做饭,那就开始自愿邀请她参加朋友的聚会
Steven A. Lowe 2010年

19
不是我不知道该怎么做...我不是要浪费时间修理您的机器,否则您将在2周内破产。
ChaosPandion 2010年

267

在求职时让我发疯的常见人力资源问题:所有编码技能都是特定于语言的隐性假设,即没有超越命令集的软件工程专业知识。在Java方面有10年的经验,在Perl中又有5年的经验,这意味着您对使用C#的项目完全没有用。

“是的,这里有一个学习曲线。但是我做了比这更艰难的过渡。我会给您一个协议,如果我不愿意的话,请给我第一个月和那一月底的80%的报酬……哦,等等,我们实际上并没有进行此对话,因为您的HR猴子只是删除了我的应用程序。”


91
HR猴子的+ INF。
Rusty

67
我有一个人力资源专家拒绝了我的职位,因为我知道C#的知识,但是他正在寻找可以在dotNet中进行编码的人。
burnt_hand

11
@burnt_hand:是的,我知道dotNet。我也知道Excel和Internet Explorer。我现在可以签合同了吗?
艾伦·梅

尽管我同意Java和C#之间在语法,结构,SDLC等方面存在大量重叠,但是如果它们在面试中为您提供了一些相当棘手的C#测试,您会如何表现?
JBR威尔金森

2
@Kyralessa-我想我现在对计算的基本理论和计算机功能已经足够了解,不会在任何编程语言中造成基本错误。我可以阅读文档。但是,语言技能有限/意愿/所雇用的特定人员所做的事情是在程序的结构,设计,正确性,可伸缩性,可靠性和可维护性方面造成基本错误,这可能会花费大量的修复成本。如果同时由于软件质量低而没有失去所有客户(假设您的项目实际上无处不在)。
flamingpenguin 2010年

261

如果您没有键入,则说明您无法使用。

我相信僵尸的空白凝视和咖啡漫步对于程序员组织头脑中的事情至关重要。


9
向上翻页,向下翻页...向上翻页,向下翻页...
阿道夫·大蒜

139
我不付钱打字,我付钱思考。我提供打字作为奖励。
Kevin Laity 2010年


11
这就是为什么我对在线自由职业市场的评价不高的原因,这些市场通过屏幕抓取器和网络摄像头提供录制“工作时间”的信息。WTF?如果你觉得我的报价是很好的,你为什么要关心它是什么究竟,我在我充电的时间吗?
艾伦·梅

10
“如果我有更多的时间来编写代码,那么我写的行会更少。” -以安倍·林肯的名言起飞。
JeffO 2010年

158

您可以通过吸引更多人来加快后期项目的速度。


28
啊,来自《神话人月》。en.wikipedia.org/wiki/The_Mythical_Man-Month
海棉

2
其实,可以。-1(是的,看上一个神话载体!)
P Shved'9

63
我们用色彩鲜艳的谚语说:“你不能让9名妇女进入一个房间并在一个月内生一个孩​​子”。
Walter 2010年

10
上周,我们增加了4名没有项目经验的人员来“帮助”满足不切实际的时间表。该项目本周的报告引至高层管理人员名单:“计划延误原因:由于新团队成员的学习曲线而导致效率降低”和“恢复计划:在有机会的地方继续增加人员”。难以置信。
AShelly

7
@Walter,但您可以在9个月内生育9个婴儿,在7年内拥有一支小联盟的棒球队。
2010年

132

那个写软件很容易。

您还如何解释所有这些随着时间和预算超出预算的项目,并且人们(政客,媒体等)仍然感到惊讶,并且当您告诉他们“小型网站”(或其他内容)实际上需要6个客户时,客户会抱怨一个月的开发时间并花费数千美元(英镑,欧元,[选择插入的货币])

由于需求模糊且不断变化,我有时认为任何软件都能完成都令人惊奇!

我知道这要复杂得多;)


11
而这正是他们试图将开发项目推向更便宜的离岸替代品的时候。后来才发现它变得更加昂贵。由于开发团队和客户之间的物理隔离和沟通挑战,他们真正需要的东西更少了。
2010年

1
这不仅是管理人员之间的问题,也是程序员本身的问题。真正的问题往往是,经常浪费没有花费在主动编写代码上的时间(可能是由于广泛的LOC =生产率量化神话)。
艾伦·梅

3
并不是需求发生了变化,这不是他们认为想要的。
JeffO 2010年

1
我曾有人认为编程只是“一堆'if'语句”。好吧,也许这是......在这种情况下,诗是“只是一堆话” ......电影制作是“只是一堆场面”等
JoelFan

2
我曾经为那种类型的经理工作过,他认为编程工作是工作的轻松部分。不,他自己没有任何编程经验。
明智船长

114

应用程序的复杂度与UI的复杂度成正比。通过这种推理,您应该能够在一个周末内建立Google或Twitter。


2
没错,我可以在一个周末内建立Twitter和Google。并不是他们的软件很复杂。对于Google来说,这是他们的搜索算法(与代码库或数据库驱动程序相比更具可比性),而Twitter(直到最近1.5年)非常简单,只有可伸缩性和数据库问题很复杂。现在,它变得更加复杂(需要更多的员工),它还具有更加复杂的用户界面,以及更多的用户界面。
orokusaki 2010年

3
我想我是在Joel Spolsky的博客上阅读的,但是提到的文章仅显示了与后端进度相关的GUI进度。这样,您可以对那些笨拙而又愚蠢到无法理解大多数程序所包含的内容远不止于眼球的家伙,给出一个实际的进度估计。
Evan Plaice 2010年

3
1+曾经有一段时间,我花了数小时来处理复杂的后端代码,并向我的前老板演示了一个SharePoint相关项目(多语言插件)。最终的结果是在UI上没有做太多事情,这使我的老板相信在该项目上没有做太多事情。这让我很生气。他不是几个小时试图解决SharePoint的怪异之处以及文本替换逻辑的人。
杰森·埃文斯

1
当某些巨大的,几乎不可能的请求被表述为“您可以添加一个按钮来做...”时,您不讨厌吗
JoelFan 2010年

我想知道最近几年我一直在做什么。我专职从事的所有这些项目都应该立即完成,因为它们根本没有任何UI。:-)
Bart van Ingen Schenau 2011年

95

所有程序员都擅长数学。:-)


评论员:评论旨在寻求澄清,而不是进行扩展讨论。如果您有解决方案,请留下答案。如果您的解决方案已经发布,请对其进行投票。如果您想与其他人讨论这个问题,请使用chat。有关更多信息,请参见FAQ

我认为数学能力与编程技能有某种联系。
迭戈

@Diego:尽管这并不一定意味着所有程序员都擅长数学。
欧米茄

95

任何使用计算机进行黑客攻击的少年都等同于(或优于)经验丰富的程序员。

我14岁的侄子擅长使用计算机,我每小时付给他10美元,用以修剪草坪。我为什么要付给你六个数字来写下一本FaceBook?


5
他们可能处于自己的环境中,即按照自己的标准工作。将他们置于必须沟通的团队中,这就是他们遭受的苦难。
阿道夫·大蒜

36
反问题可能是:“您会付给他多少钱来盖房子?”

7
一个没有资格但写得很好的代码的孩子可以在任何一天击败Spaghetti先生。
Zaz 2010年

13
我为此怪罪于好莱坞
MAK 2010年

6
当我刚开始的时候,我期望自己在uni上学到的东西仅仅是开始,并且我将与经验丰富的人一起工作,这些人是更好的程序员和知识渊博的开发人员,我将学习他们很多。经验告诉我,否则。这绝对重要,但是没有技巧和热情,经验就是浪费时间。
彼得·布顿

69

这种实时意味着快。

声明“数据包需要实时处理”。毫无价值,邪恶的双胞胎……回答“ X需要多快发生一次?” 使用“实时”可能会比一文不值……愚蠢而不是愚昧无知。

简而言之,实时是指函数Y总是要花费X的时间,任何偏差都表示严重的错误。X的持续时间未定义“实时”,可能为6微秒或6天。您可以确定函数Y将花费X的时间定义为“实时”。通过此定义,实时系统是确定性的。

所以把它关掉..


实时=接近时间
brian chandley 2010年

4
我一直认为实时意味着您需要的是正在发生的一切,而不是所花费的时间。
burnt_hand 2010年

14
这可能只是名称不当导致混乱的情况之一。
JohnFx 2010年

2
@JohnFx好吧。概念需要上下文。
生锈

2
@Richard:确实,iTunes总是需要几分钟才能播放任何内容。哦,那不是你的意思?
configurator

69

你们为什么不直接在第一时间就写正确的代码,而不是花很多时间输入错误的代码,然后再阅读代码以尝试查找错误呢?

:-) :-) :-) :-)


34
坦白说,这是一个好问题。使代码良好的最简单时间是第一次编写代码。
DJClayworth 2010年

10
我们在应用程序配置中有一个设置:<add Key =“ Bugs” Value =“ true” />
burnt_hand 2010年

1
@DJClayworth-并不总是有效。在某些情况下,问题是如此之大,定义不清或很难解决,以至于第一次接近“正确”就太难了。在这种情况下,最好写一个并非完全错误的“初剪”,而不是花数天,数周,数月的时间进行不断的设计和重新设计,以使第一次正确。
斯蒂芬·C

这可能是外行的版本,“你们为什么不做TDD?” 公平地说,如果对于现实世界的开发而言过于简单,那将是一个令人生畏的好问题。
丹·雷

1
@Stephen C:是的,但要使其正确执行(而不是完全正确)与几乎要做任何左右操作才能使它正常工作是有区别的。我知道这不是您所说的,但我仍然认为有必要说。
n1ckp 2010年

65

如果你没有上大学,那你就不适合这份工作


27
同样:有学位的程序员比没有学位的程序员更好,并且应该相应地给予报酬。年龄歧视和性别歧视也可能如此。这种胡说八道让我很生气-如果您不知道如何编写好的代码,那么我不会在乎您去了哪里以及您做了什么。这可能是程序员/书呆子文化(技能==权威)与公司文化(等级==权威)冲突的另一种情况。
艾伦·梅

1
然而,大学的教学人员似乎也认为,通过观察学生在组队时的操作方式,他们可以概括程序员和项目的行为。ACM的通讯每年适合4-6篇这样的文章。
MIA 2010年

1
@Billy在这里,大学文凭意味着杰克,但是大学文凭会给你一切吗?两者都上学,可以说都比其他人要好,但是有一个社会学上的差异
Tarka 2010年

4
@Billy:在加拿大,大学会授予您学位,而大学会给您文凭。大学更像是“学习实用知识的学校”。想一想美国的社区学院与普通学院/大学。在这里,他们通常有两年的专业化应用程序。你不能从大学获得学士学位(硕士等)。基本上,您会去大学学习如何编写软件,然后去大学学习计算机科学。大学学位在招聘方面具有更大的偏爱。
亚当李尔

4
大学至少要教一件事:思维定势。这是非常重要的,但是那些不知道的人……不知道。

61

过早的优化意味着您根本不应该进行优化。我看到的数据库更加糟糕,因为没有人愿意考虑设计的性能(对任何数据库系统都至关重要),因为这是过早的优化,而不是其他任何数据库设计问题。垃圾,有已知的性能杀手,请停止使用它们作为首选。

另一个神话,重构数据库太难了。不,但是您必须考虑在设计阶段如何进行重构才能有效地进行重构。顺便说一句,您等待解决这个烦人的基于设计的性能问题的时间越长,修复的难度就越大。

另一个错误的说法是,数据库设计应反映OOP原则。不,数据库被设计为使用集合而不是OOP原则。一些OOP事情会导致可怕的性能问题,而其他一些事情就数据库而言只是愚蠢的痛苦。

最后,您应该在应用程序中强制执行数据完整性。数据库将持续到应用程序的最后,并且在替换应用程序时将丢失规则,多个应用程序将访问它们,并且经常需要运行直接查询来解决无法通过应用程序的问题。我从未见过在拥有良好数据的datbase中拒绝执行强制数据完整性的数据库。


+1特别是关于数据库完整性检查的注释。
Frank Shearar 2010年

+1特别是对于最后一段。我已经不止一次地敲打那鼓。
Binary Worrier 2010年

5
+1为第一段。过早的优化是万恶之源。无缘无故地编写错误的代码甚至更糟。
configurator

3
“某些OOP事情将导致可怕的性能问题,而另一些则只是数据库方面的愚蠢之举”-您能说哪个?我了解OOP,但对数据库知之甚少,而且我对我能将想法从另一端传递到另一端的程度感兴趣。
汤姆·安德森

@HLGEM我也会对示例感兴趣@Tom想知道...
Armand

53

绝对最佳实践有一些神话般的渊源。

没有偏差是没有道理的。

从来没有人质疑声称将某种事物定义为最佳实践的文档。


1
比您的经理更好的团队成员...
比尔2010年

5
你能把那个文件转发给我吗?
AShelly

1
完全同意。谁在乎您是否在Python代码中混合使用制表符和空格?
Zaz 2010年

4
@Josh-必须使用工具链查看您的源代码的人,而该工具链对选项卡位置的位置有不同的想法。
斯蒂芬·C

1
我将“这是最佳做法”解释为“我无法证明这一点”。我当然会自己使用它。
汤姆·安德森

51

市场营销似乎认为添加大量小功能比添加单个但很繁重的功能要容易得多。这可能是误解“任务切换没有开销”的更具体的情况。


12
营销中更有趣的事情是不知道哪个功能简单,哪些功能几乎不可能。
derobert 2010年

4
@derobert确实,我经常经历过一些体贴的营销人员实际上甚至不敢问他们认为很难实施的一些简单/易用的功能。虽然我的经历相反更oftenly:这里有一个批次X的我们已经出售给顾客“易”功能,请把它昨天做....
GIEL

50

该注释代码是不必要的,或者“好的代码不需要注释”。有时您需要解释复杂的代码在做什么。此外,注释代码段可帮助您更有效地略读。


14
@DisgruntledGoad-的确如此。对这个“神话”的误解来自于这样一个事实,即太多的程序员认为他们的令人困惑的整体代码是“好”的。if user.is_logged_in: print('Welcome')不需要评论。
orokusaki 2010年

3
@orokusaki并非每个算法都这么简单。
Jouke van der Maas

25
@orokusaki您误以为“好的代码不需要注释”和“简单的代码不需要注释”。好的代码并不总是那么简单。
DisgruntledGoat

3
@Jouke van der Mass:当然。但是算法的复杂程度无关紧要,目标是简单地表达算法。即,良好的代码以简单且明确易懂的方式表示复杂的算法,规则,优化。简单地表达简单的事情相对容易。表达复杂的东西只是技能所在。
flamingpenguin 2010年

2
@orokuskai:好的代码很简单。它所做的事情可能很复杂,但是我认为代码的简单(优雅)才是好的!当然,代码还可以做很多其他事情,垃圾代码可以使您赚很多钱。但是我的目标是即使在复杂的情况下也可以编写简单的代码。
flamingpenguin 2010年

50

最糟糕的神话:如果您长时间编程,那么您可以轻松地成为项目经理。

如果您已经进行了很长时间的编程,那么您应该成为项目经理。


3
甚至更糟的是,如果您从未编程或管理过编程项目,请阅读几本书,然后神奇地制作出软件。上次下午一直走在那条路上,只要我活着就不必再重复一遍。
Evan Plaice 2010年

4
更糟糕的是:由于团队中所有优秀的程序员都喜欢编写代码而不是编写报告,因此我们应该将普通的程序员提升为Project Manager。当时的想法是,他将“足够技术上”。事实是,他最终成为团队和高层管理人员之间的虚假信息过滤器。
AShelly

2
另外:如果您是最好的程序员,那么您显然应该成为项目经理,从那以后停止自己进行任何实际的编程!不,非常感谢,但我仍然加薪。注意:我并不是在谈论成为一名首席程序员或其他类似的事情,而是在谈论那些认为将每个人提升到足够无能的水平的聪明主意的经理。
艾伦·梅


说得确实好
迈克尔·

50

如果我们在项目中使用Java,C#和C ++之外的其他工具,我们将找不到支持它的程序员。


我从未听说过,但这是有效的。当然,如果您使用晦涩的语言,那将会发生。
Maniero

5
@bigown,“晦涩”?多么晦涩?TCL模糊吗?哈斯克尔?帕斯卡(德尔福)?蟒蛇?我认为他们并不模糊。许多人认为是这样,并且在“严重”开发中只允许使用非常狭窄的一组语言(C ++,C#和Java)。
P Shved

5
@bigown:哦,您是说像COBOL一样晦涩?:p
AnonJr

2
我曾经在一家在Linux上执行Objective-C代码的小公司工作。这位首席执行官不是工程师,但具有一定的技术知识。他不敢相信周围有ObjC程序员,也没有其他人使用过它。实际上,他们雇用优秀的开发人员从来没有任何问题。

4
我读过一个论点,事实恰恰相反:对于晦涩(或至少在商业上微不足道)但又酷,有趣,有趣(在此上下文中表示Python和Ruby)的语言,程序员比工作多。另外,他们都是喜欢酷,有趣和有趣的语言的人,因此他们必须很聪明。因此,实际上,使用Python意味着与使用Java相比,您会发现雇用聪明的程序员更容易。不知道我是否相信,但这至少与正统观念一样合理!
汤姆·安德森

42

Java只是具有不同类的C ++。


57
+1我曾经有一个面试官问我,“ C ++和Java有什么区别?” 所以我列出了一些区别。本机编译器与JVM,ANSI标准与专有,垃圾回收,类加载器等。他大吼:“错!没有区别!它们是相同的!” 他不是学生,他是工程经理。
Bill Karwin 2010年

11
@Bill,然后我的回答是:“那为什么要用完全不同的名称来称呼他们呢?”
Jesse C. Slicer 2010年

2
@Bill,所以您考试不及格而被录用了吗?

20
我的回答是“再见”。
Foole 2010年

6
@Foole您不是要说System.exit(1)吗?
巴里·布朗


33

因为它很容易被接受,所以我见过的最危险的代码可能是能够快速编写代码是件好事,因此,您可以越快地用给定语言编写代码[在此处插入功能],该语言就越好是。

这是过早优化的一个典型例子,因为维护代码要比创建代码花费更多的工作。这意味着编写易于阅读,理解和调试的代码比易于快速编写的代码更为重要,而促进易于阅读的代码是衡量语言质量的更有用的方法。


14
这正是我工作的公司的其中一种产品所发生的;匆忙的发展被视为辉煌。产品看起来不错,开发人员得到了高层管理人员的高度评价。然后,另一位初级开发人员的任务是修复一个“小”错误,并在尝试理解代码一周后,放弃并寻求了一位资深指导。.一位无法相信该代码有多垃圾。高层管理人员拒绝接受是两年一个主要问题,在此之后,最终同意这是垃圾一堆,需要从头开始重新编码-正好这段时间
Sk93

4
技术经理之间有一个公认的神话,即熟练的开发人员的生产率是非熟练的开发人员的十倍。这个神话的直接结果是,任何能够迅速生产代码的开发人员,无论其越野车或难以维护的方式,都得到好评和晋升。
rtperson 2010年

3
需要一种强大的语言。请参阅Paul Grahams有关语言以及ti使您能够执行的操作的讨论:paulgraham.com/power.html

4
@Thorbjørn:我看过那篇文章,而Paul Graham错了。他是Lisp的拥护者,因此他将事实转化为自私的论点,以使Lisp看起来不错。甚至没有意识,因为它实际上并不需要太多扭曲。正如他在文章结尾指出的那样,可读性和简洁性之间有很多重叠之处。但是他得出的结论与现实世界中的软件开发状况完全不同步。是的,您需要一门强大的语言,但是他用错误的标准来衡量能力,相信他所说的话是有害的。
梅森惠勒2010年

3
@rtperson:生产率可以相差十倍,这并不是什么神话。快速完成的人肯定会更有生产力。
David Thornley 2010年

31

制造课程可以应用于软件开发过程。


6
取决于课程。当我在床垫工厂工作时,我们了解到任务切换对我们的生产有害。Kinda很重要,因为我们支付的床垫数量而不是小时的费用……以及出于许多相同原因在这里也适用的一课。
AnonJr 2010年

当您在主要制造硬件的地方工作时,这就是一个持久的神话。我们跳进来将我们的软件“构建”调整为与硬件“零件”相同的模型时所遇到的
麻烦

5
事实是,制造软件是微不足道的。制作副本很容易,制作数百万份副本并不需要花费太多。这导致人们完全忽略了制造部分,而试图将制造应用于设计过程。
David Thornley,2010年

为此+100,尤其是研究经济学的人认为这是
必要的

1
每个人都应该阅读Jack Reeves:developerdotstar.com/mag/articles/reeves_design_main.html-这是源代码是设计而非产品的观点的起源(或者至少是早期而有力的陈述)。程序员就像制图室的设计师,而不是工厂车间的机械师,编程的管理必须像其他工程设计的管理,而不是制造。
汤姆·安德森

31

作为一名程序员,您了解最新的硬件趋势,超频,Case Mod等方面的一切。亲朋好友在购买设备时会向您咨询。


5
我以前在高中时就一直关注这些事情,但如今我发现它们通常与我所做的事情无关,尽管有些事情很整洁,但我宁愿付钱给一个知道他们的东西并花些时间的人保存做我喜欢的事情(即编写代码)。也许是另一个“对计算机有益”的误解。
艾伦·梅尔

2
+1或切线略微偏离-因为您是一名程序员,所以您有一个超级傻瓜式水冷300 LED风扇旋转自发光,这是制造工厂发布之前崭新的产品系列。真的不是嘛!它是一台速度相当快的机器,它的黑色非常便宜。真的不在乎!
外科编码

Laugh,有一个PM助理在工作,他在家中有一些全能的游戏平台,总是翻到Dev区域询问他是否应该购买(A产品)或(B产品)...还假设开发团队全都在4Chan上闲逛,(他实际上是这样做的。)– 叹气
ocodo 2011年

+1字。这是现场。我是一名软件开发人员,曾被要求配置某人的互联网很多次,基本上我所做的就是反复试验和Google搜索。当您帮忙一个人之后完全不相关的事情中断了,这是您的错时,我最喜欢它。
安妮·舒斯勒

30

当程序员说很难/根本不可能做到时,HR认为他们很懒惰而且没有动力


2
包括管理太
Prasham

当您说不时,他们会认为您只是一个很难与之合作的人。
明智船长

+100,只要有足够的“动力”,他们就可以改变您的答案。或去找另一个[经验不足]的开发人员,故意遗漏一半的细节,让他说“是”,最后在开发过程中半途而废,碰到您警告过他们的确切问题。
wildpeak

28

我的业务必须有一个开源程序。您不能只下载并调整我的要求吗?


2
+1。哦,是的,我们需要做的一切必须已经在开源中。
sharptooth 2010年

7
很多时候……至少对于Web开发而言如此。
WalterJ89 2010年

@ WalterJ89:它可能在那里,但这并不意味着使用它是一个好主意。开源并不自动意味着好的代码。
艾伦·李

是的,但是在Wordpress,Drupal,jQuery等情况下……可能存在某些领域,例如电子商务,但免费性不是很好,但网络开放性常常不高,我发现我喜欢与开源社区不仅仅是一个专有的服务台。
WalterJ89 2010年

7
相反也是神话。您不能使用FOSS来满足您的业务需求。
总站

27

我有不止一个人问我,编程只是为了在谈话中途意识到他们实际上认为我们直接以二进制或使用数学符号进行编程是什么感觉。

我不知道是否要消除这个神话,这让我看起来真的很聪明!


6
大多数人甚至不知道真正的编程是什么也无济于事……他们有一个模糊的想法,那就是正在创建软件……但是他们并没有一个清晰的想法,是什么软件……
Spudd86

7
“我们写针织食谱”。祖母倾向于理解这一点。

我知道有人会用C编写程序,然后重做Assembly中性能最关键的部分。
Zaz 2010年

1
@Josh-除非存在性能问题,否则这似乎是在浪费时间。
JohnFx 2010年

1
@oosterwal-程序集不是二进制的,也不使用数学符号。
JohnFx 2011年

26

我认为最大的误解是,能够轻松地写下代码比能够阅读和理解代码更为重要。


5
* v(int)(void)++
Rusty

1
@Rusty:如果我甚至不必在语法上正确,我可以提出很多更糟糕的例子。

4
嗯,是的,“只写”代码...
Paddyslacker 2010年

24

编程就像流水线工作一样。您在某个产品上工作了一段时间(也许与同事合作),最后将其发货。就像盖砖房一样。

相反:编程包含很多创造力和计划。这是艺术。像泥瓦匠一样,程序员也知道塑造砖块和计划整个大教堂之间的区别。


6
同意与流水线工作的不同之处-但在许多方面,我认为这与盖房没有太大不同。
Billy ONeal 2010年

24

将程序移植到C ++将自动使其运行更快。


我将扩展到另一种低级语言。当程序员不知道自己在做什么的时候,情况可能会相反。
Maniero

2
另一个常见的变体是切换到客户端服务器架构。“升级到SQL将使我的应用程序更快!” 不必要。
JohnFx 2010年

是的,很多时候相反。SQL类数据库是ACID或几乎是ACID的好选择,它附带价格。而且可能更糟,对SQL技术的错误思考可能会损害性能。
Maniero

6
使用Python / Perl / Ruby / etc编写的代码移植到C ++ / C。使用C / C ++:P移植到asm。我想知道您将asm移植到什么地方?将其设计到硬件中?
MAK 2010年


21

任何具有某种视觉设计师的编程环境都将使之成为现实,以便业务用户可以“编写”程序,而无需实际的程序员。


9
是啊。当某家公司创建新的创作工具以使程序员多余时,然后采用它的每个人都继续前进,并雇用高薪的<authoring tool>专家来实际使用它,总是很有趣。例子:Joomla!和所有的废话。
艾伦·梅

哈哈哈哈哈哈哈哈+1 :)
Billy ONeal 2010年

Cobol已经尝试过了:)
Carra

20

OOP重用。这是编程市场上最大的谬误。


1
好。HP XL WESM与Symbol WS5100大约有85%相同(正在进行OEMming)。您是要我复制并粘贴该百分比的监视和配置代码,以使错误数量增加一倍,还是希望我从头开始重写它并花费四十倍的时间,而又是五倍?还是您只是受到愚蠢管理的压力,他们认为这是使$ project更快运行的几种神奇灵丹妙药之一?

1
小型重复使用在40多年前就已解决。大规模重用是困难的,恕我直言尚未解决。就像罗伯特·格拉斯(Robert Glass)在软件工程的事实与谬论中
MarkJ 2010年
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.