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

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

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

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


当前回答

我曾经认为应用程序的大部分工作实际上是编程。我相信这在某些情况下是正确的,但根据我的经验,我花了更多的时间来研究、记录、讨论和分析,而不是实际编码。(我从事的是操作基于激光的传感器的软件,确定如何最好地控制硬件比编写代码更具挑战性。)

我也曾经认为,程序员可以回头问旁边的人问题的开放环境是程序员团队敲定解决方案的最佳环境。事实证明,不管有没有团队,一个黑暗孤独的房间效率更高。

当我毕业时,我认为专业编程就像在大学编程一样,这意味着我将得到输入和预期输出,并被要求填写进行转换的黑框。在现实中,我必须弄清楚输入,输出和黑盒。

我过去并不认为市场和销售人员是人类的祸害,太天真了。

其他回答

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

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

假设我把代码写得很好,尽可能没有错误,这就是我能做的最好的事情。事实证明,有时候经理们更喜欢那些努力成为他们最喜欢的人,而不是把工作做好的人。

我曾经认为应用程序的大部分工作实际上是编程。我相信这在某些情况下是正确的,但根据我的经验,我花了更多的时间来研究、记录、讨论和分析,而不是实际编码。(我从事的是操作基于激光的传感器的软件,确定如何最好地控制硬件比编写代码更具挑战性。)

我也曾经认为,程序员可以回头问旁边的人问题的开放环境是程序员团队敲定解决方案的最佳环境。事实证明,不管有没有团队,一个黑暗孤独的房间效率更高。

当我毕业时,我认为专业编程就像在大学编程一样,这意味着我将得到输入和预期输出,并被要求填写进行转换的黑框。在现实中,我必须弄清楚输入,输出和黑盒。

我过去并不认为市场和销售人员是人类的祸害,太天真了。

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

以前从未见过整数提升… 并认为'z'在这段代码中可以容纳255:

unsigned char x = 1;
unsigned char y = 2;
unsigned char z = abs(x - y);

z的正确值是1