【Python】虚言妙诀终虚见,面试躬行是致知,Python技术面试策略与技巧实战记录
虚言妙诀终虚见,面试躬行是致知,Python技术面试策略与技巧实战记录
刘悦的技术博客发布于 14 分钟前
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_183
2021年,对于正在找工作的朋友来说,笼罩在新冠肺炎疫情之下,今年的就业季显得更加具有挑战性,更有意思的是,每当这个时候,各种面试经验分享就如同过江之鲫一般,俯拾皆是,因为例子过多,兹不细举。然而这些面试经验大部分都停留在理论阶段,这就造成了一个问题:理论和实际,到底有多大出入?我国古代大名仕曾文正公曾经说:“天下事,在局外呐喊议论,总是无益,必须躬身入局,挺膺负责,方有成事之可冀。”革命先烈李大钊先生也曾感叹:“凡事都要脚踏实地去作,不驰于空想,不骛于虚声,而惟以求真的态度作踏实的工夫。以此态度求学,则真理可明,以此态度做事,则功业可就。”所以本次我们来进行一次真实的线上面试,正所谓空谈误国,实干兴邦,能够检验真理的也只有实践这一条路。
首先打开某著名垂直招聘app软件,寻找我们的猎物:
可以看到,我们找到了北京某企事业单位的高级python开发岗位,正所谓不打无准备之仗,在正式面试之前,我们需要对该岗位进行分析,尝试推测出面试中可能会被问到的问题,首先该岗位要求有flask/django/tornado的经验,那么可以肯定,web开发必定是主要工作,尤其是flask,很有可能是该职位的主力框架,所以我们需要准备python基础、网络协议、以及flask和django的一些相关知识用来应对。其次,要求对mysql/pgsql/es/redis等数据库有使用经验,那么可以推测出对数据库要熟练使用,特别是pgsql,要准备pgsql与mysql的异同,同时注意到文中提及es,那么对于全文检索相关的知识点也需要有所准备,最后redis相关的nosql数据库知识点也必须巩固,以备不时之需。最后,该职位提及需要熟悉linux常用命令以及docker生态体系,同时有关于selenium自动化测试经验。由此可以推断出:该岗位有可能需要参与运维或者部署工作,同时也有很大机会参与到自动化测试项目中去,所以对于docker和selenium相关知识点的筹备刻不容缓,除此之外,如果还能准备一些深度学习的案例和项目那就更是锦上添花了。
万事俱备,择一黄道吉日,我们开始面试:
其实自我介绍最忌讳的就是说废话,比如姓名、年龄这些简历中都有体现,所以我们要说点简历中没有的,比如自己的项目过往,取得的成就与建树(日活5万,日活是一个非常重要的指标,对于增长后期的产品,一个关键的提升指标就是做活跃,虽然5万日活还无法变现,但它是一个从0到1的过程,是百万日活的基础),甚至有意无意的,谈论的技术点可以往岗位描述上倾斜,比如岗位描述中出现过的django、部署、docker、selenium等技术,都可以在面试的自我介绍中再次出现,暗示自己与该岗位珠连璧合,相得益彰。需要注意一点的是,面试过程中最好全程使用敬语:您,以示尊敬。
开始正式进入技术面试,首先面试官问了岗位描述中出现过的技术点:es全文检索,我们可以先简单介绍一下项目背景、底层原理,同时在适当时候,进行反问,反问的意义在于,避免枯燥的一问一答模式,能够增加互动,调节气氛,最后在技术细节上,最好举例子,而不是泛泛而谈,这里既是以用户搜索“超薄笔记本”为例子,详细阐述后端es的检索策略,关于检索策略,其实本质上讨论的是搜索词权重(术语权重,也称作Term Necessity,Query Term Weight)问题,属于检索词解析的一部分。熟悉倒排索引的朋友都知道,文档通常以词的粒度建立索引。所以对于词的解析,在检索解析中属于非常重要的工作,其中,不仅仅包括正确识别目标词,还包括围绕目标词的各种特征提取,所以,当检索词文本中包含不止一个词时,问题的复杂程度就发生指数级的增长。用户的搜索有更具体的需求,最直观的体现于文本长度增长,围绕目标词有了更多的补充、限制。同时语序也相较文章类文本更加自由,解决方案就是通过结巴分词对检索词进行切词操作,当检索词存在多个词时,每个词的重要程度是不同的,在基于词召回的基础上,对词设立优先级(基于词性),以此达到近似用户原始需求的语义级别。
登录模块对于大部分应用来说,都是最基础的模块。看似简单,却与相当多的产品功能用户使用场景交织在一起,受到产品类型、用户定位、业务逻辑、使用场景、用户操作等不同因素影响,所以此时我们需要上升产品高度,避免流水账式的描述,而是点出统一认证(openldap)和微服务架构,同样使用反问来试探对方的知识体系深浅,最后基于统一认证体系,点出最终功能实践:Single Sign On(单点登录)。
其实关于权限系统,无非就是权限模型的使用(acl/rbac/abac),但是如果你在权限设计的形式上做出一点创新,那么就像黑火药时代里突然诞生的核弹一样,一定会给面试官留下深刻印象,比如说计算机最底层的基础:位运算。众所周知,运算速度快、效率高、节省存储空间、对权限控制非常灵活。所有语言都提供了位运算符,包括Python,我们可以在不同语言实现的系统、甚至数据库中使用位运算实现对用户权限的管理。当然了,位运算也会带来一些局限性,随着权限码增加,数据长度也相应的增长。这就要求权限码不能超过计算本身运算长度,在数据库中存储权限码时,权限码长度也不能的超过所使用数据类型。如:在32位系统中,权限节点数量不能多于32个。而如果基于mySQL数据库的BIGINT,其存储空间为8Byte,使用BIGINT存储存储码时,权限数不能多于64个。
面试到了这个阶段,基本上技面已经结束,剩下就是人资问题了,关于离职原因很多朋友喜欢说诸如公司倒闭、搬迁、裁员等是由,但实际上,这些理由并不是面试官“想”听的,那么从人力资源管理的角度出发,面试官到底想听点什么呢?他想要一些主动而正面的原因,而不是一些被动的原因,因为裁员、搬迁和倒闭这些都是被动的,你“被迫”离开原公司。所以说白了,他需要你给他一点企图心,企图心是指一个人做成某件事情,或达成既定目标的意愿。 企图心的强烈程度,取决于意愿的大小,如果意愿越强烈,说明企图心越大,成功的可能就越高,所以,理所当然的,你需要向他证明你是带着企图心来面试的。
最后,我们需要以一个感谢来结束整个面试,无论面试成功与否,一个真诚的致谢会给面试官留下好的印象,感谢对方的同时,也感谢自己的努力。关于整个面试流程的视频,请移步:
结语:就像《双城记》里面写的那样:这是最好的时代,这是最坏的时代;这是智慧的时代,这是愚蠢的时代;这是信仰的时期,这是怀疑的时期;这是光明的季节,这是黑暗的季节;这是希望之春,这是失望之冬;人们面前有着各样事物,人们面前一无所有;人们正在直登天堂,人们正在直下地狱。在这个疫情反复无常的年代,有时让人们觉得有无限期待,有时又让人陷入无限的绝望,但无论如何,我们总要直面困难,开启新的征程,与其坐而论道,不如起而行之,在生活中学会生活,在面试中学会面试。
原文转载自「刘悦的技术博客」 https://v3u.cn/a_id_183
面试python实战面试技巧
阅读 16发布于 14 分钟前
本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
刘悦的技术博客
23 声望
1 粉丝
刘悦的技术博客
23 声望
1 粉丝
宣传栏
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_183
2021年,对于正在找工作的朋友来说,笼罩在新冠肺炎疫情之下,今年的就业季显得更加具有挑战性,更有意思的是,每当这个时候,各种面试经验分享就如同过江之鲫一般,俯拾皆是,因为例子过多,兹不细举。然而这些面试经验大部分都停留在理论阶段,这就造成了一个问题:理论和实际,到底有多大出入?我国古代大名仕曾文正公曾经说:“天下事,在局外呐喊议论,总是无益,必须躬身入局,挺膺负责,方有成事之可冀。”革命先烈李大钊先生也曾感叹:“凡事都要脚踏实地去作,不驰于空想,不骛于虚声,而惟以求真的态度作踏实的工夫。以此态度求学,则真理可明,以此态度做事,则功业可就。”所以本次我们来进行一次真实的线上面试,正所谓空谈误国,实干兴邦,能够检验真理的也只有实践这一条路。
首先打开某著名垂直招聘app软件,寻找我们的猎物:
可以看到,我们找到了北京某企事业单位的高级python开发岗位,正所谓不打无准备之仗,在正式面试之前,我们需要对该岗位进行分析,尝试推测出面试中可能会被问到的问题,首先该岗位要求有flask/django/tornado的经验,那么可以肯定,web开发必定是主要工作,尤其是flask,很有可能是该职位的主力框架,所以我们需要准备python基础、网络协议、以及flask和django的一些相关知识用来应对。其次,要求对mysql/pgsql/es/redis等数据库有使用经验,那么可以推测出对数据库要熟练使用,特别是pgsql,要准备pgsql与mysql的异同,同时注意到文中提及es,那么对于全文检索相关的知识点也需要有所准备,最后redis相关的nosql数据库知识点也必须巩固,以备不时之需。最后,该职位提及需要熟悉linux常用命令以及docker生态体系,同时有关于selenium自动化测试经验。由此可以推断出:该岗位有可能需要参与运维或者部署工作,同时也有很大机会参与到自动化测试项目中去,所以对于docker和selenium相关知识点的筹备刻不容缓,除此之外,如果还能准备一些深度学习的案例和项目那就更是锦上添花了。
万事俱备,择一黄道吉日,我们开始面试:
其实自我介绍最忌讳的就是说废话,比如姓名、年龄这些简历中都有体现,所以我们要说点简历中没有的,比如自己的项目过往,取得的成就与建树(日活5万,日活是一个非常重要的指标,对于增长后期的产品,一个关键的提升指标就是做活跃,虽然5万日活还无法变现,但它是一个从0到1的过程,是百万日活的基础),甚至有意无意的,谈论的技术点可以往岗位描述上倾斜,比如岗位描述中出现过的django、部署、docker、selenium等技术,都可以在面试的自我介绍中再次出现,暗示自己与该岗位珠连璧合,相得益彰。需要注意一点的是,面试过程中最好全程使用敬语:您,以示尊敬。
开始正式进入技术面试,首先面试官问了岗位描述中出现过的技术点:es全文检索,我们可以先简单介绍一下项目背景、底层原理,同时在适当时候,进行反问,反问的意义在于,避免枯燥的一问一答模式,能够增加互动,调节气氛,最后在技术细节上,最好举例子,而不是泛泛而谈,这里既是以用户搜索“超薄笔记本”为例子,详细阐述后端es的检索策略,关于检索策略,其实本质上讨论的是搜索词权重(术语权重,也称作Term Necessity,Query Term Weight)问题,属于检索词解析的一部分。熟悉倒排索引的朋友都知道,文档通常以词的粒度建立索引。所以对于词的解析,在检索解析中属于非常重要的工作,其中,不仅仅包括正确识别目标词,还包括围绕目标词的各种特征提取,所以,当检索词文本中包含不止一个词时,问题的复杂程度就发生指数级的增长。用户的搜索有更具体的需求,最直观的体现于文本长度增长,围绕目标词有了更多的补充、限制。同时语序也相较文章类文本更加自由,解决方案就是通过结巴分词对检索词进行切词操作,当检索词存在多个词时,每个词的重要程度是不同的,在基于词召回的基础上,对词设立优先级(基于词性),以此达到近似用户原始需求的语义级别。
登录模块对于大部分应用来说,都是最基础的模块。看似简单,却与相当多的产品功能用户使用场景交织在一起,受到产品类型、用户定位、业务逻辑、使用场景、用户操作等不同因素影响,所以此时我们需要上升产品高度,避免流水账式的描述,而是点出统一认证(openldap)和微服务架构,同样使用反问来试探对方的知识体系深浅,最后基于统一认证体系,点出最终功能实践:Single Sign On(单点登录)。
其实关于权限系统,无非就是权限模型的使用(acl/rbac/abac),但是如果你在权限设计的形式上做出一点创新,那么就像黑火药时代里突然诞生的核弹一样,一定会给面试官留下深刻印象,比如说计算机最底层的基础:位运算。众所周知,运算速度快、效率高、节省存储空间、对权限控制非常灵活。所有语言都提供了位运算符,包括Python,我们可以在不同语言实现的系统、甚至数据库中使用位运算实现对用户权限的管理。当然了,位运算也会带来一些局限性,随着权限码增加,数据长度也相应的增长。这就要求权限码不能超过计算本身运算长度,在数据库中存储权限码时,权限码长度也不能的超过所使用数据类型。如:在32位系统中,权限节点数量不能多于32个。而如果基于mySQL数据库的BIGINT,其存储空间为8Byte,使用BIGINT存储存储码时,权限数不能多于64个。
面试到了这个阶段,基本上技面已经结束,剩下就是人资问题了,关于离职原因很多朋友喜欢说诸如公司倒闭、搬迁、裁员等是由,但实际上,这些理由并不是面试官“想”听的,那么从人力资源管理的角度出发,面试官到底想听点什么呢?他想要一些主动而正面的原因,而不是一些被动的原因,因为裁员、搬迁和倒闭这些都是被动的,你“被迫”离开原公司。所以说白了,他需要你给他一点企图心,企图心是指一个人做成某件事情,或达成既定目标的意愿。 企图心的强烈程度,取决于意愿的大小,如果意愿越强烈,说明企图心越大,成功的可能就越高,所以,理所当然的,你需要向他证明你是带着企图心来面试的。
最后,我们需要以一个感谢来结束整个面试,无论面试成功与否,一个真诚的致谢会给面试官留下好的印象,感谢对方的同时,也感谢自己的努力。关于整个面试流程的视频,请移步:
结语:就像《双城记》里面写的那样:这是最好的时代,这是最坏的时代;这是智慧的时代,这是愚蠢的时代;这是信仰的时期,这是怀疑的时期;这是光明的季节,这是黑暗的季节;这是希望之春,这是失望之冬;人们面前有着各样事物,人们面前一无所有;人们正在直登天堂,人们正在直下地狱。在这个疫情反复无常的年代,有时让人们觉得有无限期待,有时又让人陷入无限的绝望,但无论如何,我们总要直面困难,开启新的征程,与其坐而论道,不如起而行之,在生活中学会生活,在面试中学会面试。
原文转载自「刘悦的技术博客」 https://v3u.cn/a_id_183
以上是 【Python】虚言妙诀终虚见,面试躬行是致知,Python技术面试策略与技巧实战记录 的全部内容, 来源链接: utcz.com/a/105576.html
得票时间