前两天,在群里收到一个群友(强哥)跳槽成功的消息。真心为其感到高兴。为了找到一个更好的平台,为了拿到更理想的薪酬。他在面试前期做了相当多的准备(机会永远是留给有准备的人,这一点值得学习),写了很多关于面试真题的相关内容.之前有许多读者会在微信上问我,「自学 python 后端开发 到什么程度才可以出去找工作?」,由于我本人不从事后端开发,所以无法给出合理的建议。正好借着强哥这篇经验分享,希望能给大家一些启发和帮助。
在前程无忧/拉勾/智联招聘上投递以及开放简历,收到邮件/电话面试邀请20家上下(深信服/悦动/绿米联创等),其中有少数的测试与爬虫岗位(方向不符长期规划,都已谢绝)。
最后面试了其中的10家(有一个下午面试了两家),最后收到了自己满意的offer。在这其中,收获了许多的知识(感谢面试官的分享精神,公交费和洞洞鞋的钱挣回来了)。
招聘平台
在我所使用的招聘平台中,收获到面试邀请最多的是前程无忧,其次是拉勾,最少的是智联招聘。
所以我会建议大家使用前程无忧和拉勾,因为反馈是最及时的,智联招聘很少反馈。没有使用boss直聘,因为一来二去的聊天觉得有点麻烦,我还是喜欢直接发邮件面试邀请当面交流。
侧重知识点
在我参加的后台开发岗位面试中,主要有以下知识是比较侧重:
数据库crud操作/查询优化以及数据库知识量框架的对比和了解/项目具体模块的业务逻辑描述常见排序算法linux系统的常用命令和linux系统了解程度考核项目部署用到的服务器的配置和了解程度
加分项
数据库基本功必须掌握但同时更重要的是理解为什么和是如何实现的,拓展自己知识面linux系统的底层原理和了解程度目前golang在后端中也逐渐流行,有时间还是需要去掌握技术没有终点,保持乐于学习和接受新技术的心态,面试官看重技术能力同时也更看重你的心态自信且好学
面试问题
问题就给大家了,答案自己去查找吧。只有经过自己努力的东西才会格外珍惜与铭刻。
01. python相关
实现一个单例模式实现一个装饰器用python实现快排如果系统中需要很多个python版本,如何进行python版本的管理如何实现一个全局变量?(除了global,还可以通过单例模式)
02. 数据库
数据库的数据是实时更新的吗?每点击一次,数据库数据修改一次?redis hash的个数如何修改redis数据库的库的个数?redis数据库如何实现持久化redis数据库支持的数据类型redis使用aof方式持久化,aof文件不断增大,如何处理?redis数据库如何设置密码hash表是如何生成的mysql数据库如何使用sql语句插入一条数据mysql数据库的慢查询有了解过吗mysql数据库如何进行查询优化如何很多请求同时对redis的同一个键进行访问,如何保证数据安全说说redis的淘汰机制我的mysql数据库每天晚上12点进行全备份。第二天有员工在9点钟误删除了一个数据库,但在10点钟才被发现。问如何进行恢复被误删除的数据库并同时保留9点到10点钟新增的数据同时不影响业务的正常运行?当数据越来越多,如何避免hash槽中key出现相同的情况?mongodb在哪些场合使用过?03. 项目部署大家都说nginx快?快的原因是什么?对rpc了解吗?如何在服务器上设置业务进程数?说说正向代理和反向代理04. linux相关如何查看剩余内存如何查看端口是否被占用如何查看一个程序的pid以及它的所有子进程如何为一个目录下的所有文件添加权限如果你对一个目录具有写权限,那么你是否具有对这个目录下的所有文件具有删除权限?对linux多路复用的理解修改ip地址的方法 05. 前端相关
1. 对前端html css 和 js了解多少?熟悉吗?2. 对react和bootstrap了解吗?3. 如何进行http优化?(响应头设置content-encoding: gzip)06. 网络编程
说一下实现tcp建立连接的过程以及当时进入了什么状态?为什么建立连接只需要3次,断开连接需要4次?为什么断开连接时第二次和第三次要分开,不能合在一起吗?
07. 项目相关
说一下一个请求过来到返回response的过程如何实现单点登录jwt token是如何进行生成和校验的了解过哪些后端框架?tornado了解吗?了解过webapp2吗django如何实现csrf攻击保护说说你项目中遇到的困难以及如何解决说说你认为自己最有成就感或最深刻的项目对kafka了解吗?用过哪些消息队列?使用过rabbitmq吗?项目团队几个人?开发多长时间?
08. 版本控制
如何从远程仓库拉取分支到本地如何进行版本回退 09. 其他内容celery的原理和应用场景elasticsearch 的原理平时是如何学习的?有关注哪些技术?docker的了解,常用命令,如何暴露端口对erp了解吗?odoo了解吗?