Chris在开发API服务方面有多年的经验. 他最喜欢使用aiohttp包, SQLAlchemy(蒸馏器), 和PostgreSQL栈, 但他也熟悉弗拉斯克, MongoDB, Redis, and more. 他是Indico Data solutions后端团队的一员,Indico Data solutions是一家机器学习API和工具提供商,负责开发处理大数据处理和分析的后端服务. Chris在AWS、GCE和Azure云方面也有出色的技能.
原因很容易理解. Python是许多高增长领域的主导语言,包括 数据操作, 深度学习, and 工作流自动化. 甚至在传统上由其他语言主导的地区,例如, web开发——python是一种流行的语言,它提供了强大的工具和广泛的库,这些库是由活跃的开发人员社区构建的. 潜在的Python应用程序包括 自然语言处理, 主题建模, and 数学规划 to 社交媒体分析 and 现金流量模型.
The Python的功能和多功能性 对于那些希望雇佣最好的Python程序员来满足他们需求的公司来说,现在有两个挑战:如何雇佣一个对Python足够了解的开发人员来有效地利用它的功能,同时避免它的陷阱, 以及如何雇佣在你所招聘的特定行业中是专家的Python开发人员.
Toptal提供了一个以代码为中心的集合 Python面试问题. However, 在面试中问一些能引出对概念的见解的问题是很有价值的, 补充编码问题的技术知识:
什么是生成器,生成器有哪些用例?
在某一时刻, 所有Python程序员都写过遍历某种集合的代码, 对每个元素执行相同的操作. Iterating through collections is a basic operation when programming; however, 更高级的Python程序员将有使用生成器的经验.
生成器是一个函数, 在循环的上下文中, behaves similarly to a List or Set; each element can be iterated over. 不同之处在于,实际上并没有创建和存储整个List或Set. 当使用生成器时,所有的值都是动态生成的. 函数成为生成器 yield 关键字返回值. 每个的值 yield 类似于List或Set中的元素. 在很多情况下, yield 在循环中使用,自动生成大量元素. 在生成器上迭代将从一个移动 yield 到下一个,直到一个都不剩.
This question pertains to function scoping in Python’s object-oriented programming system; experienced developers should be able to answer this question.
静态方法是与类关联但既不能访问类变量也不能访问实例变量的方法. 它们或多或少是常规函数,但被分组在类的名称空间下,因为它们在概念上与类相关联. 它们可以像类方法一样被调用 the_instance.method() or TheClass.method().
Python函数如何传递变量? 是按值还是按引用?
Python使用一个称为对象引用的系统, 哪个是传递值和传递引用的组合. 传递一个可变对象, 比如列表或字典, 传递对对象内存位置的引用. 函数所做的任何更改都将反映在函数外部的原始对象中. 传递一个不可变对象,如Number或String,将值的副本传递给函数. Only the copy is changed by the function; the original value remains the same.
这个问题让应试者展示他们在使用带有可变和不可变对象的函数方面的知识, Python编程的基本技能.
什么是列表推导?
列表推导是一个列表处理工具,允许Python开发人员进行过滤, 遍历, 与传统的语法相比,使用更加紧凑和可读的语法来操作列表和可迭代对象 for loop. 使用列表推导式,一个简单的 for 循环可以只用一行替换. 除了, 列表推导通常会稍微快一些,因为它避免了与按需创建列表相关的一些开销.
但是,您可以采用什么策略来确保您雇用的Python开发人员跟上最新的Python开发和行业趋势呢? 因为软件行业是不断发展的, 一个专注的Python开发人员总是在学习. 询问应聘者哪些科技博客, forums, 他们关注或参与的出版物可以让他们了解他们所关注的技术趋势. 候选人也可以贡献 开源项目; check their GitHub profile to see what projects they’ve worked on recently. 讨论最近的项目时, 深入了解他们使用的技术, 并询问他们使用最新版本Python的经验, 以及目前有需求的图书馆. 另外, 询问应聘者对哪些新兴技术最感兴趣,可以衡量出他们对整体技术发展的兴奋程度.