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

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

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

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


当前回答

与UNIX相比,NT操作系统的设计有缺陷。事实证明,NT内核和设计决策与任何现代的UNIX类系统非常相似,内核中的大多数问题都是由有漏洞的公司编写的第三方漏洞驱动程序造成的。

其他回答

事实证明,在Linux下是否检查内存分配是否返回一个引用并不重要,因为它实际上会欺骗你,在未来的某个时候实际分配内存,或者如果它没有你需要的内存,就完全终止你的程序。

我需要定义所有的变量,我将使用在我的函数在其开始(Pascal风格)。

我曾经相信我需要考虑我的函数使用的所有资源,并在我开始编码之前定义它们,这可能是因为我的第一门语言是Pascal,这是要求。然后当我转移到C语言时,我会定义只在这些循环之外的循环中使用的临时变量,忽略循环内作用域,只是为了“一切都将在开始时定义”。

我花了几年时间才明白,提前定义所有资源并不是一件容易的事,而且范围本身对代码可读性非常重要。

作为一个新手,我有一个假设,在这个领域工作多年的人自然是更好的开发人员。

OOP已经过时了:(直到今天我仍然后悔这么想。

选择和使用我们的开发方法是因为它们是最好的。

后来我发现,我们使用的工具对我们做什么、什么时候做、怎么做的影响比我想象的要大得多。