我正在对初级(也许是高级)软件工程师所犯的常见错误和错误假设进行一些研究。

你坚持时间最长、最终被纠正的假设是什么?

例如,我误解了整数的大小不是标准的,而是取决于语言和目标。说起来有点尴尬,但事实就是这样。

坦率地说;你有什么坚定的信念?你大概坚持了多长时间?它可以是关于一种算法、一种语言、一个编程概念、测试,或者任何关于编程、编程语言或计算机科学的东西。


当前回答

我通过阅读K&R自学了C。不幸的是,我没有逐字逐句地读,肯定漏掉了一些东西。我编写了我自己的malloc和calloc版本,我在不同的工作中都随身携带,因为我不知道你可以只链接现有的库。我这样做了好几年,直到最后有人问我为什么要带着这些东西到处走,“嗯……你知道你可以直接链接现有的库,对吧?”

其他回答

这真的很尴尬,但当我开始学习如何编程时,没有什么能让我满意。我想写电子游戏。而不是这些书里让我写的那些琐碎的小程序。所以我决定跳过10章,忽略基础知识。

所以我基本上忽略了变量!

问题是我没有从惯例中识别关键字:

Car car = new Car(); //good
Car test = new Car(); //wrong must be lowercase car!

for (int i = 0; i < 10; i++) //good
for (int test = 0; test < 10; test++)//wrong must be i

我这样做了一年多,甚至用3000行字做了一个井字游戏! 当时我为自己的厉害而激动不已,直到我在互联网上找到了150行一字棋。然后意识到自己是个白痴,就重新开始。

让非程序员明白我在说什么。

所有的语言(大部分)都是平等的。

在很长一段时间里,我认为语言的选择对开发过程的难度和项目成功的潜力并没有太大的影响。这绝对不是真的。

为工作选择正确的语言与任何其他单个项目决策一样重要/关键。

这个:

SomeClass object(initialValue);

这:

SomeClass object = initialValue;

保证在c++中是等价的。我认为第二种形式肯定会被解释成第一种形式。并非如此:请参阅c++初始化语法。

如果每一行都计算条件,如果你写这样的代码:

Dim a as Boolean = True
If a Then
    Console.WriteLine("1")
    a = False
    Console.WriteLine("2")
Else
    Console.WriteLine("3")
End If

那么输出将是:

1
3