我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
当前回答
你需要一个客户规范来完成一个项目。很多时候,你从一个销售会议和一个记事本开始。当然,在会议结束时,他们想要一个最后期限,“只是大概的时间”。
其他回答
人们知道他们想要什么。
在很长一段时间里,我以为我会和人们交谈,他们会描述一个问题或工作流程,我将其放入代码并自动化。结果每次发生这种情况,他们以为自己想要的并不是他们真正想要的。
Edit: I agree with most of the comments. This is not a technical answer and may not be what the questioner was looking for. It doesn't apply only to programming. I'm sure it's not my longest-held assumption either, but it was the most striking thing I've learned in the 10 short years I've been doing this. I'm sure it was pure naivete on my part but the way my brain is/was wired and the teaching and experiences I had prior to entering the business world led me to believe that I would be doing what I answered; that I would be able to use code and computers to fix people's problems.
我想这个答案类似于Robin关于非程序员理解/关心我所谈论的内容的回答。这是关于将业务作为一个敏捷的、迭代的、交互的过程来学习。它是关于学习编程猴子和软件开发人员之间的区别。这是关于意识到两者之间的区别,并且在该领域真正优秀,不仅仅是语法和输入速度。
编辑:这个答案现在是社区-wiki,以安抚人们对这个答案感到不安,给我代表。
后藤是有害的。
现在我们决定是继续还是中断。
html元素id和name属性是可以互换的。
事实证明,带有'name'属性的元素是相关的/被使用的。引用post等和'id'属性用于DOM引用。
我写的所有东西在可预见的未来都会失败。
并不是说一切最终都不会崩溃,而是在我的编程教育早期,当我发现try. catch块…我把所有的东西都包在里面....有些事情,如果失败了,将代表比我的程序处理的更大的问题(例如,北极和南极互换了位置)。
以某种方式,一个运营大量相当高调/高流量网站的公司实际上知道他们在做什么。结果他们在很大程度上毫无头绪,而且非常幸运地处于他们所处的位置。所以我想寓意是,
可靠的软件工程和最佳实践=业务成功
还是……
大多数关键的软件系统==垃圾