一位Python/TurboGears网络开发者的好面试问题是什么?

7

如果您正在寻找一名主要使用TurboGears/Python工作的Web开发人员,您应该问他们什么样的问题?


7
希望他没有也在 Stack Overflow 上... :) - Stefano Borini
3
不,如果他在SO网站上,那可能是件好事。 - Kaleb Brasee
4个回答

15
除了其他答案中提出的好建议外,我总是喜欢问(任何与Web相关的开发人员候选人):“当用户在浏览器地址栏中键入www.foo.com并按回车键时,会发生什么?请尽可能详细或简要地描述,然后我们可能会深入探讨答案的某些或所有部分。”
除了使用的服务器端框架之外,这可以告诉我关于候选人对其他重要技术的理解的很多:HTTP和它下面的整个TCP / IP堆栈,DNS,各种缓存(以及它们有时会成为问题以及您作为开发人员可以尝试做些什么...),浏览器技术的表面可见方面,cookie,HTML和CSS以及可能一些JavaScript等。
是的,我们使用的日常技术,例如框架,努力摆脱所有这些(从而增加生产力),但Joel Spolsky的泄漏的抽象法则适用-意识到您通常抽象化的堆栈层对于真正掌握软件工艺至关重要。
根据应聘者面试的职位细节,需要在不同领域适当深入探讨。例如,描述(以合理抽象级别)HTTP请求如何(通过Web服务器和Turbogears机制,可能通过WSGI)到达您的应用程序代码,大致了解您的代码如何研究请求并准备响应,响应如何打包并发送回请求浏览器,这些都可能是感兴趣的项目 - 具体取决于开发人员可能有哪些前端/UI责任,更多关于浏览器将如何处理响应的各个方面(包括链接到样式表、脚本、图像等)也可能是适当的。
任何人都可以“填鸭式”学习特定技术,比如框架,如果他们聪明到足以在“问答式”面试中“获胜”。但是,任何能够在更开放式、自由式的面试中获胜的人,往往已经真正掌握并理解了相关技术和抽象层次的许多方面 - 即使他们从未使用过Turbogears(而是Django、Wekrzeug和web.py),也更愿意雇用具有这种彻底、深入根深蒂固的理解的人[他们可以在一周内把Turbogears特定的细节填满],而不是那些已经记住了一大堆Turbogears参考手册但实际上并不理解HTTP、cookie、TCP/IP等知识...(那种缺陷至少需要几个月才能弥补)。

1
非常好的观点。特别是理解整个HTTP网络请求/响应的过程。谢谢。 - rmontgomery429
+1 对于一般方法论。我遇到过很多面试官,他们缺乏自律,无法防止像你建议的那样的漫谈式面试变成展示他们自己所谓优越的编程技能和自我膨胀的表现。我认为编程作业练习仍然是评估潜在候选人的有效工具。 - Noufal Ibrahim

2
最好的面试问题是那些要求被面试者解决问题的问题。
以下是一些半随机的建议(在 FizzBizz test 之后):

Python

让他们在你所在领域内实现一个非平凡的项目,需要一周时间。我曾经申请过一个搜索公司,他们要求我实现一个协同过滤系统。
通常会让人感到困惑的领域包括装饰器、类型系统、元类,也许还有迭代器。你可以问他们一些关于这些东西的问题来探究他们的深度。

TurboGears

我在这里不能提出太多建议,但你可以考察他们所选择的 ORM(构建一些映射器和查询),询问一些关于验证的问题(我在使用 FormEncode 时遇到了一些有条件的验证问题)。你还可以稍微谈谈他们如何测试应用程序,确保它具有可扩展性,测试其性能并部署它。

1

向他询问:

  • 内省(Instrospection)
  • 模型-视图-控制(Model-View-Control)设计
  • 文档化工具

如果他对此非常了解,那么肯定对其他问题也很了解。


1

不要进行简单的问答。从你们版本控制系统中获取一些真实(可能是有缺陷的)代码,并让他们告诉你如何修复它或添加功能。

如果可以的话,请求他们带来一些以前的工作样本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接