我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
当前回答
如果你看不懂我的代码,那你就是不懂这门语言。我有一些代码审查,我试图反击。
我又花了几年的时间才明白,有一个时间和地点可以让你的代码变得神奇,那就是在库中,而不是在应用程序中。该应用程序是为了清晰和可读性。Magic最好隐藏在扩展方法和框架后面。
其他回答
我曾经认为应用程序的大部分工作实际上是编程。我相信这在某些情况下是正确的,但根据我的经验,我花了更多的时间来研究、记录、讨论和分析,而不是实际编码。(我从事的是操作基于激光的传感器的软件,确定如何最好地控制硬件比编写代码更具挑战性。)
我也曾经认为,程序员可以回头问旁边的人问题的开放环境是程序员团队敲定解决方案的最佳环境。事实证明,不管有没有团队,一个黑暗孤独的房间效率更高。
当我毕业时,我认为专业编程就像在大学编程一样,这意味着我将得到输入和预期输出,并被要求填写进行转换的黑框。在现实中,我必须弄清楚输入,输出和黑盒。
我过去并不认为市场和销售人员是人类的祸害,太天真了。
不要使用高级的特定于实现的特性,因为你可能“有时”想要切换实现。我这样做了一次又一次,几乎无一例外地,这种转换从未发生过。
. net结构体(c#和VB.NET)是引用类型,就像类一样。
我是在。net 1.0出现之前或之后的某个时刻“收到”这条智慧的(我不知道从哪里来的,它可能完全从我的脑海中冒出来,就像雅典娜从宙斯的额头上冒出来一样),并一直保存着它,直到大约4个月前Jon Skeet对这个概念进行了消除。
感谢乔恩。
附注:与编程无关,但我也相信(直到5分钟前)“阿波罗从宙斯的额头上长成了一个完整的阿波罗”。
其他人都在使用最新最好的技术,而我的团队是唯一一个使用劣质过时工具的人。(除了神秘的cobol恐龙)
这是因为我在我的“标准”环境中构建了软件,它可以在每个人的机器/服务器上工作。只是发现我安装了一些实际上正在使用的不知名的库和服务。然后发现我利用了一个漏洞,这个漏洞后来被修补了。