面试乐融集团Python开发工程师有感
这是笔者第一次面试,,乐融集团位于朝阳区朝阳公园的乐融大厦。是下午两点的笔面试,笔者是一点半到的,然后在里面等了会,开始笔试
笔试题并不是太难,就是考的比较宽,因为笔者是校招,所以笔试题出来了数据结构的二叉树知识和先序遍历,中序遍历,后序遍历等等的知识,
还考了进制,以及计算机网络的ip分类,tcp/ip四层协议,考了点PHP知识,因为笔者并没有学过PHP的东西,所以关于PHP的部分都是瞎猜的,然后
是关于数据库的知识,数据库的事务是什么以及如何操作,还有面向对象编程和面向过程编程的优缺点,最后是一道二分法查找的算法,不管你笔试结果如何
都会面试,接下来是笔者回忆的一面以及二面面试官问的问题。要面试的小伙伴可以参考参考 。
1.你先讲一下你这个项目的大体流程
...我们项目是基于scrapy和flask的一个小项目,先使用scrapy框架从网上爬取所需要的知识,我们爬取的是51job网站的职位信息,然后将他们存入数据库中,
然后运用flask框架可以前后端结合,将后端也就是数据库中的职位信息展示到前端页面上。
2.你的项目中的数据库表结构是如何设置的
...因为项目比较小,所以表结构也不是太复杂,主要是51job的职位表,boss直聘的职位表,还有用户表等,运用powerdesign就可以轻松地设置出表结构
3.mysql数据库和Oracle数据库他俩之间的区别
...笔者并不是很清楚这个东西,就没答,有会的同学可以评论。
4.mysql数据库查100条数据和oracle数据库查100条数据的区别
...同样不会,只好说在数据库方面只会基本的dml操作和一些复杂的多表查询等等,这俩之间的区别是真的不清楚。
5.你平时在学校熬夜么
...熬夜啊,经常熬夜,一般谁的很晚,然后面试官说,咋们这个行业肯定会加班的,BAT内些大公司加班更严重,我说,我知道的,这一行肯定会加班
6.周末你一般干什么
...刚来北京的时候,每周末经常出去逛,去故宫啊,长城啊等等景点游玩,然后要是懒得出去的话,就在宿舍打打游戏,或者看看电影啥的
7.你周末出去是一个人还是和朋友
..和朋友啊,一个人的话,就不是太想出去玩,还是比较宅
8.在学校的英语和数学如何
...英语不好,四级最高才考了410,数学吧,还凑合。
还问了一些不太重要的问题,记不太清了,然后等了一会通知二面
1.你可以详细的讲讲你的项目的具体实现步骤以及实现过程中都遇到了那些问题,以及如何解决的
...我们先是确定要爬取的网页url,比如要在51job上爬取北京Python职位的职位信息,先在51上选好条件,然后得到url链接,然后分析页面上的字段,然后将爬下来的职位信息,例如职位名称,公司名等插入到mysql数据库里,然后使用flask框架将前后端结合起来,将爬下来的数据分析后运用echars可以直观的展示给别人看。
...也遇到了很多问题,例如设计登录注册模块,在前端页面点击注册,用户名密码传不到数据库里,使用了一个session将用户密码保存,再然后存到数据库,登录也是,前端界面得用到POST方法才可以,GET方法只是返回数据,不能提交数据。
...遇到问题后,一般先自己百度百度,要是不行的话就问我们组长,最后在询问老师
2.flask框架是如何操作的,就是你如何点击登录,将返回一个界面
...flask是一个轻量级web开发框架,自带额webservers服务,首先在app.py里定义一个登录方法,如下
@app.route('/',methods=['GET']) def hello_world(): return render_template('main.html')
先app.route,然后是链接,再然后决定用POST还是GET方法
3.你有没有看过scrapy或者flask的源代码
...emm这个,没有看过
4.你知道cpy和pypy吗?
..不知道,然后面试官说目前的python解释器大部分都是基于c的,pypy是先预编译了一遍,再然后解释起来速度会比基于c的解释器快一半左右,代码根本不需要改,就是换一个解释器就行
5.你在代码中是如何处理反爬虫的
...加一个动态代理,然后在setting中设置时间间隔,我只用了这俩种方法,至于其他的动态ip,添加referer技术也没有使用
6.假如你是一个网站,你如何识别它是一个爬虫程序
...emm这个不太清楚,面试官说,假如你是浏览器,你得看header里面的useragent是否有规律
7.我看你有博客园和Github,是自己兴趣吗还是
...博客园是老师建议的,不过发了几篇博客后自己慢慢的喜欢上了博客园,没事可以回头看看青涩的自己,github就是自己的兴趣了,希望别人可以从自己的代码里学到一些知识
8.如何在linux下面查看一个项目某一段时间的日志
...emm这个Linux用的不太多,只会一些基本的ls和cd,面试官说你只用两个命令结合起来就可以了,具体也没说是啥命令,说了我应该也忘了,,
大体上印象深刻的就是这么些了,二面面试官还问了一些我都没有听过的专业名称,,我现在已经记不起来了。。
总之以后还得了解了解linux系统的比较深的操作,面试官都特别和蔼,很温柔,也教了我很多,主要还是自己实力不行。还得努力学习。。。
希望要面试python开发的同学可以从我这篇文章学到一些知识。