Python教程

python web开发工程师面试的题目与技巧

本文主要是介绍python web开发工程师面试的题目与技巧,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

几点面试时需要注意的技巧:

 1. 主动引导面试流程。在讲A知识点的时候,在最后引出与B知识点相关的内容。

 例如:在回答python的垃圾回收机制时,回答结束可以引出GIL 

2. 当问到自己在开发中没用用过,但是自己掌握的知识点时,要表现出会用。

例如:面试官问:是否 使用过多进程或者多线程时,如果自己没用过,那么直接告诉面试官,多进程使用的是什么模块, 多线程用的什么模块,以及他们的使用场景。 

3. 当被问到一个自己熟悉的知识点时,最好可以进行延伸 例如:被问到线程相关的问题时,可以给面试官举例:flask中处理多请求时,就是通过线程来实现 的。

 4. 当问到一个知识点的具体用法时,如果记不清,但是自己又了解,那么可以直接告诉面试官原理。

 例如:当被询问redis,如何设置一个值有效期时,如果不记得,那么可以告诉面试官,在redis中, 通过两种方式结合来实现有效期管理:1.定时对有过期时间的数据进行扫码,2.在取数据时,对数 据的有效期进行判断。 

5. 可以提前准备好常见问题的文字版草稿并记忆。

HR面相关: 在一般的公司或者较小的公司中,面试技术岗时,HR只会对面试者情况进行简单的判断,主要还是看技 术负责人的态度,在面试大公司时,HR面也是比较重要的一个环节。会有几个问题比较注重: 

1.经历是否真实

2. 上份工作的离职原理

 3. 是否有已经感觉不错的offer,如果有那么会让你说说感觉最好的一份offer和该公司的区别。以及自 己对未来工作的期望(目的:判断当前的公司是否满足面试者对工作的一个期望,以及是否认可当 前的公司), 

4. 薪资当被问及,是否可以降低时,可以先了解下公司的福利,如果不错,那么可以告诉HR自己可 以接受的范围,或者告诉HR自己认可技术面试官的能力,可以接受降低,具体的薪资可以让技术 面试官来根据自己的能力决定。

5. 上述几个问题,可能会有HR多遍询问,以判断是否回答一致。需略微注意

被问到的一些问题: 

1.python基础 闭包相关:手写闭包,使用闭包实现单例,闭包的使用场景 对生成器与迭代器的认识 高阶函数:sorted 元类:元类实现单例 python程序的运行流程: python编译器启动->读入文件->语法词法分析—>生成字节码并优 化—>执行(非逐行读取)

2. 网络编程 TCP/IP协议的5层模型,TCP与UDP的区别,为什么TCP可靠(校验码、消息重传等),TCP 传输时的限流,路由在TCP传输中的作用、Nginx工作在那一层scoket的使用(偏运维的岗位爱问),场景:使用socket可以更加灵活的使用不同的协议传输 数据(pysql其实就是使用sockets实现了mysql的协议) 浏览器发起一个请求到响应的流程 

3. 并发编程 介绍进程、线程、协程,使用方式,使用场景,锁 GC IO模型(socket在不同IO模型中的表现)

 4. 数据库相关 MySQL: SQL语句的执行流程 长链接与短链接、 索引的优化、索引的类型 事务的隔离及默认的隔离级别 左联、右联的区别及查出来的数据的形式 Redis: 数据类型,及工作中常用的数据类型及基础的命令 雪崩、击穿、穿透及解决方案 如何用python实现类似与redis集群的效果(redis集群及redis的原理,用hash及hash桶+ LRU缓存策略 来实现redis,用hash来实现集群效果将不同的数据落到不同的redis) 当流量过高时redis被压崩如何处理:kafka削峰 redis的订阅发布者是否有消息确认机制 es: 倒排索引 如何用python实现一个类似ES的功能 

5. Django 生命周期 session中间件的表,中间的自定义方法 ORM的常用方法,queryset的了解 路由的分发 JWT的组成 

6. celery celery的使用场景

 7. linux vim的常用操作 kill命令的参数及信号(大概了解就行) docker的使用场景 

8. 项目 在项目中的职责(适当的加一点自己做了一些模块的开发方案会好一点) 以前公司的工作流程 对技术难点或者发现需求有问题等情况的处理方案问到的算法题目: n阶台阶的上法,及递归转为非递归的思路 生成一个长度为n的数组,其元素之和为0且不允许有重复的元素 其他(根据简历和博客被问到的): 画出auth2.0的请求流程 数据传输中常见的安全算法

这篇关于python web开发工程师面试的题目与技巧的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!