我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
当前回答
不用分析我就能知道性能问题出在哪里
其他回答
唯一的本地化/国际化问题是翻译消息。
我曾经认为所有其他语言(我没有语言环境的概念)在各个方面都像英语,除了单词和语法。因此,要本地化/国际化一个软件,您只需要让翻译器翻译显示给用户的字符串。然后我开始意识到:
有些语言是从右向左书写的。 一些脚本使用上下文塑造。 日期、时间、数字等的格式有很大的变化。 程序图标和图形可能对某些人群毫无意义或具有冒犯性。 有些语言有不止一个“复数形式”。 ...
即使在今天,我有时也会读到令我惊讶的国际化问题。
所有面向对象语言都有相同的面向对象概念。
Java接口=方法的接口。 Java接口是针对需要具有多重继承的特定于语言的解决方案。Ruby的mixin尝试解决同样的问题。 Javascript中提供的开箱即用的继承与Java实现继承的方式非常不同。
公司高管关心代码的质量。 行数越少越好。
当我在TI-83上编程时,我认为你不能给变量赋值。因此(忽略这是C代码,不是TI-BASIC)而不是编写
c = c + 1;
我会写
d = c + 1;
c = d;
当我学习+=和++时,我惊呆了。
与自动化相结合的编程优雅是老式测试的充分替代品。