在评估候选者时确实要求代码示例的人的一种观点是,有一些高级功能(代码的内容)和一些低级功能(代码的结构)。高级功能:
- 身份:代码的风格。如果您要以自己的用户界面/ HCI编码器计费,那么我希望在运行它时看起来很直观。如果您是数据库构建者,那么我想对数据表示或分析感兴趣。样本应该是您引以为傲的东西。如果您至少没有其中之一,那么您就没有身份。
- 成熟度:您是否针对不同的问题调整策略?您正在解决有趣的问题吗?代码或方法是否容易扩展到类似问题?相反,我是否正在寻找货运邪教公社的成员?
- 交流:代码是否容易解释其作用及其原因?这并不意味着代码需要简单。实际上,使复杂的代码易于理解是一个好处。
低级方面比较简单:
- 样式:代码应整洁,一致(遵循一些已建立的准则)并有充分的文档记录。
- 包装:至少应有简短的自述文件,可运行的版本和可运行的测试。自述文件应告诉我如何运行后两个代码,以及为什么要演示此特定代码示例。
- 语言:我通常会要求某人提供该职位所用语言的样本以及他们最擅长的一种语言。
对于一个好的候选人,我希望样本可以是:A)防弹的小样本,或者B)有趣的大型项目的重要部分(例如,来自Github个人仓库的模块)。我希望它们是个人项目或学术项目。如果他们从付费项目中寄出一个邮件,我希望得到一条说明,告知他们可以使用它。如果我没收到笔记,我将把他们从候选人(弱候选人)中剔除,或在面试(强候选人)中询问他们。未经许可将是一个很大的危险信号(可能无法克服)。对于一个高级候选人,我希望有一个免责声明,指出他们的一些最佳来源样本无法显示,因为这是他们工作的一部分。但是,我然后期望得到一个涌现的证明,即为什么他们为这种不起眼的设计感到自豪,以及他们如何像孩子一样爱它。
最后,有人嘲笑“哦,有人可以从互联网上获取代码示例”,反驳的观点是,大多数不了解优质生产质量代码的人也看不到它。 。此外,您始终可以在Google上找到一条与众不同的代码行来进行检查。而且,充其量,窃取代码会使候选人在面试中感到尴尬(“那么,为什么要这样做呢??”)。
关于先前雇用的代码的最后说明:别这样。从人力资源的角度来看,从以前的工作中索要代码是不适当的,并且是关于公司的危险信号。你们俩都有法律责任(即,你们都可能被起诉),这表明他们不知道自己在做什么。除非已公开可用的密码或您已获得该雇主的明确许可,否则永远不应给出为前任雇主编写的密码。更糟糕的是,在一家大公司中,您的直接上司可能无权授予您许可,那么在这种情况下与法律部门玩得开心吗?我相信他们会为即将离职的员工公开IP感到高兴。