一个公司需要从其潜在的雇员得到的线数码写在生活的时间在某种编程语言Java或C#。因为,我们大多数拥有数年的经验,在不同的项目以多种语言和我们很难保持记录这一点,什么是最好的方法来计算这一指标。我确定聪明的成员stackoverlow.com 会有一些想法。

这是一个非常受人尊敬的公司在其领域,我相信他们有一些很好的理由询问这个问题。但是什么使得它还很难回答是的类型代码,以考虑。我应该只包括在困难的算法,我实现或任何代码我写的,例如一个只有300性质及其干将/则制定者都产生的使用IDEs!

有帮助吗?

解决方案

这看起来像是一个问题,比如“波音747可以装多少乒乓球?”在这种情况下,提问者希望看到你展示你解决问题的能力,而不是知道你实际编写了多少行代码。我会小心不要回答任何批评这个问题,而是诚实地试图解决问题; )

其他提示

最好的响应这样一个问题是一个如下:

  • 为什么你想知道吗?
  • 什么意思你会属性的这样一个号码吗?
  • 那是正确的,如果我只要离开就现在?

我会认真地问题背后的动机,任何人都要问这样一个问题的当前或未来的雇员。它是最有可能是同一类型的公司将开始做码的评论,聚焦在线数的代码类型。

现在,如果他们认为,这些代码行被一措施的经验的程序员,那么我肯定会留下的采访。

简单的解决办法可以找到的复杂问题,并且通常比 只是扔足够的行代码在的问题和它将自行解决.由于数量的错误所产生的尺度线性地和以上数量的发言,我要说,反之可能更好,并结合数量的问题,他们已经解决。

作为测试反应,我会问问这个:

如果在程序的我能够解决问题的A、B和C中的1000行代码,另一个程序,解决了相同的问题在500线的代码,我们是最好的(而答案将是:没有足够的信息来判断)


现在,如果你 仍然 要估计数线,我只想开始思考有关项目的人员已经编写,并比较它们的大小与一个已知的数量。例如,我有一个类图书馆,目前范围有关130的k线的代码,我已经写类似的东西在德尔斐和其他语言,再加上一些相当大的应用程序项目,所以我估计,我有一个很好的10万行代码我自己至少一个。是的数量有意义?没有丝毫。

听起来这是D E Shaw的调查问卷?

查看 ohloh 。该站点显示来自开源项目的指标。

该网站估计107,187行代码相当于27人年(每年4000行代码)。

这种指标的愚蠢的一个例子是这个数字是来自我在2年内从事外部工作的项目。

基本上有三种方法可以处理对无意义指标的荒谬请求。

  1. 拒绝回答,质疑提问者的原因,并解释为何这些理由是愚蠢的。

  2. 花时间收集所有可能的信息,并尽最大努力计算答案。

  3. 制定一个看似合理的答案,并尽可能少地进行愚蠢的情感参与。

  4. 我看到的第一个答案似乎是第一线。考虑一下,尽管他们的要求愚蠢,你是否还想要这份工作。如果答案仍然是,请避免使用数字1。

    第二种方法是从旧项目中查看旧的代码存储库。

    在这种情况下,我会采用第三种方式。

    将您使用某种语言的年数乘以每年200个工作日,每天使用20行代码,并使用它。

    如果您每年声称使用多种语言,请将它们分配出去。

    如果您在分析,设计或管理方面做得更多,请将数字减少四分之三。

    如果您一直在高级仪式环境(防御,医学)工作,请将数字降低一个数量级。

    如果您一直致力于仪式特别低的环境,请将其增加一个数量级。

    然后把愚蠢的东西放在身后,尽快开始你的生活

根据他们对答案的处理方式,我认为这不是一个糟糕的问题。例如,如果候选人将JavaScript放在他们的简历上,我想知道他们实际编写了多少JavaScript。例如,我可能会问他们编写的最大的JavaScript项目中的行数。但我只是在寻找规模感,而不是实际数字。是10,100,1000还是10,000行?

当我问起时,我会清楚地表明我只是在寻找一个粗略的数字来衡量项目的规模。我希望提问者的雇主也是这样的。

