在最近的一次采访中,我问采访者“您如何评估新技术和库(例如SignalR)并将其投入使用?”。他们说他们没有,相反,他们自己写了所有东西,所以他们不必依靠任何其他人。
该公司不为政府或国防承包商工作,也不从事任何对安全至关重要的项目。他们只是您的一般中型软件开发公司。
我的问题是:团队自己编写所有内容有多普遍?我应该为此感到担忧吗?
编辑-大多数回答都说这是值得关注的事情。是否可以进行第二次面试,让他们澄清/重复自己在家里编写所有内容的立场?
在最近的一次采访中,我问采访者“您如何评估新技术和库(例如SignalR)并将其投入使用?”。他们说他们没有,相反,他们自己写了所有东西,所以他们不必依靠任何其他人。
该公司不为政府或国防承包商工作,也不从事任何对安全至关重要的项目。他们只是您的一般中型软件开发公司。
我的问题是:团队自己编写所有内容有多普遍?我应该为此感到担忧吗?
编辑-大多数回答都说这是值得关注的事情。是否可以进行第二次面试,让他们澄清/重复自己在家里编写所有内容的立场?
Answers:
从不使用第三方库的态度是荒谬的。除非您有严格的业务要求,即代码库中的每一行都是由公司员工编写的,否则您自己编写所有内容都是对公司时间的可怕利用-但这是不寻常的情况,尤其是对于像这样的私营公司而言你已经描述过了
一个更合理,更彻底的答案可能是,他们只会使用具有以下功能的第三方库:
如果满足了这些条件(并且根据我的经验,代码审查非常灵活,尤其是在存在良好测试的情况下),那么您将不再“依赖其他任何人”,而是依赖现有的,可用的并且最好是健壮的码。
如果代码是开源的,那么在最坏的情况下,第三方库将变得无法维护。但谁在乎?测试证明该库适合您的需求!
此外,对已建立的第三方库的厌恶严重阻碍了程序员的生产力。假设该公司正在编写Web应用程序,但拒绝使用jQuery,因此编写了自己的跨浏览器库来简化DOM操作。几乎可以肯定地假设它们的实现:
所有这些点都是阻碍程序员生产力的主要障碍。企业如何负担得起这样的生产力?
您已更新问题,以询问是否适合再次参加面试。绝对是。
也许您在第一次面试中误解了面试官的答案,或者面试官只是错误地解释了公司的职位,新面试官可以澄清这一点。
如果您解释说您担心它们对外部库的立场,那么至少有两种可能的结果:
这似乎极具竞争力。我曾在一些商店工作,由于某些“关键”缺失功能,他们决定跳过像Hibernate这样的标准开源库,并自行推出。最后,该软件的构建和维护成本非常高。当然,内部图书馆的费用被大大低估了。在编写内部库的同时,标准库也迅速发展,增加了内部库中不可用的新功能。最后,使用标准库将花费一个小时的工作,而花了两天的时间。随着世界的过去,这对开发人员的职业不利。我会避免这样的商店。我喜欢交付,并且在我可以重用时没有耐心重写。
我有几个朋友(都)曾在软件公司工作过而没有在这里发明综合征。因此心态在那里。
他们俩都观察到了围绕开发团队所培养的文化的观点。他们俩最终都与在软件开发方面颇为陌生的人一起工作,而这些人并没有真正地被迫学习新事物和追求质量。无论您处于职业生涯的哪个阶段,您始终希望在某个有机会向同行学习新事物的地方工作。但是,这种环境似乎通常不在希望自己滚动所有内容的地方找到。
如果您是一家具有一定规模的基于技术的公司,那么您似乎将开发越来越多的自己的技术,例如:google开发了很多(如果不是全部的话)他们的全部软件,而大部分是开源的追求使其成为行业标准。
对于较小的公司,当他们尝试使用自己的业务逻辑来交付特定产品时,似乎完全是在浪费时间,而根据我的经验,我还没有看到中小型公司这样做。
当您谈论高度专业化的代码库时,它会变得更加复杂,例如:加密算法-有些人对它们的工作方式有基本的了解,但是实际实施解决方案的复杂部分似乎像是一脚枪击自己除非您雇用专门从事此类工作的密码学家。
有些公司确实允许自由创建自己的开源项目,这似乎更合适。
我个人不会去有这种文化的地方。
您所拥有的是一个非常好的机会,可以参加第二次面试,并向他们提出一些棘手的问题。我不知道公司在做什么,因此很难说为什么这似乎是一个奇怪的选择。您可以使用@Daniel Pryden关于Google使用第三方库的评论。
无论使用内部软件还是第三方软件,任何使用的软件都有其优点和缺点。不要使用一种工具,因为它不是公司内部的,即使它是工作的最佳工具,但显示出一定的封闭心态,也永远不会鼓励创新和创造力。
也许尽管,也许也许,您是介绍这种变化的人。祝一切顺利。
当然,你应该走开。我没有看到这里提到的内容,但是最重要的原因是因为您不会获得很多可转让的技能。
想象一下,在下一次面试时,他们问您使用的技术是什么,而您只能提及裸露的C ++。这听起来像是研究生水平
大公司自己写所有东西。
自己编写它有几个优点:
如果您使用别人的库,以下是每个要点的破绽: