我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
当前回答
唯一的本地化/国际化问题是翻译消息。
我曾经认为所有其他语言(我没有语言环境的概念)在各个方面都像英语,除了单词和语法。因此,要本地化/国际化一个软件,您只需要让翻译器翻译显示给用户的字符串。然后我开始意识到:
有些语言是从右向左书写的。 一些脚本使用上下文塑造。 日期、时间、数字等的格式有很大的变化。 程序图标和图形可能对某些人群毫无意义或具有冒犯性。 有些语言有不止一个“复数形式”。 ...
即使在今天,我有时也会读到令我惊讶的国际化问题。
其他回答
让非程序员明白我在说什么。
我的错误假设:虽然总是有一些改进的空间,但就我而言,我已经是一个尽可能好的程序员了。
当我刚从大学毕业的时候,我已经用C语言编程6年了,知道所有关于“结构化编程”的知识,认为“OO”只是一种时尚,并认为“天哪,我很好!!”
十年后,我在想“好吧,那时候我远没有我想象的那么好……现在我有了多态性的想法,以及如何编写干净的OO程序…现在我真的很好。”
所以,不知何故,我总是很好,但也总是比以前好得多。
在那之后不久,我终于有了“一些”谦卑。总是有更多的东西要学(还没有用像Haskell这样的纯函数式语言写一个合适的程序)。
我最近才发现在Hello World中执行了超过一百万条指令!我写的c++程序。我从来没有对像一条cout语句这样简单的东西有过如此高的期望
OOP的好处是你可以重用对象,而实际上它是通过创建一个具有相同接口的新对象来重用其余的代码。
实际上,对象可能占代码的2%,因此重用只会给您带来2%的好处。真正的好处是通过创建一个新对象来重用其他98%的代码,从而允许所有其他代码完全不同。现在您重用了98%的代码。把一个东西写为一个对象所花费的时间延长3倍是值得的。
例如,如果你有一个绘图程序,突然有一个你想要绘制的新形状,你只需要改变ShapeObject(同时保持界面相同)。项目中的其他内容都不需要改变。
以为我是唯一一个会写代码的人……然后当我需要这个例程时,我不记得我做了什么,只是复制/粘贴我自己的代码。
我知道每个人都这么做。