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

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

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

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


当前回答

html元素id和name属性是可以互换的。

事实证明,带有'name'属性的元素是相关的/被使用的。引用post等和'id'属性用于DOM引用。

其他回答

与自动化相结合的编程优雅是老式测试的充分替代品。

当主流设计模式在计算机科学课上被引入时,我认为它们很棒。在此之前,我有8年的编程经验,对于如何创建好的抽象概念,我真的没有扎实的理解。

设计模式就像魔法一样;你可以做一些很棒的事情。后来我发现了函数式编程(通过Mozart/Oz、OCaml、后来的Scala、Haskell和Clojure),然后我明白了许多模式只是样板,或者额外的复杂性,因为语言表达能力不够。

当然,几乎总是有某种模式,但它们在表达性语言中处于更高的层次。现在我一直在用Java进行一些专业编码,当我不得不使用访问者或命令模式等惯例而不是模式匹配和更高阶函数时,我真的感到很痛苦。

c++在本质上比所有其他语言都要好。

这是我在大学前几年从一个朋友那里收到的。我带着它很长一段时间(我现在脸红了)。只有在与它一起工作了2年左右之后,我才能看到它们的裂缝是什么。

没有人,也没有什么事是完美的,总有改进的空间。

其他人都在使用最新最好的技术,而我的团队是唯一一个使用劣质过时工具的人。(除了神秘的cobol恐龙)

Python是一种不切实际的、令人讨厌的语言(我仍然可以读到一些关于我早期代码的注释,抱怨它),而c++是唯一真正的面向对象语言。

我错得太离谱了,到现在还觉得羞愧。