前段时间 ,本人通过自学Python成功拿到4个offer,地点魔都,也拿到了自己比较满意的薪水。最近挺感慨的,晚上躺在床上回想自己这一路甚是不易,经历诸多不顺,但对自己而言更多的是迷茫与恐惧,恐惧未知,恐惧没有结果,那种夜夜难以入眠的感觉久久萦绕心头难以散去,以至于在很长一段时间自己都处于焦虑异常的状态,如果再来一次,也许自己不会走这条路。
每次在网上搜索相关资料时都会看到与我最初一样的朋友,或纠结、或迷茫、或无助,感同身受,因自己水平有限,不能提供直接的帮助,但于心何忍,便想把此次的面试经历分享出来,希望对他人有用吧。本人面试的岗位相对而言比较初级,挺适合刚开始接触Python的人。面试岗位:python开发与爬虫(最终选择了python开发)。下面我把两种岗位的面试题分开记录。
岗位:python开发(都是一些很基础的问题)
1.解释下Python面向对象的三大特性
2.面向对象的设计思想模式
3.python的全局解释器锁
4.python的垃圾回收和内存池机制
5.说说Python中有哪些处理定时任务的方法
6.isinstance和type的区别
7.setdefault()和get()的区别
8.is和==的区别
9.sort()方法里面的key参数有什么用
10.__getitem__是什么意思
11.http/tcp/udp的区别?底层原理是什么
12.put/delete/get/post的区别
13.下面的输出结果:
print(100 or 3)
print(100 & 3)
print(100 | 3)
print(100 >> 3)
14..说一下mongodb中数据存储机制?mongodb在什么情况下使用?mongodb中的索引是怎样处理的
15.Mongo和redis的区别
16.Redis是内存数据库,那么当突然断电或者其它故障出现,如何保证数据不丢失
17.websocket与硬件通讯怎么实现
18.什么是SQL注入?SQL注入怎么防止
19.说说rbac权限思想
20.使用过celery框架吗?说说它的优缺点
21.讲讲django/flask/tornado的区别
22.restful的API和其他的API有什么区别
23.高并发是否有了解,讲讲自己的理解
24.Github在提交过程中如果和别人出现冲突怎么解决?会用SVN吗?它俩的优缺点
25.OAuth2、sso、jwt认证的原理或流程
26.分布式系统是否有了解过,说说自己的看法
27.说说你对进程和线程的理解,举例说明怎么用的
28.线程怎么用的?都有那些库?其中的参数分别是什么意思
30.说出手机扫码登陆,网页显示登陆成功的具体实现过程
31.验证码的值存在哪里?在session里面存具体有哪些方式(说出四种)
32.聊天页面,打开两个窗口,操作一个窗口,如何实现不刷新,另一个窗口加载出新内容
33.前端和后端的交互都是怎么实现的
34.数据库的设计原则及优化
35.索引有哪些类别?分别有什么用
36.手写数据结构和算法(二叉树,冒泡排序和其它排序)
37.算法:决策树、聚类、tensorflow,SVM的原理及使用
38.nginx的作用?为什么要用它,什么情况下用?一般用来部署什么
岗位:爬虫
1.手写一个具体的爬虫框架流程并做一下解释
2.手写你遇到过的所有反爬机制,并说说处理方式
3.分布式去重原理,分布式爬虫里,scrapy-redis会走调度器吗
4.验证码识别技术有哪些
5.如何处理有文字排序和汉字,或者图片验证码的情况
6.除了分布式还有哪些方法提高爬虫效率
7.爬虫的增量采集你怎么知道其中一个网站是否采到了?下次采集如何判定数据未与上次采集数据重复
8.数据处理中用到了Pandas库中的哪些方法
9.Pandas中apply()和applymap()的区别
10.知道jieba分词的原理吗?详细说说
11.opencv用过吗?知道哪些方法,原理
12.如果在众多网址中我只要其中一两个网站的数据你怎么做
13.redis是怎么用的,在爬虫中的作用是怎样的
14.scrapy的去重是怎样实现的
15.scrapy中间件有几种类,你用过哪些中间件
16.scrapy中间件在哪里起的作用
17.有随机数,加密的网站怎么弄
18.pyspider有什么好处
19.数据可视化工具用过哪些
20.如何实时监控哪些网站是否结构已经变了,或者说没有采集到数据
21.如果有的网站你所要爬取的数据是以图片的形式展示的,你怎么做,如果是ajax生成的呢
22.一个页面中静态数据只采集一次,其它的动态数据想每天都采集你会怎么做
23.如何判断你要的数据已经爬取完毕
24.爬虫中用过多线程吗?讲讲怎么用的
25.跨域请求你都知道用了哪些方式
26.说说你怎么做的数据去重? 那你还知道那些办法
以上是面试过程中相对重复率比较高或者具体的问题,也有相当一部分是伴随项目而问。从这次面试也了解到目前python岗位对于算法要求越来越高,机器学习这一块还是多了解的好,对于爬虫的要求也是越来越高,不仅仅是数据的采集,还有数据处理和数据分析,数据可视化等这些更加重要 。当然最重要的还是项目!项目!项目!可以在网上搜一些比较好的项目,一定要自己亲手过一遍,把所有细节搞清楚,这样才能在面试中游刃有余,相对的才能得到自己满意的薪资。在学习的过程中静下心,忌浮躁,努力过后,发现曾经所追求的不值一提,前面的风景更美好,加油。
后面可能会把自己自学过程中的资料与学习方法整理出来,分享给需要的人。
网友评论