编程语言的熟悉度:你说说 Python 的垃圾回收机制、装饰器
算法和数据结构:请你写出链表反转、请你写出归并排序
计算机基础知识: HTTP KeepAlive 代表什么
计算机基础知识:描述一下 TCP 握手过程
工作经验和知识覆盖面:假如有数据丢失,你应该如何排查
岗位特定要求:根据条件设计一款分布式应用,你会怎么设计
岗位特定要求:APP 逆向当中遇到自定义协议应该如何处理
岗位特定要求:说说你会的几种 hook 技术
简历上提到的:我看你提到你监控过请求信息,监控的目的是什么
连环炮问题示例:监控具体怎么实施?怎么知道监控哪些项?
连环炮问题示例:为什么监控的是请求数,但耗时却不监控?
连环炮问题示例:监控到的数据一般哪些部门会用?怎么用?
连环炮问题示例:你选择哪款监控软件?为什么不选其他的?
通过阅读别人的面试经验可以推测这个岗位的面试难度、面试节奏、面试偏好和关注点,进而补充自己的知识。
2.我该为交流做哪些准备?一段约 100 字的开局介绍和一段约 100 字的离职原因;
面对人力资源:几个关于岗位和公司整体情况的问题;
面对技术:几个关于工作氛围、加班情况、团队组成的问题。
以本人的情况作为简短示例
你好,我叫韦世东,是一名Python开发者。
我有3年的Python开发经验和一年的Golang开发经验,平时主要的工作方向是爬虫,但也会用Go写一些服务。另外,我在反爬虫和深度学习方面有一些研究,能够独立解决Js逆向方面的问题。”
这次来应聘贵司的爬虫工程师岗位,希望有机会加入团队。
我在上一家公司工作了2年,在那边的主要工作是业务代码的编写,偶尔有一些难度比较高的任务。我自己学习能力强,学东西也比较快,想让自己的能力更上一个等级。出来前和领导交流过,感觉继续呆在公司已经没有合适的进步空间,所以就想着换工作了。
我会咨询HR和业务主管的问题
我面试的这个岗位有几位同事?
公司对我们小组这边的期望是什么?例如需要小组承担所有数据源?
小组这边的人员搭配是怎么样的?高级工程师和初、中级工程师有几个?小组在公司或者在部门内的定位是什么?重要程度如何?
假如加入团队的话,日常主要是负责哪些工作?
一些技术难点有比较强的同事解决吗?如果没有,那怎么办?咱这边平时上下班节奏怎么样,加班多吗?
咱这边获取到数据之后,通常是给哪些小组的同事使用?存到数据库还是消息队列?如果表现突出,有升职的空间吗?
五、我与面试官的正面交锋 1.如何面对面试官的连环问题?连环问题是一定会有的;
在准备阶段假设几种连环问题,通过问题反推自己要突击的知识;
不熟悉的知识尽量不要写在简历上,例如分布式;
不会的问题可以说“这个我也没有深入去了解过”,但如果你有其他思路,你可以提出来“但我觉得可以这样”;
如果答不上,赶紧用笔记下来。
Q—面试官提问丨NA-不恰当的回答丨OA-恰当的回答
Q:我看你在简历里写用过消息队列设计分布式爬虫?NA:对
OA:对的,之前有考虑过用Redis,后来经过小组评估,改成了消息队列;
Q:为什么不用Redis?你们评估的时候主要考虑哪些因素?NA:我也不太清楚,领导说选这个;
OA:这是我们的业务特性决定的,我们需要将同一份数据给多个下游使用,例如编辑组、数据分析组、深度学习组,消息队列的Work模式很适合这样的场景,而Redis要满足需求就很麻烦;
Q:消息队列数据丢失的问题你们怎么处理的?
NA:我记得消息队列都有重传机制,那个就能解决;