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

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

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

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


当前回答

除了插入/冒泡排序之外,任何事情都是非常简单的黑魔法。

其他回答

一个WTF总是一个糟糕专业的证据。

事实上,我最近才意识到在我的职业生涯中有多少WTF,但当StackOverflow告诉我它们只是另一个软件指标时,我感到欣慰。

聪明人总是比我聪明。

当我犯错误的时候,我真的可以痛打自己,经常因为自嘲而被责备。我曾经敬畏地看着许多开发人员,并经常假设,既然他们在X方面比我知道得多,他们就比我知道得多。

随着我不断积累经验,认识更多的人,我开始意识到,虽然他们在某一特定领域比我知道得多,但他们并不一定比我/你聪明。

这个故事告诉我们:永远不要低估你的能力。

我的错误假设:虽然总是有一些改进的空间,但就我而言,我已经是一个尽可能好的程序员了。

当我刚从大学毕业的时候,我已经用C语言编程6年了,知道所有关于“结构化编程”的知识,认为“OO”只是一种时尚,并认为“天哪,我很好!!”

十年后,我在想“好吧,那时候我远没有我想象的那么好……现在我有了多态性的想法,以及如何编写干净的OO程序…现在我真的很好。”

所以,不知何故,我总是很好,但也总是比以前好得多。

在那之后不久,我终于有了“一些”谦卑。总是有更多的东西要学(还没有用像Haskell这样的纯函数式语言写一个合适的程序)。

我应该一直优化我的代码。这并不是说我在写之前不应该仔细考虑,而是说我应该努力思考如何从每个语句中挤出每一点性能,甚至牺牲可读性。

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