最近面试python开发的小小总结

   最近面试了很多人,有做过好几年开发的,也有刚毕业的,发现很多人其实工作了好几年甚至号称10年开发经验,但其实做的事情其实很重复,用的技术基本一样,很多人会说我在公司实现了xxx和xxx系统开发,效率提升了xx倍,最后问下来基本要么curd、爬虫,虽然业务不同,但技术基本一样,发现其实每个人差距都是在细节和技术储备上
问到一些关于设计模式,结果大概有这么几种回答
    1. 有些人直接表示没什么用所以没用过,只是了解过
    2.  看过设计模式,能大概说一些,如工厂模式、单例模式、装饰器模式,但再问这几个的区别及使用场景就开始有点答不上来
    3.  用过,但具体怎么实现的如单例是怎么实现的,一部分会说用new实例,一部分是只会用
    4.  用过,并且会列出来几个实现方式及使用场景

最终的结果和差距可想而知,

关于爬虫发现很多人做了很多年爬虫,但是其实总体工资都上不去,大体都是爬一些买卖房子的(链家,安居客)、电商(天猫,京东,小红书,大众点评)、社交(微信,微博,博客),总结下来规模上大概可以分成这么几类

  1. 做小规模爬,做法基本是起个进程放着跑然后入mysql,就没啦
  2. 做中规模,大概1天几十万数据,最终放入mysql/es,用crontab去做定时(如链家是1天爬10次,安居客一天爬2次,那就是2个crontab)
  3. 大规模,用Scrapy,好一点的就是scrapy+redis做集群,存储用es,统计信息入mysql,也用到一些消息队列如celery

问的一些问题大概这么几个方向
1、用crontab/celery动态加任务怎么办,发现这个问题一问基本挂一片,大部分都是再加个crontab,celery改好重启服务,如果要动态加95%的人就停滞在那了
2、如果每天有100万的数据,涉及到搜索,一般都用es,那你index(不是字段的index,如果不清楚可以看es官方文档)是怎么规划的,每天一个/每月1个/每种类型的数据一个?字段的type是怎么选的,这个问题80%的人也会坑在那,因为没想过

其他还有一些比如
关于进程、线程、协程的一些区别和使用场景
高并发秒杀场景的设计,如是服务器角色怎么规划,锁是怎么设计的(有很多细节的东西可以问),怎么防止库存多扣的问题
mysql的底层算法,跟他算法有什么差别,每个引擎的区别,为什么能实现这个特性(如事务)

当然有些人会说问这个有什么用,实际工作会用得到么,说实话我之前也是这么想的,
你会发现大厂去面试会问一些jvm机制,redis底层实现,然后实际工作可能跟这个没多大关系,但其实关系很大,你不清楚底层实现,具体在使用时如果有2个选择你根本不知道选哪个好,为什么好,为什么索引要这么建、外键查询为什么慢,怎么调优,根本一抹黑

最后附上一句 good good study day day up

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值