要求在面试中看到雇主的代码/数据库

我被要求在面试中写代码/devise的东西。 有时甚至提供代码示例。 非常合理,非常明智(总是感到惊讶,当这不会发生)

我在一年左右的时间里有一份工作,如果我看到了我不得不提前处理的那个烂摊子,那么代码太糟糕了,我不会拿这份工作。 我不能告诉你有多less可怕的数据库,我不得不合作。

请问他们提供一个代码示例并查看他们的数据库devise是否不可能? 假设我很乐意签署NDA,我觉得我的一部分人觉得如果不检查我将要使用的代码库或数据库,就会疯狂地找一份工作。

任何人这样做?

更新

如果事情进展顺利的话,我会在面试过程中稍后再提出这个问题。

这也是在小商店或小型项目中工作的情况,因为我倾向于避免使用诸如“让开发者离开地板”

你绝对可以问。 答案可能是“不”,但是没有人应该认为这是一个不好或不恰当的问题。

如果他们不会向您显示代码,那么您在决定是否接受要约时一定要考虑这一点。 我认为这是一个标志,至less以下一种情况是正确的:

  • 代码太可怕了,他们知道你会逃跑尖叫。
  • 该公司有一个超级秘密的信任,没有人文化(我讨厌)。
  • 该公司认为他们有这样惊人的代码,只是看着它会变成一个超级巨星的竞争对手。 (换句话说,他们是自欺欺人的白痴。)
  • 他们有明显的安全漏洞,他们希望保密。
  • 面试你的人不知道如何自己得到代码。 (在这种情况下,你不是在和正确的人交谈。)

我会更感兴趣的是看到公司的系统 – 即testing框架,发布过程,自动构build……这些东西的存在与否会告诉我更多的是几百行代码。

我曾经问过: “我能看到一些代码并和在这里工作的程序员交谈吗?

雇主回答说: “当然,你可以直接和我们的信息系统的程序员谈谈!”

多么荣幸!

  • 他们给我看了概念文件
  • 我可以和首席程序员交谈
  • 他们向我展示了一个非常新的项目中的一小部分: “这只是一个原型,direct3d太粗略了,这就是为什么这个代码太混乱了”

事实certificate:

  • 领导程序员离开了我到达的那一天
  • 他带头的软件是一团糟
  • 不知何故,我最终花费了50%的时间,对付这个烂摊子

我们接受采访的候选人都没有问过这个问题。 然而,他们中的许多人是公司合作社/实习生,所以他们熟悉我们的代码。

话虽如此,我们不太可能向任何候选人展示我们的代码,而不pipeNDA。 我会很乐意回答关于我们使用哪些技术,我们使用什么系统进行修订,实践等等的问题。 没有。

同样在一个足够大的系统(和我们一样),有人可以向你展示“最好”的代码,你将会在那里开始:)至于数据库devise……我曾经工作过的两家公司都有有非常大的数据库(大学,公司公司)…所以也不pipe用。

我在采访Xerox PARC(一家创业公司)和雅虎(Yahoo)时已经提到过这个问题。

在PARC,他们坐在我的工作站上,如果被聘用的话,我会接pipe这个代码,超级简单地翻过代码库的结构,并且让我独处大约20分钟。 这足以让我知道我是否可以忍受这个问题,尽pipe我还是喜欢一些时间,比如一小时。 之后我问了一个看似可疑的devise决定,我们聊起了一般的devise和风格。 这不仅仅是告诉了我更多关于这个工作的信息,它还告诉 更多的关于我的信息 :我是自上而下还是自下而上探究他们的代码,我接受了什么,或者询问了什么等等。

在创业期间,他们在另一天另外开了一个会议,把代码的作者(不是员工)带进来。 我们坐在一台笔记本电脑上,一起过去了。 这对他们来说是一个不寻常的要求,我想我必须签署一份新的NDA。 这再一次是值得的:我早些时候的访谈并没有真正清除AI语言的全部内容,或者他们希望我用它来做什么,坐下来用一些具体代码吹走了大量的雾。

在雅虎,我什么都看不到。 我不记得他们的回应是什么。 如果我看到我最后处理的代码,我可能会有第二个想法(尽pipe最终结果是好的)。 (我所看到的上述两个代码库看起来总体上都比较好,后面的PARC是开源的。)

