高级Python开发人员面试问题
在某些方面,即使是最具技术性的职位也需要具备所有职位的强大候选人所具备的共同品质:学习的意愿;合格的技能;对工作的热情。
即使是大学表现,虽然它可以帮助你评估正规教育,但也不能给出一个完整的画面。这并不是要低估扎实的计算机科学背景的重要性。当寻找一个高级Python开发人员:
了解基本的算法概念
•讨论基本算法,他们将如何找到/思考/排序
•他们能否对数据库有更广泛的理解
•他们有建模的方法吗?
他们了解最新的事态发展吗?如果是这样,如何?寻找他们最喜欢的技术书籍。他们在Twitter上关注哪些人,他们会转向哪些博客?
他们在Github上活跃吗?他们是否为开源软件项目做出了贡献?或者参加黑客马拉松。简而言之,他们对所选领域的知识兴趣有多强烈?这是如何证明的?询问其他项目(如游戏开发)。忠诚、好奇的候选人会脱颖而出。
计算机科学问题
- 使用伪代码,实现整数排序数组的二叉搜索
- 什么构成了一个好的单元测试,什么又是一个功能性的单元测试?
- 描述REST API的核心原则。这与RPC有何不同?
角色的问题
- Python中的参数是通过引用还是通过值传递的?
- 为什么函数在Python中考虑了第一类对象?
- 您用什么工具用于Linting,调试和分析?
- 给出一个在可迭代对象上使用filter和reduce的例子
- 什么是列表和字典的推导式?
- 当我们说某个Lambda表达式形成一个闭包时,我们的意思是什么?
- 说出Python 2之间的一些区别。倍和3.倍
- 如何在Python中管理内存?
- 以下代码的输出是什么?
列表= ['a','b','c','d','e']打印列表[10:]
- Python使用全局解释器锁。这是否意味着它不使用真正的线程?
- 生产者线程从网络读取文件,而消费者线程写入文件,这真的可以并行工作吗?GIL呢?
- 回文数读取相同的方式。由两个2位数字的乘积制成的最大的回文是9009 = 91×99.找到由两个3位数字的产品制成的最大的回文。
- 以下代码在每个步骤中的输出是什么?
class C: dangerous = 2危险的c1。print c1. print c1. print危险的打印c2。危险的del c1。危险的打印c1。答案:c