面试不是一蹴而就的。一般需要3到6轮面试,所以要准备的东西很多。请详细听我说。假设你面试的是知名互联网公司的研发岗位,那么大概率有4、5轮面试:第一轮同事,第二轮主管,第三轮经理,第四轮HR,第五轮HR+大领导。在任何一轮面试中,你都要主动提出“Letmebrieflyintroducemyself”,所以自我介绍是必不可少的。自我介绍要写清楚自己的姓名、年龄、工作年限、之前从事的工作、本次面试拟应聘的职位、主要技术栈是什么以及高光时刻。以下介绍可以作为参考:您好!我叫甄跃健,今年30岁。从毕业到工作已经7年了。前几年做金融,2015年才转IT,主要编程语言是Python,职业方向是爬虫工程师。在爬虫领域,主要研究爬虫技术和爬虫架构。设计并亲自搭建了一个日流量过亿的爬虫架构,期间利用了分布式和容器化相关的知识。我现在离职了,随时可以来上班。以上是我的基本情况,谢谢!面试时遇到的面试官内容不一样,所以要准备不同层次的答案。面试过不少公司,包括我们熟悉的几家大公司,整理了爬虫高级工程师面试过程中遇到的实际问题:第一轮常见问题备注:假设这一轮是技术面1.PleaseBrieflyintroducseyourself2.根据简历上的工作经历和内容询问详情,比如:你爬过abc和asc,期间有没有遇到什么困难,是怎么完成的?请介绍一下您在团队中的角色以及您主要负责的部分。我看到你参与了sail的开发。你为什么开发这样一个平台而不是考虑其他选择?你在工作中遇到过哪些反爬虫?能全部解决吗?你是怎么解决的?你为什么离开你以前的公司?3、通过对话了解个人能力,例如:你知道哪些排序算法?他们的时间复杂度是多少?能不能把逻辑的排序算法说清楚,我们来谈谈。你的主要编程语言是Python,所以你能谈谈Python中深拷贝和浅拷贝的区别以及yield关键字在Python中的作用是什么?说说网络协议的组成和你理解的两端交互过程。你常用的数据库是什么?为什么会选择它。有没有在项目中使用过消息中间件,比如Kafka,RabbitMQ之类的。4、对某个技术点的深入讨论,比如:你讲的点击验证码的正向验证过程,爬虫工程师的技术过程。鼠标轨迹一般是怎么记录的?如何模拟鼠标轨迹,成功率高的算法是多高?该技术可以通过哪些验证码?你认为影响通过率的因素有哪些?5.你想问我什么?第二轮常见问题备注:假设这是一项双面技术1.请简单介绍一下自己2.找出优点和缺点,例如:告诉我你擅长什么。现在有一个场景,假设实时的体育数据(比如篮球比赛,包括球队得分,球员得分,阵容等)需要根据预测时间进行爬取,你如何保证爬虫程序能够及时、稳定、准确地交付需求团队所需的数据?过来?说说网页常见的反爬虫方法和解决办法。你通常如何进行JavaScript逆向工程,首先然后再进行?平时遇到硬茬怎么办?代码混淆的手段有哪些?它是怎么发生的?你在APP逆向工程上有多远?说说hook的原理和具体的操作过程。有没有什么激动人心的反爬虫思路或者破解思路?您目前存在哪些技术瓶颈或您认为可以改进的地方?3.你想问我什么?第三轮常见问题备注:假设这是技术方面;另外,也可以做第二轮的题,有几道题让你做,现在有几道题做这个,没有时间限制,你做了可以告诉我2.的题目范围大致分为几类,比如编程知识,语言知识和爬虫知识,比如语言特性,算法题比如网络协议知识和程序设计,比如你实现一个程序根据输入和主题指南中给出的输出。我遇到过几个网站,包括排序、树和图表。您需要获取有关ass的信息和数据。你能换一种方式吗?描述解决问题的过程。第四轮常见问题备注:假设第四轮是HR或者HR+leadership1.请简单介绍一下自己2.说说你个人未来3到5年的规划,比如技术,生活。3、您对自己的职业发展有什么期望?4.你为什么离开之前的公司?5.为什么选择我们公司?6、除了爬虫技术,你还对哪些技术感兴趣?7.谈谈你出书的经历。8.众所周知,我们在这里压力山大。你觉得你能适应吗?9.你目前的年收入是多少?10.你的期望工资是多少,按年还是按月计算?11.你想问我什么?其中,有很多相关的连环枪问题。如果你能顺利回答,说明你的技术能力非常扎实。如果遇到难答或答错的问题,说明你还有很多需要提高的地方,加油!补充:在后面的面试中,会问到很多与真实需求相关的问题,比如通信、多机资源监控与管理、主动数据监控、性能提升等。有效、高质量的数据?如何实现对数据的主动监控,并在结构或数据发生变化时得到通知?如何设计一套调度架构来保证服务器资源的最大化利用?好消息是,东哥已经拿到了1份offer,另外两大厂商都到了最后一轮HR面。目前在等电话,多方offer只是时间问题。实战题方面,本来想放出来的,后来想想不能透露别人的题。这里建议大家去专门的刷题网站(比如牛客)找一些大厂的真题。刷题可以保持竞技状态,同时熟悉远程网考的规则和方法,虽然未必能对面试起到直接的作用。华为面试之前看了一些真题,但是在真正的面试中遇到了不一样的题。因为提前熟悉了线上面试的规则,所以最后毫无风险的拿到了100分。如果不熟悉做题的规则和方法,恐怕做题的时间会超时。。。因为没做过网题的你真的很难理解题主的要求问题和相应的交付方式。
