有这方面的统计数据吗?我意识到它必须因人而异,但似乎应该有一般的平均值。
我问的原因是我签约的公司有多个软件产品,总共约75,000行代码 - 当他们问我关于特定部分的问题时,他们似乎感到失望和震惊,我不会立即知道回答(我是他们唯一的程序员,并没有创作大多数系统)他们认为我应该从记忆中知道这一切。因此,我希望像统计数据一样向他们展示平均程序员一次也不可能拥有这一切。或者我应该吗?
答案 0 :(得分:4)
你应该记住在哪里可以找到所需的东西而不记得它本身。
您还应该熟悉代码结构和体系结构,以便在可能的问题出现时做出有根据的猜测,并且可能可能找到您知道的内容但是不确定到底在哪里。
你的大脑像缓存一样工作。你最近使用的东西保存在那里,更旧的条目被删除。但是永远不会有足够的内存来记住所有代码。因为那时你会想要记住所有API函数,然后是所有规范,然后是其他东西。这一切都不可行。
令你感到惊讶的是,你不记得所有的代码可能是程序员如何做事的那些反常概念的又一个例子。忽略它们。
答案 1 :(得分:3)
这不仅取决于你的记忆技巧,还取决于你的代码。显然,干净,惯用的代码比写得不好的不一致的混乱更容易记忆。 可能是因为干净的代码可以分解为更大的“抽象令牌”。
答案 2 :(得分:2)
确实有趣的问题,但我怀疑是否有足够的答案。以下是我从一开始就看到的明显因素:
...但常见的问题通常是公司聘请承包商进行一些现有的软件改进,他们只是认为这只是挂在墙上。你应该进行一些谈判,迫使他们理解工作的一部分,就是要明白应该做些什么来满足他们的要求。这种“学习”需要资源,是工作本身的一部分。但我认为StackOverflow略显偏离主题(尽管我投了票;))。 Startups讨论会更多吗?
答案 3 :(得分:1)
即使您已经编写了所有代码,也可能会忘记它的部分内容。但是一旦你复习它,你就能回想起它。
我觉得程序员很长一段时间忘记他/她的代码的一部分是很自然的。
答案 4 :(得分:0)
问问他们他们希望你如何花时间:调查你没有写过的大量代码,或者编写内部文档,或者当前让你占用的任何东西这不是一个滑稽的问题。如果他们想要更快地回应新问题,他们需要投资研究。
我认为在LOC中测量的这个问题没有一个有意义的答案。作为一名经理,我想知道的是,在你的情况下,某个人可以在合理的时间内回答问题 - 除非我知道你处于某种状态,否则我不会指望'合理的数量时间'即时'。
答案 5 :(得分:0)
您应该能够理解系统中的所有组件以及它们如何交互,以便在出现问题时可以隔离一个或两个可能的组件并向下钻取。
我发现绘制一些图表并将它们放在手边是很有帮助的,这样我就可以用它们与我的老板\客户沟通,也可以慢慢记忆。