在所有这些情况下,我都与他们分享了一些我自己的代码。

如果你打算这样做,那么我认为你需要给他们一些警告,这样他们可以准备一个NDA,并build立一个你可以看到的适合的环境。 也准备花一点时间来理解为什么代码是在它的形状。

如果你在第一次面试时出现,说对了,我能看到代码吗,除极less数人之外,所有人都会说不。 不一定是因为他们是邪恶的,不想告诉你,而是因为它不是那么简单。

根据我作为一家大型软件公司招聘人员的经验,我们需要相当长的时间才能披露足够的代码细节,并为任何候选人提供内部开发的框架 – 无论明亮 – 都能够对其做出有意义的判断优点和缺点。 如果我们认真聘用他们,我们只会考虑这样做。

如果我被问到这个问题,我会说好的,再回来一次,我们会安排一些事情。 我会得到一个值得信赖的开发人员,让他们带来一台笔记本电脑来下一个采访,并显示一些代码。

现实中几乎任何一个规模合理的软件项目,已经存在一个以上的版本都会有一些可怕的垃圾。

类似于其他一些答复,我从来没有一个应聘者要求看我们的代码。 即使他们这样做,我也非常小心,很可能不会。 正如Swati提到的,​​几乎任何非平凡的系统都会有看起来不错的部分,所以即使看到这些代码也无济于事。

Joeltesting比实际的代码更好。 基本上,你可以问一个雇主是12或者是没有问题。 答案越多,工作环境就越好。 这显然不是一个硬性和快速的“规则”,但它似乎表明认真对待代码(和编码 )的公司。

我不能想到不显示某些类或谈论他们正在使用的架构的原因。 从我的angular度来看,这就像要求他们告诉你你要去哪里工作(房间,桌子,椅子,队友……)。 无论如何,要求它会告诉他们你对最佳实践感兴趣,而且你也不想以任何代价find一份工作,也不知道如何能够受到伤害。

转到开源项目。 在那里,您不必要求查看代码的权限。

问这个问题并不难,这是一个非常好的主意,我将把它添加到我的问题清单中去问雇主。

一个有趣的想法,但我不知道有多less公司会去。 我知道我们现在工作的地方是做不到的。

我认为你将遇到的最大的问题是,我发现很多人对不喜欢他们代码的人冒犯了。 这就像批评某人的治疗师,做一个局外人并不是一个好主意。 看到代码,然后不去做这个工作可能会给你一个傲慢或者不够好的代码,这就是为什么你没有接受这个工作。 这可能会使你不能find你不想要的工作,但这会给你带来负面的声誉。 我住在一个相当大的城市,但是IT人员还是互相认识,互相传播。 我们这个领域的人都有自我意识,比别人承认自己写的代码还没有达到标准要容易。

即使他们向你展示了一些代码,那么就足以让你对代码的质量有一个粗略的结论了,你将花时间与这些代码相比较吗? 例如,在我以前的地方,他们的产品之一是一个大型的电子银行中间件应用程序。 该应用程序的核心是在C + +中,并devise和写一个伟大的方式。 然而,C ++中的扩展(其中大部分是应用程序及其各种不同的版本),主要由经验较less和知识欠缺的开发人员编码,这是一堆糟糕的代码我不得不修复,并从头开始写或从头开始写)只是以某种方式工作。 如果我曾要求他们在面试中向我展示代码片段,他们向我展示了一些核心内容(扩展代码实际上主要包含客户特定的业务逻辑,所以如果没有业务领域知识等),我会认为代码的整体质量是好的(这不完全是这种情况)。

我相信,问问代码片段更重要的是询问他们使用哪个源代码控制产品(逃离回答“Visual SourceSafe”的公司)以及他们使用哪种方法:“敏捷”或“Scrum”发送积极的信号,CMMI通常意味着公司喜欢官僚程序,如果他们给你一个“呃? 那么你被警告;)

我认为这是一个很棒的点子; 然而,作为一个雇主,我会犹豫 – 即使有保密协议 – 提供面试候选人的真实,有效的代码样本,除非我非常确定我想雇用这个人。

问题是他们会向你展示一些代码,但是他们每个程序员都会以不同的方式编写代码。 不幸的是,必须编写好的代码库部分。

询问他们的编码标准以及他们如何执行它更可能是有用的。