我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
当前回答
当我第一次听说“鸭子打字”时,我以为它实际上是“管道打字”,类似于人们经常说的鸭子胶带。“Duck typing”听起来是错误的,而“pipe typing”则有一种奇怪的意义(拼凑的类型)。
其他回答
唯一的本地化/国际化问题是翻译消息。
我曾经认为所有其他语言(我没有语言环境的概念)在各个方面都像英语,除了单词和语法。因此,要本地化/国际化一个软件,您只需要让翻译器翻译显示给用户的字符串。然后我开始意识到:
有些语言是从右向左书写的。 一些脚本使用上下文塑造。 日期、时间、数字等的格式有很大的变化。 程序图标和图形可能对某些人群毫无意义或具有冒犯性。 有些语言有不止一个“复数形式”。 ...
即使在今天,我有时也会读到令我惊讶的国际化问题。
通过实现客户想要的东西来满足客户——不幸的是,这意味着客户知道他想要什么。
“这次会成功的”
我以为这将是一场过山车之旅,里面有飞驰的汽车、放荡的女人、私人飞机和大胆的冒险。等着瞧吧,直到我得到那个职业顾问....
我需要定义所有的变量,我将使用在我的函数在其开始(Pascal风格)。
我曾经相信我需要考虑我的函数使用的所有资源,并在我开始编码之前定义它们,这可能是因为我的第一门语言是Pascal,这是要求。然后当我转移到C语言时,我会定义只在这些循环之外的循环中使用的临时变量,忽略循环内作用域,只是为了“一切都将在开始时定义”。
我花了几年时间才明白,提前定义所有资源并不是一件容易的事,而且范围本身对代码可读性非常重要。