这是一个有趣的指标,要求考虑你可以编写许多不良代码,而不是只写几个聪明的代码。

我只能假设他们正在考虑更多的线路比更少的线路更好。最好不要计划,只是开始编写代码,这将是编写更多代码行的好方法,因为至少如果我这样做,我通常最终会写出至少两次。

堆栈溢出程序的智能通常会避免组织提出这类问题。除非正确答案是“huh,wtf ??”

为什么在没有充分理由的情况下费心计算这个指标呢?一些随机的公司要求指标真的并不是一个好理由。

如果公司的问题确实很严重,并且您认为面试可能会引发一些有趣的事情,那么我会选择一个随机数字以查看其中的哪些方面: - )

当我接手一个基于C的测试框架时,提醒我,最初的开始是20K + 通过分解为子程序,我最终崩溃到1K LOC的行 20K行的diarrea代码最初是由原作者编写的。不幸, 我的代码中出现了任何错误,因为我的KLOC书面实际上已经写了,我更加打屁股 否定...我会认为在指标驱动的组织中缩小代码库已经很长很难了......

如果您真正诚实,那么您会说您不知道,因为您从未将其视为有效指标。如果面试官是一个合理/理性的人,那么这就是他们正在寻找的答案。

说你不知道的唯一其他选择是猜测,而这实际上并不能证明解决问题的能力。

即使我同意大多数人说这不是一个非常好的指标,如果它是一个严重的指标,正如你所说,他们可能有理由问这个..这就是我可能会做的:

选择一个现有项目,获取行数并将其划分为编码时间。这将为您提供每小时的一种行数指标。然后,尝试估算您使用该特定语言的时间,并将其与已计算的指标相乘。老实说,我不认为这是一个很好的方式..但老实说,这不是一个很好的问题..我也会告诉公司我曾用这个号码提出的策略..也许,可能,这就是什么他们想......知道你对这个问题的看法以及你将如何回答这个问题? :P

或者,他们只是想知道你是否有一些经验..所以,猜一个令人印象深刻的数字并写下来:D

  

“这是一个在其领域非常受尊敬的公司,我相信他们有一个很好的理由提出这个问题”

我非常肯定他们没有,因为“受到尊重”。并不意味着“他们做的一切都是正确的”,因为这当然不对,或者如果是,那么在我看来至少是愚蠢的。

什么算作“代码行”?我估计我写了大约250,000行C#代码,可能还有很多。问题? 95%是一次性代码,而不是全部用于学习。我仍然发现自己第十次编写一个小型3行程序,因为再次编写这三行(并更改参数)比搜索现有行更容易。

此外,代码行意味着没有。所以我有两个人,一个人写了另外一个20%的行,但是那些20%的人是不必要的复杂行,“循环展开”。以及其他无用的东西,可以被重构。

很抱歉,尊重公司与否:要求代码行是一个明确的迹象,表明他们不知道如何衡量程序员的效率,这意味着他们必须依赖石器时代技术,如测量LoC,与石器时代的日历一样准确。这意味着如果你喜欢每隔一段时间懈怠和夸大你的号码,这可能是一个很好的工作场所。

好吧,这更像是一个咆哮而不是一个答案,但我真的看到这个数字绝对没有充分的理由。

还没有人引用 Bill Atkinson -2000系列故事 ...

在我周五下午(好,大约每月一个星期五)在过去一年的工作中进行自我发展,包括测试,原型和基础设施,我可能写了大约5千字节。然而,一个项目采用了现有的25kloc C / C ++应用程序,并将其重新实现为1100行Erlang,另一个项目占用了15kloc的现有C库并将其转换为1kloc的C ++,因此网络严重为负。我拥有这些数字的唯一原因是我希望看到有多么消极。

我知道这是一个老帖子,但无论如何这可能对某人有用......

我最近从一家公司搬到了大约9。5年的Java开发人员。我们所有的代码都在CVS中,然后是SVN,Atlassian Fisheye提供了一个视图。

当我离开时,Fisheye报告我的个人,总LOC为+ - 250,000。以下是其 LOC指标的鱼眼描述,包括有关如何计算每个SVN用户的个人LOC的讨论。注意SVN中分支和合并的问题,LOC应该只基于TRUNK。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top