it-swarm.cn

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

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

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

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

101
Maniero

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

272
Neth

人力资源部的一个常见的人力资源问题使我在求职时发疯:隐含的假设是所有编码技能都是特定于语言的,没有超越命令集的软件工程专业知识。在Java)中有10年的经验,在Perl中又有5年的经验,这意味着在使用例如C#的项目中,您将毫无用处。

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

266
BlairHippo

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

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

260
burnt_hand

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

158
chrmue

那个写软件很容易。

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

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

我知道这要复杂得多;)

132
ChrisF

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

114
JohnFx

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

95
David Cary

任何使用计算机进行黑客攻击的少年孩子,其技能均等同于(或优于)经验丰富的程序员。

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

95
JohnFx

实时意味着快速。

声明“数据包需要实时处理。”毫无价值,邪恶的孪生兄弟正在回答“ X需要多快发生一次?”“实时”可能比一文不值。 ..对愚蠢而不是无知的人加边框。

实时表示,简单地说,函数Y将始终花费X的时间,并且任何偏差都表示严重的错误。 X的持续时间未定义“实时”,可能是6微秒或6天。您可以determine函数Y将花费X时间定义“实时”。通过此定义,实时系统是确定性的。

所以把它关掉..

69
Rusty

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

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

69
David Cary

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

64
user2528

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

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

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

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

61
HLGEM

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

没有偏差是没有道理的。

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

53
Bill

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

51
Giel

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

50
DisgruntledGoat

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

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

50
Namwar Rizvi

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

50
P Shved

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

42
Gordon
33
TheLQ

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

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

33
Mason Wheeler

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

31
setzamora

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

31
Mike King

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

30
koos303

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

28
Tim Murphy

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

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

27
JohnFx

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

26
LennyProgrammers

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

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

24
Josua Schmid

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

24
JohnFx

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

21
Jesse C. Slicer

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

20
clrod

学习语法是困难的部分。

19
palto

我想揭示的两个神话。我的很多朋友不明白Java和JavaScript是完全不同的,而且我认识的许多非程序员也不明白)语言不止一种。我的一位朋友刚刚进入编程领域,需要我的帮助,“当然,他甚至不知道他使用的语言。

这些都对我很有帮助。

15
Doug

分配“ 1”以外的优先级意味着该任务将永远不会完成。

我有一个经理请我自定义优先级为1a,1b,1c,1d和1e的错误跟踪工具,以便他可以将所有内容分配为优先级1的某些变体,但我们仍然可以组织工作。

是的,我确实解决了所有“优先级1”问题。但是在我继续处理仍在优先级2-5中的问题之前,经理让我将这些问题的优先级重新分配到五个优先级1级别中。

(我意识到这个神话不是编程的特定,但是这个线程上的其他几个答案也是如此。)

15
Bill Karwin

只要计算机能够理解您键入的代码,那就很重要。因此,输入注释并使用长度超过两个字母的变量名会浪费时间。 :-(

13
David Cary

键盘形式与编程能力有关。严重的是,我高中的一位老师告诉我:“如果不能快速打字,就不能快速编码。”我的回答是:“这就像说我只有草书写才能写出《美国小说》。”

12
quanticle

原型程序员:

  • 早上11点以后上班
  • 只喝山露水
  • 喜欢印度美食或寿司
  • 有选择地独自生活(与父母和/或在地下室)
  • 一直玩到凌晨3点
12
Kelly S. French

匈牙利表示法只是意味着您在变量名前加上类型(例如int iArraylength = 5;),而不是使用什么类型的数据(例如int xcTextfield = getTextfield()。coord.x;)。

“系统匈牙利符号”!=“应用匈牙利符号”

10
Zaz

无错误的软件。后来我才知道,每个程序仍然会运行Bug,整个过程都是关于满足客户需求的。

10
Gopi

任何人以OOP(C#,C++,Java)语言)编写的任何代码都是自动面向对象的,并且是“可重用的”。

不仅仅是一次,我被要求重用一千行代码块或架构中的一个类,除了继承(没有继承)之外,该模式没有任何模式。显然,对于任何不知道OO语言和OOP)本身之间的区别)的人来说,复制粘贴也算是很好的代码重用。

