如果您想聘请一位主要使用TurboGears / Python的网络开发人员 - 您应该问他们什么样的问题?
答案 0 :(得分:15)
除了其他答案中的好建议之外,我总是想问的问题(来自任何与网络相关的任何人开发任何东西的人)是:“当用户键入www.foo.com时他们的浏览器的地址栏和点击返回,然后会发生什么?请按照您认为最好的方式详细描述,然后我们可以深入研究答案的部分或全部部分。“
除了正在使用的服务器端框架之外,这可以告诉我很多关于候选人对他们可能最终必须处理的其他关键技术的理解:HTTP以及它下面的整个TCP / IP堆栈,DNS,许多各种各样的缓存(以及它们有时会如何麻烦,以及开发人员可以尝试做些什么......),表面可见的方面浏览器技术,cookie,HTML和CSS,也许还有一些Javascript,......
是的,我们使用的日常技术,例如框架,努力从所有这些中抽象出来(并从而提高生产力),但Joel Spolsky的Law of Leaky Abstractions适用 - 了解堆栈的各个层次。通常抽象离开对于真正掌握软件工艺至关重要。
根据候选人面试的位置细节,深入演练将适用于不同领域。例如,描述(在合理的抽象级别)HTTP请求将如何(通过Web服务器和Turbogears机器,可能通过WSGI)获取应用程序代码,大致如何代码研究请求并准备响应,如何响应将打包并发送回请求的浏览器,可能都是感兴趣的项目 - 取决于有问题的开发人员可能具有哪种前端/ UI职责,更多关于浏览器处理各方面的方式响应(包括样式表,脚本,图像......的链接)也可能是合适的。
任何人都可以“填充”一个特定的技术,如框架,如果他们足够聪明,就可以“进行”“测验”式的采访。但是,任何能够进行更开放式的话语式访谈的人,绝对有可能真正掌握并理解相关技术和抽象的许多层次 - 我更愿意雇用某人这样一个彻底的,根深蒂固的理解,即使他们从未使用过Turbogears(相反,比如说,Django,Wekrzeug和web.py)[他们将能够填补并获得特定于Turbogears的细节。一周,tops],比那些致力于记忆一堆Turbogears参考手册,但并不真正理解HTTP,cookie,TCP / IP的人...( 缺乏,至少需要很多几个月来补救)。
答案 1 :(得分:2)
最好的面试问题是你要求他们解决问题的问题。
以下是一些半随机的建议(在FizzBizz test之后)
给他们一个非平凡的项目,在您工作的域中实施一周以上。我曾经向搜索公司申请过一次,他们让我实施协同过滤系统。
通常令人困惑的区域是装饰器,类型系统,元类,也许是迭代器。你可以向他们询问有关这些事情的事情,以探讨他们的深度。
我不能在这里提出太多建议但你可以在他们选择的ORM上测试它们(构建一些映射器和查询),稍微询问一下验证(我在使用FormEncode时遇到条件验证时遇到了一些麻烦)。您还可以稍微考虑一下他们如何测试应用程序,确保其扩展,测试其性能并进行部署。
答案 2 :(得分:1)
问他:
如果他对此了解很多,那么肯定对其他问题了解很多。
答案 3 :(得分:1)
不要测验。从你的vcs获取一些真实的(可能已损坏的)代码。让他们告诉你他们将如何解决它/添加一个功能。
如果可以的话,请他们带一些以前工作的样本。