⑴ 如何面试Python后端工程师
我觉得重点不是Python而是后端工程师,因为Python只是系统的一部分,linux基础操作要熟吧,sql要懂吧,消息队列要知道吧,git要熟悉吧......木桶理论,每一环都不能落下,精通其中一两环就更好了。基础功扎实,新东西学得快,代码写得溜,命令敲得顺,bug解的好,妈妈再也不用担心我天天加班了~~~
一.语言
1.推荐一本看过最好的python书籍? 拉开话题好扯淡
2.谈谈python的装饰器,迭代器,yield?
3.标准库线程安全的队列是哪一个?不安全的是哪一个?logging是线程安全的吗?
4.python适合的场景有哪些?当遇到计算密集型任务怎么办?
5.python高并发解决方案?我希望听到twisted->tornado->gevent,能扯到golang,erlang更好
二.操作系统
可以直接认为是linux,毕竟搞后端的多数是和linux打交道。
1.tcp/udp的区别?tcp粘包是怎么回事,如何处理?udp有粘包吗?
2.time_wait是什么情况?出现过多的close_wait可能是什么原因?
3.epoll,select的区别?边缘触发,水平触发区别?
三.存储
存储可能包含rdbms,nosql以及缓存等,我以mysql,redis举例
mysql相关
1.谈谈mysql字符集和排序规则?
2.varchar与char的区别是什么?大小限制?utf8字符集下varchar最多能存多少个字符
3.primary key和unique的区别?
4.外键有什么用,是否该用外键?外键一定需要索引吗?
5.myisam与innodb的区别?innodb的两阶段锁定协议是什么情况?
6.索引有什么用,大致原理是什么?设计索引有什么注意点?
redis相关
1.什么场景用redis,为什么mysql不适合?
2.谈谈redis的事务?用事务模拟原子+1操作?原子操作还有其它解决方案吗?
3.redis内存满了会怎么样?
四.安全
web安全相关
1.sql注入是怎么产生的,如何防止?
2.xss如何预防?htmlescape后能否避免xss?
3.csrf是什么?django是如何防范的?
五密码技术
1.什么是分组加密?加密模式有哪些?ecb和cbc模式有什么区别?为什么需要iv向量?
2.简单说说https的过程?
3.对称加密与非对称加密区别?
3.如何生成共享秘钥? 如何防范中间人攻击?
六.杂
是否关注新技术啊?golang,rust是否了解?numpy,pandas是啥鸟?
是否紧跟时代潮流?逛不逛微博,刷不刷知乎?
可能你觉得我问的好细,但这好多都是平常经常遇到,并需要解决的,细节更能体现一个人。
⑵ 如何面试Python后端工程师
一.语言
1.推荐一本看过最好的python书籍? 拉开话题好扯淡
2.谈谈python的装饰器,迭代器,yield?
3.标准库线程安全的队列是哪一个?不安全的是哪一个?logging是线程安全的吗?
4.python适合的场景有哪些?当遇到计算密集型任务怎么办?
5.python高并发解决方案?我希望听到twisted->tornado->gevent,能扯到golang,erlang更好
二.操作系统
可以直接认为是linux,毕竟搞后端的多数是和linux打交道。
1.tcp/udp的区别?tcp粘包是怎么回事,如何处理?udp有粘包吗?
2.time_wait是什么情况?出现过多的close_wait可能是什么原因?
3.epoll,select的区别?边缘触发,水平触发区别?
三.存储
存储可能包含rdbms,nosql以及缓存等,我以MySQL,redis举例
mysql相关
1.谈谈mysql字符集和排序规则?
2.varchar与char的区别是什么?大小限制?utf8字符集下varchar最多能存多少个字符
3.primary key和unique的区别?
4.外键有什么用,是否该用外键?外键一定需要索引吗?
5.myisam与innodb的区别?innodb的两阶段锁定协议是什么情况?
6.索引有什么用,大致原理是什么?设计索引有什么注意点?
redis相关
1.什么场景用redis,为什么mysql不适合?
2.谈谈redis的事务?用事务模拟原子+1操作?原子操作还有其它解决方案吗?
3.redis内存满了会怎么样?
四.安全
web安全相关
1.sql注入是怎么产生的,如何防止?
2.xss如何预防?htmlescape后能否避免xss?
3.csrf是什么?django是如何防范的?
密码技术
1.什么是分组加密?加密模式有哪些?ecb和cbc模式有什么区别?为什么需要iv向量?
2.简单说说https的过程?
3.对称加密与非对称加密区别?
3.如何生成共享秘钥? 如何防范中间人攻击?
五.杂
是否关注新技术啊?golang,Rust是否了解?numpy,pandas是啥鸟?
是否紧跟时代潮流?逛不逛微博,刷不刷知乎?
可能你觉得我问的好细,但这好多都是平常经常遇到,并需要解决的,细节更能体现一个人。
如果你觉得小kiss,欢迎投简历给我[email protected],龙图游戏运营支持中心数据分析部招人;觉得有点问题,那还等什么,赶快来和我交流交流。
更新:讨论区挺热闹,有人说好简单,有人说好难,其实我觉得这只适合面试2~3年工作经验的后端工程师。真的没有问
很难的题目,只是可能你平时没有注意。
在这里我推荐几本书吧
python参考手册,绝对让你更上一层楼
图解密码技术,密码入门不二之选
mysql技术内幕第五版,有点厚当手册读读,要有耐心,高性能mysql也强烈建议读读
effective tcp/ip programming
为什么评论区有这么大差异?我想是个人经历不一样吧,如果是搞web的对操作系统这块和密码技术会偏弱,但如果是系统工程师或是游戏服务端这块会明显偏强。
六.后记
最近我也面试了不少童鞋,我发现能达到要求的真的少之又少,很多hr都说Python是最难招聘的岗位,我想是有道理的,这真的很值得我们去深思?
我想有一部分原因是Python这门语言造成的,会写Python的人很多,但写的好的人很少,大部分都把Python当做脚本来写,缺乏面向对象,模式的思想。想想Java,大家都习惯了接口,实现分离,设计模式在Java中也喊了很多年,尤其是ssh三大框架一出,用着用着就理所当然的认为就该这么做,虽然也有点坏处,但对企业级Java开发无疑是一大进步。
反观Python,尤其是生成器,协程,元类给Python注入了很大的灵活性,想写的Pythonic有不小难度,但其实Python高级特性就那么几个,干掉了也就没有了。
当你觉得Python遇到了瓶颈,不妨停下来好好想想。研究研究设计模式,想想重构,了解领域驱动设计,敏捷开发,再回来读读以前写的代码,当眼界变高了,代码也就美了。
当然思想的提高不是一朝一夕,模式,原则会经常让你纠结,纠结就会思索,思考就走出了自己的路,当然条条大路通罗马。
数据库等存储技术是研发工程师迈不过的坎,对关系数据库以mysql举例来说,你必须清楚的知道什么字段选择什么类型,类型字节大小,限制条件,这东西也很容易理解,多想想即可,比如set类型,要支持交并等操作,1个字节只能存8个类别。数据类型搞定了,下面就是索引了,mysql索引种类?主键,唯一索引,普通索引。索引类别,BTree索引,hash索引。索引的优缺点,mysql的索引查找原理,join原理(大部分都是nested loop),以及一些特殊的情况,比如mysql子查询慢等。其实到这里研发工程师就差不多,当然你可以继续深入下去,比如读写分离,集群管理,甚至一些参数调优。
⑶ 考萧三中艺术特长生一般什么时候面试,什么时候报名,考乐器是不是弹一首曲子就行了
2011年三中音乐特长生招收办法
--------------------------------------------------------------------------------
三中 2011-03-28 10:55:04 三中
萧三中〔2011〕28号
--------------------------------------------------------------------------------
一、招收类别及人数
今年拟招声乐类特长生16名, 舞蹈类特长生16名,器乐——铜管乐类特长生24名,器乐——民乐及其他类特长生24名,共计四个类别80名学生。
二、报名
1.对音乐特别爱好且有一定音乐基础的学生,经班主任和音乐老师推荐,均可报名。每位考生在声乐类、舞蹈类、器乐——铜管乐类、器乐——民乐及其他类中只能选报一类,不得兼报。
2.学生在2011年5月6日(星期五)以前到所在初中报名,填写《萧山三中音乐特长生报考登记表》。
3.请各初中学校在2011年5月11日(星期三)前将学生报考登记表送到萧山三中教务处,并将学校报名情况汇总表的电子文档发送到邮箱[email protected]。(学生报考登记表和学校报名情况汇总表可在萧山三中校园网上下载)
三、特长测试
1.测试时间与地点
2011年5月21日(星期六)上午8:00前报到,8:30正式开始测试,地点在萧山三中。
2.测试内容
(1)声乐类:演唱自选歌曲一首,清唱;
(2)舞蹈类:表演自选成品舞蹈片段,音乐CD自备;
(3)器乐——铜管乐类:演奏自选乐曲一首,乐器自备;
(4)器乐——民乐及其他类:演奏自选乐曲一首,乐器自备(除钢琴外)。
3.测试成绩
特长测试成绩满分200分,120分为合格。成绩合格者有资格报考萧山三中音乐特长生。
四、录取
报考萧山三中音乐特长生的,均须参加2011年中考。录取时按报考类别将中考成绩与特长测试成绩相加,求得总分,根据总分从高分到低分择优录取,但其中考成绩不得低于报考省一级重点高中资格线下降50分的分数。
萧山区第三高级中学
2011年3月16日
⑷ 单招哈铁职院的时候笔试难吗一般哪种题型面试什么样的
单招笔试都不是很难,一般比例是70%简单+20%一般难度+10%难题,比高考简单、比会考难一点。
面试主要考察语言表达能力、沟通交流能力、应变能力、形象气质、礼貌修养和职业素养等方面。
⑸ 测试小白,面试的时候考官问怎么去测一个web端电子商务平台网站呢用到哪些测试呢
全方面考虑:
功能测试: 电子商务的基本功能,登录/登录,交易,订版单等;
兼容性测权试: 不同终端,不同浏览器打开的兼容效果;
性能测试:能支持多少用户同时在线,并发订单提交量
稳定性/可靠性测试:单点故障?
友好性测试:是否符合用户使用习惯
安全测试:是否存在sql注入攻击,xss等
接口测试:对接外部系统的接口
国际化测试:是否有外语版
文档测试:网站是否有操作文档,是否准确
⑹ PHP工程师面试常见问题有哪些
一、技术问题
(1)基础知识:如数组的操作,变量的操作,字符串的处理。主要考察数组、字符串的函数。还有cookie和session的概念和区别。
(2)面向对象:面向对象的思想和理论知识,如继承、接口、抽象类、多态等。 (3)文件操作:比较典型的两个问题:
①遍历目录:使用递归来遍历目录,延伸出来就是无限级分类
②读取大文件:内存不够,如何读取文件内容
(4)数据库知识:
①设计数据库表,按照要求去写sql查询。常见的有订单表、商品表;学生表、成绩表、班级表;省市区表。
②php操作数据库的基本功底,手写php操作数据库的代码。
③数据库性能优化。其中包括MySQL的使用以及性能优化。比如int(1)和int(10)的区别,存储类型的选取;mysql的索引,组合索引和覆盖索引等;MySQL中四种隔离级别的理解。典型问题:一张表有100万条数据,写思路优化或者优化sql;一万条数据同时插入数据库如何保证效率。
(5)Linux能力。linux基础知识,常用的命令要熟悉使用。比如在nginx访问日志中,查找出一天接口访问类前十名。
(6)数据结构与算法能力。基本的排序方法,如冒泡排序、快速排序、二分查找排序;或者给你一道题,手写一个方法,去实现效果,比如100元分给10个人,每人至少6元,最多12元,必须分完100元。最常问到树的遍历和排序。
(7)服务器安全问题:sql注入、xss攻击等。编程时如何预防这些问题。
(8)框架问题:了解哪些框架,然后询问框架的一些基本问题。常用框架的MVC思想的理解,根据逻辑来捋清楚model和controller的关系,controller和view的关系。
二、非技术问题
面试官:
1.自己对工作外的时间安排
2.自我评价
3.对以后职业的规划
用意:
1.观察你是否会在业余时间学习
2.自己是否对自己认证的足够深刻
3.是不是一个会规划的人
共同点: 还有什么要问我的吗?
⑺ Python后端工程师面试题目有哪些
1. 我从来不问google可获得的答案的问题, 只是问问面试者「在过去的工作中,遇到的Ta认为最有成就感的一件事情是什么」和「如果出现了一个google不到的问题,你会怎么解决」这样的问题。
2. 我从来不问操作系统等和Python无关的话题,首先是我不怎么问和工作太无关的话题,有些东西用不到很多就被会遗忘,挑起来这种问题其实挺无聊;其次我是非计算机专业毕业,问的东西说不定我自己都没有把握,那就不出来献丑了。我只关注面试者的学习能力和解决问题的方式,说白了,是不是就是看他是不是「聪明的人」。
3. 不问面试者的短处。我在自己被面试的时候有过这种精力,面试者问他擅长的内容,我不一定搞的定,如果反过来面试Ta,我也会灭掉Ta。所以我会尽力寻找面试者的优势和优点,尤其是对方已经明确承认。其实很多经验和能力,只是需要一个机会和环境,所以我不想放过任何一个合适的人。
4. 面试者不会Python也没有关系。面试者的主动性和学习能力觉得更重要,如果他在其他领域能证明做的不错或者能让我感觉到这个一个未来有潜质成为优秀工程师的人,不会Python没有关系。 嗯目前看来,我没有看错过。
5. 我从来不问Python语法这种看书和google就能学会的问题,我只想了解Ta是否愿意去学。举个例子,我会让面试者「讲讲日常开发中都用到了那些Python内置的模块」,原因在我的专栏「Python之美 - 知乎专栏」的 Python不能不知的模块 - Python之美 - 知乎专栏中有写,基本上说完我就能评估出他的能力和风格,继而就是再问一些问题去验证我的评估是不是准确。
6. 最后,我一般都会和面试者细聊一个Ta认为在过去的工作或者自己开源的项目中最熟悉的一个,从项目设计、踩过的坑儿、开发周期以及如何安排、如何确定需求、如何和其他人协作等方面,最后评估下Ta是否能很容易的融入到我们现在的团队,大家是否可以接受Ta,对工作不负责的、没有用心工作的、没有团队意识的、沟通能力有缺陷的就放弃掉,对性格上容易发生冲突的、不适合团队合作的我就得考虑下,未来也会如实反馈给HR。
⑻ web后端开发面试应该注意些什么
web后端开发面试应该注意些什么?有哪些题目是值得我们注意的?下面就让小编告诉你:
面试这几家公司所遇到的面试/笔试题,目前还能记住的如下。虽然可能绝大部分都是基础,但希望大家不要只是看看就过去了,最好还是假装你被问到这个问题,你来把答案说出来或写出来:(不按公司分了)
python语法以及其他基础部分
可变与不可变类型;
浅拷贝与深拷贝的实现方式、区别;deep如果你来设计,如何实现;
__new__() 与 __init__()的区别;
你知道几种设计模式;
编码和解码你了解过么;
列表推导list comprehension和生成器的优劣;
什么是装饰器;如果想在函数之后进行装饰,应该怎么做;
手写个使用装饰器实现的单例模式;
使用装饰器的单例和使用其他方法的单例,在后续使用中,有何区别;
手写:正则邮箱地址;
介绍下垃圾回收:引用计数/分代回收/孤立引用环;
多进程与多线程的区别;CPU密集型适合用什么;
进程通信的方式有几种;
介绍下协程,为何比线程还快;
range和xrange的区别(他妹的我学的py3…);
由于我有C/C++背景,因此要求用C来手写:将IP地址字符串(比如“172.0.0.1”)转为32位二进制数的函数。
算法排序部分
手写快排;堆排;几种常用排序的算法复杂度是多少;快排平均复杂度多少,最坏情况如何优化;
手写:已知一个长度n的无序列表,元素均是数字,要求把所有间隔为d的组合找出来,你写的解法算法复杂度多少;
手写:一个列表A=[A1,A2,…,An],要求把列表中所有的组合情况打印出来;
手写:用一行Python写出1+2+3+…+10**8 ;
手写python:用递归的方式判断字符串是否为回文;
单向链表长度未知,如何判断其中是否有环;
单向链表如何使用快速排序算法进行排序;
手写:一个长度n的无序数字元素列表,如何求中位数,如何尽快的估算中位数,你的算法复杂度是多少;
如何遍历一个内部未知的文件夹(两种树的优先遍历方式)
网络基础部分
TCP/IP分别在模型的哪一层;
socket长连接是什么意思;
select和epoll你了解么,区别在哪;
TCP UDP区别;三次握手四次挥手讲一下;
TIME_WAIT过多是因为什么;
http一次连接的全过程:你来说下从用户发起request——到用户接收到response;
http连接方式。get和post的区别,你还了解其他的方式么;
restful你知道么;
状态码你知道多少,比如200/403/404/504等等;
数据库部分
MySQL锁有几种;死锁是怎么产生的;
为何,以及如何分区、分表;
MySQL的char varchar text的区别;
了解join么,有几种,有何区别,A LEFT JOIN B,查询的结果中,B没有的那部分是如何显示的(NULL);
索引类型有几种,BTree索引和hash索引的区别(我没答上来这俩在磁盘结构上的区别);
手写:如何对查询命令进行优化;
NoSQL了解么,和关系数据库的区别;Redis有几种常用存储类型;
Linux部分
讲一下你常用的Linux/Git命令和作用;
查看当前进程是用什么命令,除了文件相关的操作外,你平时还有什么操作命令;
(因为我本人Linux本身就很水,只会基本的操作,所以这部分面试官也基本没怎么问。。反正问了就大眼瞪小眼呗)
django项目部分
都是让简单的介绍下你在公司的项目,不管是不是后端相关的,主要是要体现出你干了什么;
你在项目中遇到最难的部分是什么,你是怎么解决的;
你看过django的admin源码么;看过flask的源码么;你如何理解开源;
MVC / MTV;
缓存怎么用;
中间件是干嘛的;
CSRF是什么,django是如何避免的;XSS呢;
如果你来设计login,简单的说一下思路;
session和cookie的联系与区别;session为什么说是安全的;
uWSGI和Nginx的作用;
上面就是小编为大家整理的关于web后端开发 面试的文章,希望对大家有帮助。在实际的操作过程中大家可以根据实际情况进行灵活的调整。
⑼ 面试问题如何预防xss攻击
把服务器关机 告诉他。
⑽ 面试Python后端工程师,主要注意准备什么
Python是人来工智能时代最佳的编程语言自,它语法简洁、通俗,语言结构清晰,吸引了很多人加入学习。想要快速就业拿高薪,基础技能很重要,但面试技巧也不容忽视。
如何参加面试
收到面试通知,如有时间缓冲,尽量在2-3天内去参加面试。切忌收到电话通知当天去参加面试。
3、提前了解公司类型
不同的公司类型Python技术难度、面试风格都有较大差异,请提前熟知:
资深互联网:技术前沿、全面;
外企500强:注重技术+管理;
创业融资公司:技术全面扎实。
4、了解岗位需求
技能需求:如工作经验1-3年;注意:也包括在校期间有效的实际项目经验。
非技能需求:外语(外资企业更加重视)、团队、管理、学习能力等。
5、项目经验梳理
项目技能:项目架构+数据库设计+开发语言;
领域知识:项目针对特定行业的背景信息;
项目说辞:想好如何直接有效的介绍项目。
当然,面试准备的再充分,如果你的技能达不到企业要求,那也是白费功夫。如果你想快速系统的学习Python技能,掌握企业所需的技术,可以选择专业学习一下。