经常发生的最喜欢的TDWTF: Code-Refuse

9
Jonn

该网络应用可以运行“ 7x24”。

询问任何业务人员允许哪些停机时间,他们始终坚持100%的停机时间。没关系,每周1分钟的停机时间仍为99.99%,对于规模小于主要公用事业的组织而言,这几乎是无法实现的。

9
bmb

所有用C/C++编写的程序将比Java/C#等效程序执行得更快。

7
Mohan Narayanaswamy

对于任何问题/问题,只有一个“最佳”工具/解决方案/答案

7
Murph

最大的误解是它很容易。

7
Fortyrunner

成为经理的程序员说:

“三个星期?!我过去编码过,()很难吗?”

6
Arcturus

那个硕士一个编程课程就足以被雇用为软件开发人员。

6
FeatureCreep

那是因为您是一名程序员,所以您知道如何修复复印机。

6
Jeff Siver

哪些错误的想法长期存在

程序员之间关于如何发现性能问题的信念非常广泛。就是为了找到它们,必须测量它们

最简单的反例是一个(不需要的)无限循环。它花费100%的时间来做完全不必要的事情。

您如何发现问题?您可以在调试器中获取它,然后暂停,暂停或中断它。然后查看堆栈,因为您知道循环在堆栈的某个位置。 你已经把它抓了。你衡量了吗?还是找到它?

假设这不是一个无限循环,它花费的时间比您认为必要的更长。假设不必要的工作少于100%,例如90%,50%或20%。这是相同的想法。如果您暂停播放,那百分比就是您将其捕捉到的机会。 (您不必知道捕获它的百分比。)

可以肯定的是,您可以暂停几次。一旦您看到它可以做的事(可以减少两个样本),就可以更快地替换为某些东西,则可以对其进行修复,以实现不错的加速。不仅如此,您还使其他任何问题都更容易发现,因为时间更短,而且花费的百分比更高。这可以“滚雪球”,直到代码非常接近最优为止。

当然,如果您要want来衡量问题,只需获取更多样本,但这并不是找到它的先决条件。

人们希望我告诉我,这是采样分析器所做的,但是做得更好。许多人宁愿辩论这个问题,也不愿自己看到。

4
Mike Dunlavey

成为经理比成为编码员更好。成为经理很无聊。刚开始从事纯管理的人从来都不喜欢编程。

4
zhenka

计算机和软件本身可以改善工作流程。

4
aasc

在程序员中:德尔福已经死了,快要死了或终生support命。

3
Peter Turner

经理对开发人员正在编写的代码深有体会。

3
Mike Mooney

有一种叫做C/C++的语言

或者说语言是如此接近,以至于技能可以互换。

3
Martin York

那个写软件实际上就是写代码。

2
Craig Norton

许多人倾向于认为JavaScript与C++类似,并且不了解它实际上使用了原型继承。

1
diadem

编程语言一直在变化。

过去可能已经很久了...
但是如今,所做的更改大部分是额外的功能,这些功能试图不破坏现有代码。

1
Tamara Wijsman

程序员为什么坚持要编写错误? (来自市场营销和测试人员,他们永远无法正确完成错误报告)。

1
Dorin Lazăr
  • OO表示质量。
  • OO)方法是正确的方法。
  • 程序员的工作就是编写代码。
  • 语言很重要。
0
Fredy

整个好莱坞的心态(由于缺乏更好的名字),每当电影/电视连续剧中的程序员讲话时,他都需要表达他需要的每种技术(我需要一个PHP前端和MySQL后端!!! 11)...然后,当然还有更多没有任何意义的内容。

如果我这样说,我可能会大吃一惊。

0
Andreas Johansson

使用英语(或您的母语)描述问题:

比提供代码的可编译示例(说明问题)更有用。

0
Martin York