我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。

你坚持时间最长、最终被纠正的假设是什么?

例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。

坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。


当前回答

因为性能问题,像Java和。net这样的虚拟机架构对于除了玩具项目之外的任何东西都毫无价值。

(好吧,公平地说,也许在某些时候这是真的。)

其他回答

人们知道他们想要什么。

在很长一段时间里,我以为我会和人们交谈,他们会描述一个问题或工作流程,我将其放入代码并自动化。结果每次发生这种情况,他们以为自己想要的并不是他们真正想要的。

Edit: I agree with most of the comments. This is not a technical answer and may not be what the questioner was looking for. It doesn't apply only to programming. I'm sure it's not my longest-held assumption either, but it was the most striking thing I've learned in the 10 short years I've been doing this. I'm sure it was pure naivete on my part but the way my brain is/was wired and the teaching and experiences I had prior to entering the business world led me to believe that I would be doing what I answered; that I would be able to use code and computers to fix people's problems.

我想这个答案类似于Robin关于非程序员理解/关心我所谈论的内容的回答。这是关于将业务作为一个敏捷的、迭代的、交互的过程来学习。它是关于学习编程猴子和软件开发人员之间的区别。这是关于意识到两者之间的区别,并且在该领域真正优秀,不仅仅是语法和输入速度。

编辑:这个答案现在是社区-wiki,以安抚人们对这个答案感到不安,给我代表。

喂!,

我只是在设计和写代码。

没有需求收集、文档或支持。

欢呼,

c++在本质上比所有其他语言都要好。

这是我在大学前几年从一个朋友那里收到的。我带着它很长一段时间(我现在脸红了)。只有在与它一起工作了2年左右之后,我才能看到它们的裂缝是什么。

没有人,也没有什么事是完美的,总有改进的空间。

如果每一行都计算条件,如果你写这样的代码:

Dim a as Boolean = True
If a Then
    Console.WriteLine("1")
    a = False
    Console.WriteLine("2")
Else
    Console.WriteLine("3")
End If

那么输出将是:

1
3

640K应该足够任何人(DOS)。多年来,很多人都相信这一点。

当我第一次拥有8MB内存的系统时,我认为这远远超过了我的需求。它可以运行操作系统(Mac)以及我使用的所有应用程序(Word、Email、Firefox等)。