Python后端工程师的面试题目有哪些?

一.语言

1.推荐一本你读过的最好的python书?

2.谈谈python decorator,iterator,yield?

3.标准库中哪个队列是线程安全的?哪个不安全?日志记录线程安全吗?

4.4.python有哪些适合的场景?遇到计算密集型任务时应该怎么办?

5.python高并发解决方案?我希望听到扭曲-& gt;龙卷风-& gt;Gevent,不如说Golang和Erlang。

二。操作系统

可以直接认为是linux,毕竟大部分后端的人跟linux打交道。

1.TCP和UDP有什么区别?tcp包卡是怎么回事,怎么处理?udp有粘性包吗?

2.什么是2.time_wait?close_wait太多可能是什么原因?

3.EPOLL和SELECT有什么区别?边沿触发和水平触发有什么区别?

三。储存;储备

存储可能包括rdbms、nosql和缓存等。我以MySQL和Redis为例。

Mysql相关性

1.谈谈mysql字符集和排序规则?

2.2.varchar和char有什么区别?尺寸限制?在utf8字符集中,varchar可以存储多少个字符?

3.3 .主键和唯一有什么区别?

4.外键有什么用?应该使用外键吗?外键必须被索引吗?

5.5.myisam和innodb有什么区别?innodb的两阶段锁定协议是什么?

6.指数有什么用?一般原理是什么?设计指数需要注意什么?

Redis相关性

1.什么场景使用redis,为什么mysql不适合?

2.谈谈redis的业务?用事务模拟原子+1操作?原子操作还有其他解决方案吗?

3.3.redis内存满了会怎么样?

四。安全性

网络安全相关

1.sql注入是如何产生的,如何防范?

2.如何防范2.xss?htmlescape之后可以避免xss吗?

3.什么是3.csrf?django是怎么防备的?

密码技术

1.什么是块加密?有哪些加密模式?ecb和cbc模式有什么区别?为什么需要静脉注射?

2.简单来说,龙图游戏运营支撑中心数据分析部招人;我觉得有问题,那你还等什么?快来和我交流吧。

更新:讨论区很热闹。有人说容易,有人说难。其实我觉得只适合面试有2~3年工作经验的后端工程师。我真的没问

这是一个很难的话题,但可能你平时没注意。

这里给大家推荐几本书吧。

Python参考手册,绝对让你上一层楼。

图形密码技术,密码输入的最佳选择

Mysql技术内幕第五版,看手册时有点厚,耐心点,高性能mysql也强烈推荐阅读。

有效的tcp/ip编程

为什么评论区差别这么大?我觉得我个人的经历是不一样的。如果我从事web,我在操作系统和密码技术方面会比较弱,但是如果我是系统工程师或者游戏服务器,我会明显很强。

不及物动词附言

最近也面试了很多童鞋,发现能达到要求的寥寥无几。很多hr都说Python是最难招的工作,我觉得有道理。真的很值得玩味?

我觉得部分原因是Python这种语言造成的。很多人会写Python,但是很少有人能写好。他们大多把Python写成脚本,缺乏面向对象和面向模式的思想。想想Java,大家都习惯了接口和实现分离,设计模式在Java中调用了很多年,尤其是ssh三大框架出来使用,这是理所当然的。虽然有一些缺点,但对于企业级Java开发来说,无疑是一个很大的进步。

另一方面,Python,尤其是生成器、协处理和元类,给Python注入了很大的灵活性,写Python并不难,但实际上Python只有很少的高级特性,杀了就没有了。

当你觉得Python遇到了瓶颈,不妨停下来想一想。研究设计模式,思考重构,了解领域驱动设计和敏捷开发,然后回来读之前写的代码。眼界变高了,代码就漂亮了。

当然,思维的提升不会一蹴而就。模式和原则往往会让你纠结。如果你纠结了,你会去思考,自己想办法。当然,条条大路通罗马。

数据库等存储技术对R&D的工程师来说是一个障碍。以关系数据库mysql为例。你必须清楚地知道选择什么字段,什么类型,字节大小和限制。这个东西也很好理解。想想就好,比如集合式。要支持交集、合并等操作,1字节只能存储8个类别。数据类型做好了,这里是索引。什么是mysql索引类型?主键、唯一索引、通用索引。索引类别,BTree索引,hash索引。索引的优缺点,mysql的索引搜索原理,join原理(多为嵌套循环),以及一些特殊情况,比如mysql子查询慢。事实上,R&D的工程师在这里几乎是一样的。当然还可以继续深入,比如读写分离,集群管理,甚至一些参数调优。