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

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

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

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


当前回答

我写的所有东西在可预见的未来都会失败。

并不是说一切最终都不会崩溃,而是在我的编程教育早期,当我发现try. catch块…我把所有的东西都包在里面....有些事情,如果失败了,将代表比我的程序处理的更大的问题(例如,北极和南极互换了位置)。

其他回答

我最大的先入之见是,我将被允许以我想要的方式编程。当然,后来我离开了大学,进入了一家拥有荒谬框架、规则和程序的公司,这不仅意味着我不能以自己想要的方式编程,而且意味着我编程得很糟糕。

我很早就开始学习编程了。那时我14岁左右。我有各种疯狂的想法,但不要问我准确的时间,因为那是很久以前的事了。

Ok, so, I believed for a while that if you use the term synchronize in Java, then Java solves this nasting synchronizing thing for you I believed for at least half a year, likely more, that static typing would improve performance. I believed that freeing something would return memory back to the OS. I believed that malloc calls boil down to checking if there is enough free space on the OS, so malloc would be inexpensive. I thought a long while that Java was built with all the benefits and flaws of the other languages in mind, into a "perfect blend" that would take the best properties of the other languages and reject the mistakes. I vastly overestimated the number of cases where LinkedLists outperform ArrayLists. I thought that NP-hardness was a proof that no INSTANCE could be solved efficiently, which is trivially false, for a while. I thought that finding the best flight-plan on travel agency web sites would take so long because of the "Travelling Salesman Problem", as I proudly chuckled to my relatives (when I was small, alright?!)

还能想出更多。不知道我坚持了多久。对不起。

PS: 啊,好吧,这个被清除得并不慢,但我看到新手时不时地这样做,所以我想你可能会感兴趣:我还认为要存储不确定数量的东西,你需要为每个东西声明一个新变量。所以我要创建变量a1 a2 a3…,而不是使用一个变量a,我将它声明为一个向量。

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

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

我知道要编写一个合适的web应用程序,当我必须设计在所有浏览器上都能运行的东西时,我很清楚这一点。

就查询性能而言,SQL WHERE子句中整数的位比较实际上是免费的。

碰巧,对于前50万行左右来说,这在某种程度上是正确的。在那之后,它被证明是完全无联合国的。