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

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

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

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


当前回答

做事总有一种“正确”的方式。大学毕业后很长一段时间,我一直抱着这个想法。

当然,我意识到完成一项任务总有很多种方法。每种方法都有优点和缺点。查看可用的信息,做出决定,然后确保你能向你的老板证明这一点。

其他回答

没有bug的软件是可能的。

私有成员变量是实例私有的,而不是类私有的。

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

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

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

In the early days, most personal computers had a cassette tape interface for loading and storing programs. I did not have a computer at this time but read everything I could get my hands on (mostly magazines) that had anything to do with computers (this was the late 70's - no internet for me). For some reason I was under the impression that programs were executed directly from the cassette tape and that the only reason computers had any RAM was to store variables while the program ran. I figured that when the code had to execute a jump instruction, it would somehow rewind or advance the tape to the correct position and continue from there.

不是持有时间最长的,但在某一时刻,有几年的时间,我:

以为微软Windows是世界上唯一的操作系统(那是1992年) 了解DOS对于拥有“高级”操作系统知识已经足够了。

这就是为什么我在高中没有选择“计算机课程”。我以为我对计算机已经了解得够多了。

后来在大学里,出于我的错误:

我认为UNIX操作系统/程序是完美的,DOS/Windows永远不会接近它(那时候看起来很真实,我猜Linus也是这么想的,这就是为什么Linux和UNIX如此相似,而不是。其他操作系统)

最后,在很长一段时间里,我想:

只有我的软件很糟糕,而商业软件是完美无缺的,因为……它是“商业”软件 美国的软件/工程师/产品是优秀的同义词,其他的都只是糟糕的尝试。