我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。
你坚持时间最长、最终被纠正的假设是什么?
例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。
坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。
当前回答
我曾经认为我是一个很好的程序员。在那个职位上干了两年。
当你在真空中工作时,很容易把房间填满:-D
其他回答
我们作为软件工程师能够理解用户真正想要的是什么。
一个WTF总是一个糟糕专业的证据。
事实上,我最近才意识到在我的职业生涯中有多少WTF,但当StackOverflow告诉我它们只是另一个软件指标时,我感到欣慰。
营销人员关心你做什么。
:
for (int i = 0; i < myObj.variable; i = i + 1)
优化为:
int j = myObj.variable;
for (int i = 0; i < j; i = i + 1)
哇,当我意识到它们每次都在运行时,我停止在j的地方放入函数调用!
原因:
for (int i = 0; i < myObj.variable; i = i + 1){
if (function_argument == NULL){
myObj.variable++;
} else {
printf("%d", myObj.variable);
}
}
并不等同于:
int j = myObj.variable;
for (int i = 0; i < j; i = i + 1){
if (function_argument == NULL){
myObj.variable++;
} else {
printf("%d", myObj.variable);
}
}
任意的例子,但是您可以看到优化将如何改变执行。
做事总有一种“正确”的方式。大学毕业后很长一段时间,我一直抱着这个想法。
当然,我意识到完成一项任务总有很多种方法。每种方法都有优点和缺点。查看可用的信息,做出决定,然后确保你能向你的老板证明这一点。