学生自学Python去面试,月薪为何仅3K?面试官问题解析!
很多人认为Python语言简单(实际真的那么简单吗?语法简洁不代表容易学),都去自学Python编程语言,然后寻思出去找一份好的工作,其中学生居多。所以这套面试题我随机例举了几个罢了,文末有提示。
一般面试官见到初入社会的学生,他不会问你多少年的开发经验,最多他只会提你是自学还是系统学,熟悉哪些框架?所提的面试题也会相对简单,然而薪资方面也会大幅度降低,这是人之常情。
大型企业的面试题总会出一些新花样,来表示它们的与众不同之处。似是而非,感觉很容易,实际上你确实答不出来!这就是他们想要的效果,他们会说这么基础的Python知识点你都答不出来等等...从而降低你的月薪。
下面的面试问题主要涉及的都是Python语言本身,不是哪些模块与框架的掌握,每个面试题实际上都是一个教程,一些面试题甚至会涉及到多个编程领域。这是你以后面试的一道护身符。
1、Python编程是什么?他会鼓励你与其它语言做对比。
答案:
- Python为面对对象解释型语言。与C语言等其它封装的语言不同之处在于跑Python代码之前无需编译。
- Python是动态类型语言,在声明变量时,无需说明变量的类型。举例X = 111 程序也不会报错,但是在其它语言里就不一定了。
- Python代码简洁,所以编写速度很快,然而运行速度却比编译语言慢。但是Python可以与C语言嵌入式编程,所以我们可以解决这个问题。例:numpy模块运行速度非常快,但其算术运算却并不是由Python实现的。
- Python用途非常广泛,爬虫,web,运维,大数据,人工智能等等,可以帮助其他语言和组件改善运行状况,所以称之为“胶水语言”。
- Python有丰富的第三方库,程序员可以专注于算法与数据结构设计,而不用去处理底层的细节。
面试官为何问此问题,我觉得无需解释。
2、补充下面代码中所缺失的代码部分
答案
- 让你写代码,当然一方面可以检测你对代码的严谨程度。命名规范是否统一等。
- 递归函数不仅需要递归而且需要终止,否则将会无休无止的调用栈,看你是否明白其中的原理。
- 使用os模块和操作系统进行交互,交互方式可以跨平台。代码sChildPath = sPath + '/' + sChild,在Windows系统上是会报错的。
- 当你不知道代码所需要实现的功能时,你可以大胆的问,不然你无法答题。
递归在Python中很重要,同时考验你操作系统进行交互的知识点是否掌握。
3、A0,A1至An的最终值是什么
问题的意义:
- 列表解析对效率的提升显著,但是也是很多人的学习障碍。
- 部分Python代码故意写的很怪的,就是让你知道以后你的同事可能就是如此。
4、Python的多线程是什么?例举Python代码用并行方式运行的办法。
Python的多线程与其它语言有着本质的差别。Python确实有多线程包,但Python中有一个GIL的存在,它会让你的多个线程中,始终只有一个被执行,所以对提升代码效率没有任何意义。
但是当我们想同时执行一些任务,不考虑效率问题时,那么使用threading包是很方便的。
这个问题很关键:许多学过其它编程语言的开发人员,始终不信多线程鸡肋,不碰南墙不回头,实际上也是看你是什么水平了。
5、看代码,写出输出结果
答案
输出的结果用注解表示:
为何问这个问题:
面对对象的理解是Python编程的核心,考验你是否理解了继承与Python中super函数的使用方法。
6、你是否有过失败经历?
错误答案
从未,举世无敌
人性考验:
公司需要敢承认错误,为自己的错误负责,并且能够从错误中学习的人。如果你真的没有过失败,那回答这个问题的时候你可能需要编故事了。
7、是否独立用Python开发过项目,就算没问,你一定要自己补充。
真的?
做过个人项目,说明你的技能水平方面比一般人较高,而且愿意付出更多的努力,甚至你确实是热爱Python。同时你有维护你的Python个人项目,这可是属于工作之外的事情,言外之意就是你工作之外也坚持编程,到此,就懂了。
此Python面试题我拿来的都是最简单的,是真正的学生面试题,为什么我不拿难度高的呢?因为很多工程师面试题一般网友也无法做出来!如果你能够都答出来,那么你真的可以去面试了,但是我还是建议再修炼一段时间Python,因为这样的题表示你的薪资不会太高。