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

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

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

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


当前回答

如果我有一个像ML或Haskell中那样强大的静态类型系统,我应该使用它来编码尽可能多的不变量。只有有了经验,我才知道有时最好让不变量是动态的。

其他回答

我最大的先入之见是,我将被允许以我想要的方式编程。当然,后来我离开了大学,进入了一家拥有荒谬框架、规则和程序的公司,这不仅意味着我不能以自己想要的方式编程,而且意味着我编程得很糟糕。

现在流行的$符号作为java/javascript标识符的一部分是非法的。

后藤是有害的。

现在我们决定是继续还是中断。

分析和性能分析是一回事。

然后我发现,虽然分析器总比没有强,但它包含错误的假设,比如:

只有总量才重要,细节无关紧要 统计精度是定位性能问题的必要条件 测量时间和定位不必要的耗时操作是一回事

在编程的头几年,我没有意识到1kbyte在技术上是1024字节,而不是1000字节。我总是有点困惑,因为我的数据文件的大小似乎与我预期的稍有出入。