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

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

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

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


当前回答

我以为这将是一场过山车之旅,里面有飞驰的汽车、放荡的女人、私人飞机和大胆的冒险。等着瞧吧,直到我得到那个职业顾问....

其他回答

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

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

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

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

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

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

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

我认为我应该尽可能地进行抽象。我的脑袋被这个撞了,因为太多交织在一起的小功能。

现在我试着让事情尽可能的简单和分离。重构使事物抽象比预测需要如何抽象要容易得多。

因此,我从开发规则它们的框架转移到完成工作的功能片段。从来没有回头,除了当我想起那段时间,我天真地认为我会是那个开发下一个大东西的人。