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

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

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

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


当前回答

创建一个成功的应用程序只需要程序员就可以轻松完成。软件也要易于使用,美观,文档和适当的营销。软件开发是多学科的,如果一门学科不及格,应用程序也可能会失败。

其他回答

当我第一次听说“鸭子打字”时,我以为它实际上是“管道打字”,类似于人们经常说的鸭子胶带。“Duck typing”听起来是错误的,而“pipe typing”则有一种奇怪的意义(拼凑的类型)。

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

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

在很长一段时间里(大约5年),我认为PHP很棒。

我以为我懂算法。然后我加入了Topcoder.com

如果你看不懂我的代码,那你就是不懂这门语言。我有一些代码审查,我试图反击。

我又花了几年的时间才明白,有一个时间和地点可以让你的代码变得神奇,那就是在库中,而不是在应用程序中。该应用程序是为了清晰和可读性。Magic最好隐藏在扩展方法和框架后面。

以前从未见过整数提升… 并认为'z'在这段代码中可以容纳255:

unsigned char x = 1;
unsigned char y = 2;
unsigned char z = abs(x - y);

z的正确值是1