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

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

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

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


当前回答

所有面向对象语言都有相同的面向对象概念。

Java接口=方法的接口。 Java接口是针对需要具有多重继承的特定于语言的解决方案。Ruby的mixin尝试解决同样的问题。 Javascript中提供的开箱即用的继承与Java实现继承的方式非常不同。

其他回答

字节码解释的语言(如c#或f#)比那些直接编译成机器代码的重置按钮慢。

好吧,当我开始有这样的信念时(在80年代),这是真的。然而,即使是在c#中,我有时也会想“把这个内循环放到一个。cpp -文件中是否会让我的应用程序运行得更快”)。

幸运的是,没有。

可悲的是,我几年前才意识到这一点。

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

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

那么输出将是:

1
3

ASCII以不同于二进制的方式存储

我曾经认为编写Win32应用程序就足够了。

而且每个程序都必须有一个GUI,因为命令行已经“过时”了。

面向对象不一定比非面向对象好。

我认为OO总是更好的。然后我发现了其他技术,比如函数式编程,并意识到OO并不总是更好。