奇安信面试经验
0. 一开始自我介绍
1. 让我介绍一下devops相关的概念(可能因为简历上写了之前做过devops)
2. 介绍一下devops相关的工具
3. 项目中是如何集成使用这些devops工具的(es, docker, zabbix这些)
4. 项目是怎么做优化的
5. Mysql两种引擎相关的问题,你是如何看待大家认为的Innodb要比MyISAM快的,谈谈你的看法
6. mysql建索引有哪些注意点,在哪些地方需要建索引(常用字段,联表需要的字段等)
7. 用过redis吗?有哪些常用数据类型?你用redis做过哪些事?
8. 了解redis的持久化吗?展开讲讲
9. 介绍一下你会如何去做一个爬虫项目的架构,用到哪些技术栈,scrapy用过吗
10. 如何优化爬虫的性能
11. 如何应对反扒机制,怎么解决验证码的问题
12. Python有哪些内置的数据类型
13. 如何优化Python项目的性能(列表生成式代替for循环,使用生成器等等,没有讲耗性能的地方可以用c来写,因为没有实践过,怕深入给自己挖坑)
14. 讲一下生成器,迭代器的概念,还有装饰器
15. 讲一下python __init__和__new__的区别
16. 讲一下多进程多线程,协程的区别
17. 一个url从输入到获得结果,经历了哪些步骤,越详细越好(主要从这几方面:dns,三次握手四次挥手,负载均衡,后端架构,当然大佬们要是从更深的角度去讲也是更好的)
18. 讲一下http的状态码,200,400这些不要说(这个我是直接举了个delete操作的例子,从它会遇到的各种情况去讲相应的返回码的)
19. TCP协议了解吗,讲一下三次握手和四次挥手的过程
20. 如何保证一个api的安全性(从后端的权限设定到http攻ji都可以讲,不过面试官期望直接讲http攻ji,这个不会)
21. 你听过哪些http攻几(这里我知道的不多,只举了一个例子结合讲了一下CSRF和cookies攻ji的过程)
22. 举几个你常用的linux命令,有没有用过awk
23. tail命令如何查看一个日志的中间几行
24. 如何用命令去开启一个守护进程(nohup)
25. 项目遇到bug,你一般是如何去排查的
26. 你用elacticsearch做过哪些事,有做过中文分词吗?(主要做日志收集,中文分词没接触过)
27. 讲一讲你对贪心和动态规划的理解
28. 你认为自己做开发有哪些优势?
29. 后面就是聊生活了,在哪住,什么时候可以实习等等
30. 最后就是你有什么想问我的(有啥疑问就问吧,要是不知道问啥github上还有一个专门的项目写这些问题的)
大概就是这么多,全程50分钟左右,只有一面(可能是我凉了),总之等结果吧。