阅读 480

爬虫工程师大厂面试真实际遇,试题你来挑战一下?

面试不是一锤子买卖,通常需要 3~6 轮面试,遂需要准备的内容挺多的,请听我详细道来。

假设你面试的是知名互联网企业的研发岗位,那么面试大概率是 4 或 5 轮:

  1. 第一轮 同事面
  2. 第二轮 主管面
  3. 第三轮 经理面
  4. 第四轮 HR 面
  5. 第五轮 HR + 大领导

无论哪一轮面试,你都得主动提出“我简单地介绍一下自己”,遂自我介绍肯定是要有的。自我介绍要描述清楚你叫什么、多少岁、多少年工作经验、你之前是做什么的、这次面试打算面什么岗位、主要的技术栈是什么以及自己的高光时刻。下方简介可作为参考:

您好!我叫镇岳剑,今年 30 岁。毕业参加工作已有 7 年。前几年从事的是金融方面的工作,2015 年才转行 IT。 主要编程语言为 Python,职业方向为爬虫工程师,在爬虫领域主要研究的是爬虫技术和爬虫架构。设计并亲手搭建过日均数据量过亿的爬虫架构,期间使用了分布式和容器化相关的知识。目前我已离职,可随时到岗。 以上就是我的基本情况,谢谢!

面试时遇到的面试官考察的内容都是不同的,遂你要准备不同层次答案。我面试过挺多家企业的,其中包括了我们耳熟能详的几个大厂,整理了高级爬虫工程师面试过程中实际遇到的问题:

第一轮常见问题

备注:假设这轮是技术一面

1、请你简单介绍一下自己

2、按照简历上的工作经历和内容询问细节,例如:

  • 你爬过 abc 和 asc,期间有没有遇到什么困难,你是如何完成的?
  • 请说说你在团队中充当的角色和主要负责的部分。
  • 我看你参与了 sail 的开发,当时你们为什么要开发这样一个平台,而不是考虑用别的方式替代?
  • 你工作期间遇到过哪些反爬虫?都能解决吗?怎么解决的?
  • 你为什么从上家公司离职?

3、通过交谈了解个人能力,例如:

  • 你知道的排序算法有哪些?它们的时间复杂度分别是?
  • 你能清楚描述逻辑的排序算法有哪几个,说来听听。
  • 你的主要编程语言是 Python,那你说说 Python 中深浅拷贝的区别和实现
  • Python 的 yield 关键字有什么作用?
  • 讲讲你了解的网络协议的构成和双端交互流程。
  • 你常用的数据库是?为什么会选择它。
  • 有在项目中用过消息中间件吗,例如 Kafka、RabbitMQ 之类的。

4、对某个技术点深入讨论,例如:

  • 你说说点选验证码的正向校验流程和爬虫工程师的技术流程。
  • 鼠标轨迹一般是怎么记录的?
  • 怎么模拟鼠标轨迹,成功率高的算法有多高?
  • 你用技术能通过哪几个验证码的验证?
  • 你认为通过率受到哪些因素影响?

5、你有什么要问我的?

第二轮常见问题

备注:假设这是技术二面

1、请你简单介绍一下自己

2、找优点与缺点,例如:

  • 你说说擅长哪些方面。
  • 现在有一个场景,假设需要按预告时间爬取实时体育数据(例如篮球赛事,包括队伍比分、球员得分、阵容等),你如何确保爬虫程序能够及时、稳定且准确地将需求团队要求的数据传递过来?
  • 说说网页端常见的反爬虫手段和解决的办法。
  • JavaScript 逆向你一般怎么做的,先如何,再如何?
  • 如果遇到硬茬,你通常怎么做?
  • 代码混淆的手段有哪些?怎么实现的?
  • APP 逆向你现在到什么程度?
  • 讲讲 hook 原理和具体的操作过程。
  • 有没有令人眼前一亮的反爬虫思路或者破解思路?
  • 你现在技术方面有哪些瓶颈或者觉得可以提升的地方?

3、你有什么要问我的?

第三轮常见问题

备注:假设这是技术三面;另外,做题也有可能在第二轮

1、做题通常有几种情况,例如:

  • 这有几道题你做一下,N 时间交给我
  • 这有几道题你做一下,现在做
  • 这有几道题,不限时间,你做出来了告诉我

2、题目范围大致分为几种,例如

  • 编程知识、语言知识和爬虫知识,例如语言特性、网络协议知识和程序设计等
  • 算法题,例如你按照题目指引给的输入和输出实现一个程序。我遇到过的有排序、树、图
  • 这有几个网站,你需要获取 ass 上的信息数据

3、讲讲你做题的思路,例如:

  • 这一题为什么这么做,有什么好处?
  • 你可以采用其他方式完成吗?
  • 描述一下做题过程。

第四轮常见问题

备注:假设第四轮是 HR 或者 HR + 领导

1、请你简单介绍一下自己

2、说说你在 3 至 5 年间的个人计划吧,技术、生活之类的。

3、你对自己的职业发展有没有什么期待?

4、你为什么从上一家公司离职?

5、为什么选择我们公司?

6、除了爬虫技术之外,你对什么技术也会感兴趣?

7、聊聊你出版图书的经历

8、我们这边出了名的压力山大,你觉得你能够适应吗?

9、你现在的收入是多少,按年算

10、你期望薪资是多少,按年算或者按月薪

11、你有什么要问我的?

其中不乏关联性很强的连环炮问题,如果你能够流畅应答,说明你的技术能力很扎实。如果遇到难以回答的问题或者答不对,那就说明你还有很多需要补强的地方,加油!

补充:靠后的面试中会问很多跟真实需求有关的问题,例如通信、多机资源监控和管理、主动监控数据、性能提升,对应的问题例如:

  • 如何在有限的 QPS 情况下保证能够获取到有效的、优质的数据?

  • 如何实现主动监控数据,一旦结构或数据发生变化就能够得到通知?

  • 你设计一组调度架构,如何能保证服务器资源最大化利用?

好消息是东鸽已经收到了 1 个 offer,另外两个大厂也走到了最后一轮 HR 面,目前在等电话的状态中,离多个 offer 只是时间问题了。

实战题方面,本来我想放出来的,但后来一想我不能泄漏别人题目,这里我建议大家到专门的刷题网站(例如牛客)找一些大厂真题做做。

img

刷一刷可以保持竞技状态,同时熟悉远程在线做题的规则和方式,虽然不一定在面试时发挥直接作用。我在面试 HUAWEI 前看过一些真题,但实际面试时遇到的却是另一种题,由于我提前熟悉了在线面试的做题规则,最后有惊无险地拿到了 100 分。

如果我没熟悉做题规则和方式,恐怕做题时间要超时……,因为没做过在线题的你实在是难以搞懂题目要求和对应的交付方式。

关注下面的标签,发现更多相似文章
评论