python开发面经收集加自己的面经

  • 如何拿到半数面试公司Offer——我的Python求职之路
    • 其中第13点的原理如下:

      子类继承父类后,初始状态下,继承了父类的属性。

      当在子类中修改继承过来的类属性时,并不会修改父类的同名类属性。以后只要是通过子类访问该属性,访问的都是子类的属性;

      通过父类修改了父类属性后,子类访问该属性时,会访问父类修改后的属性值。前提是子类没有对该属性重新赋值过,如果子类修改过该属性,则会遵循上面的规则

    • 第15个求最大公约数是辗转相除法,厉害啦

    • 第16个中位数这个解决方法非常巧妙,它利用了取反数和为1的特性,通过列表负索引来获得列表中位数。

  • =、copy、deepcopy

    • 可以直接参考这篇文章

    • 这篇博客有图感觉讲的更好

    • 我们所说的一般意义的“等于号“相当于引用,即原始队列改变,被赋值的队列也会作出相同的改变。

    • copy是浅拷贝,并不会产生一个独立的对象单独存在,他只是将原有的数据块打上一个新标签,所以当其中一个标签被改变的时候,数据块就会发生变化,另一个标签也会随之改变。这就和我们寻常意义上的复制有所不同了。

      • Python中的copy动作,对于一个复杂对象的子对象并不会完全复制,什么是复杂对象的子对象呢?就比如序列里的嵌套序列,字典里的嵌套序列等都是复杂对象的子对象。

      • 对于子对象,浅拷贝动作会把它当作一个公共镜像存储起来,所有对他的复制都被当成一个引用,所以说当其中一个引用将镜像改变了之后另一个引用使用镜像的时候镜像已经被改变了。

  • 对于子对象,深拷贝动作会将复杂对象的每一层复制一个单独的个体出来,因而二者完全独立。

    al = [[1], [2], [3]]
    bl = copy.copy(al)
    cl = copy.deepcopy(al)
    d1 = al
    
    print "before=>"
    print al
    print bl
    print cl
    print d1
    
    al[0][0] = 0
    al[1] = [2,3]
    
    print "after=>"
    print al
    print bl
    print cl
    print d1
    
    ####################
    '''
    before=>
    [[1], [2], [3]]
    [[1], [2], [3]]
    [[1], [2], [3]]
    [[1], [2], [3]]
    after=>
    [[0], [2, 3], [3]]
    [[0], [2], [3]]
    [[1], [2], [3]]
    [[0], [2, 3], [3]]
    '''

     

##########################分割线############################

  • 瓜子二手车
    • 一面跪
    • 一开始就是自我介绍,然后项目经历

    • 感觉编程题部分答的还可以。。问了这么几道:

      • 如何判断一个单链表是否有环

        • 我说用两个指针,一个快指针一个满指针,他问还有别的方法没那我说就只有笨方法了,在数组中存看过的节点的指针,看有没有重复的

        • 这篇博客总结的很到位

      • 知不知道哈希表,哈希表是怎么解决冲突的

        • 冲突怎么解决的忘了

        • 处理散列冲突的方法

          • 开放定址法

            • 线性探测法:就是一旦冲突了就放到下一个位置就好了,只要存储空间够大总会有位置放的(但是这样会产生堆积,因为他可能会把其他的原来属于别人的位置只是暂时空着的给占了)

            • 二次探测法:冲突了就放在1或者2或者3等等的平方后的位置,而不是像前面那样就是单纯的不停地加1,这样就可以不让关键字对集中在一块地方

            • 随机探测法:用一个种子产生一个随机数来作为位移量来避免冲突,然后最后查找这个数在不在的时候也用这个种子生成随机数来找

          • 再散列函数法:准备多个散列函数,这个冲突了就换下一个,总会有一个能解决冲突的

          • 链地址法:把冲突的放在一个单链表中,冲突的就串在一起就好了

          • 公共溢出区法:把冲突的放在另一个数组中,然后以后查找的时候没找到还要在这个数组中顺序查找一遍

      • 给一个ip地址判断其是否是个正确的ip。。可能有点也可能没有

        • 写了一个没有点的,后面一想有点好像也可以加进去

        • 自己实现了已经

    • 问答题:

      • python的什么什么锁好像是什么r锁

        • 不会

      • 有没有做过并发的东西

        • 没有

      • 知不知道mysql的索引

        • 不知道底层

      • mysql查询起来花的时间多,怎么优化

        • 读到内存里操作呗

      • 数据库的三种设计模式还是设计方法来着

        • 布道

      • 如何判断一个文件有没有被修改过

        • 看修改时间呗,问还有别的吗?不知道

        • 其他的看不太懂,这个博客将介绍的是命令行看时间的方法

      • tcp协议如何保持稳定

        • 只知道3次握手4次挥手,但是他说他问的不是这个

      • 要是数据库里的数据内存中装不下的话该怎么办

        • 分批次装

  • 陌陌
    • 一面跪
    • 打了个的到望京,SOHU大厦是真的高级
    • 面试的我小哥看着也就二十多岁吧,感觉也是第一次面?看着比我还紧张
    • 先是让我讲一讲一些排序算法,复杂度啊,思想啊,稳不稳定啊之类的
      • 幸好这些我这几天着重准备了
    • 让写了一个归并排序的代码
      • 幸好我会
    • 然后问有没有比快排这些更快的算法,比如要给陌陌1000个员工按照年龄排序该怎么办
      • 我说用字典直接存储,这样就能达到O(n)了
    • 然后继续数据结构,问我堆和二叉树的差别,二叉树指排序树之类的
      • 然后我就把堆讲了一下啊,这个这几天刚看,树就如是的说只刷过题了
    • 然后就问项目先是问编辑距离的原理和实现方法
      • 幸亏老夫牛皮,我还真记得,但是写那个状态转换方程的时候漏了一种情况,不过还行把,面试老哥说我会这个原理很加分
    • 然后问我数据库除了mysql还会什么,会不会什么数据库的优化方法
      • 不会
    • 看我简历上写的项目经历考了我一道文本处理的题
      • 让用正则切分一个句子,句子里像是‘今天太阳【太阳的表情】好大啊,我很开心【开心的表情】’
      • 没怎么用过re的split不太敢用,然后就用最土的split写出来了一个较为复杂的
    • 开放题:问有一个敏感词过滤系统,我们也有一个敏感词库,如何快速的检测一个句子里是否有敏感词
      • 我就说用find呗,然后问有没有更优化的方法,布道
    • 这老哥人还特好,当面就告诉我不行了进不到二面了但是对我的表现进行了一波点评
      • 数据结构和算法上表现的还是不错(没办法你正好问得全是我熟悉的)
      • 但是数据结构的应用场景也应该了解,不能只会算法,不知道什么时候用
      • 编辑距离能解释出来很加分(嘿嘿嘿)
      • 工具不能只会用还得理解其原理,比如mysql的优化啊、正则具体是怎么实现的啊、python中的一些高级的用法比如in是怎么实现的啊
      • 技能树还得再广一点,比如流行的redis、mongodb也得会
    • 总结:至少是一次很有收获的面试,不错。正好还视察了一下望京,哇再说一次SOHO是真的高级
  • 京东方
    • 应该是能进的
    • 这种类似于国企的地方果然面试的套路不一样
    • 过去就是简单的介绍了一下项目,然后就开始扯淡了,问问能不能出差啊,毕业想留在哪啊之类的
    • 总结:月薪1W差点、要出差一次出差半年、做京东方医院、要加班很辛苦,好处就是稳定(?),全国各地都有比如苏州、合肥、武汉、成都什么的。。
    • 感觉可以以后在北京混不下去了再去
    • 说是10月份发offer,到时候再说吧
  • 猿辅导
    • 一面跪
    • 过去先说说项目
    • 怎么在一个模块下使用另一个文件夹下的模块
    • 问了csrf

    • 又问了数据库的调优,然后要是数据太多怎么办,表里按照grade来group,该怎么加速

    • 写了两个sql,两个编程题,都ok

    • 问gil锁。。不会

    • 问了python的解释器什么的,比如用过哪些python解释器(有哪些我都不太懂呢,看来这个底层也要了解了解)

    • 看来主要是用过的东西要知其所以然

  • 图森未来

    • 不知道情况如何啊,电话面试,总共进行了半多小时。可以分为两个部分先是基础知识部分,就是了解个人的技能树,大概问了20分钟吧,然后给了10分钟左右做编程题

      • 上来先自我介绍

        • 我就一波常规操作

      • 然后问对于数据库的了解

        • 我说基础不太懂,但是讲了一下B+树和索引。主要是用的多

        • 然后问使用

          • 事务?

            • 不会

          • left join 、in

            • 这个我会

      • 然后问操作系统

        • 问进程和线程的同步方式

          • 就几个一个信号量了

        • 让说一说CPU调度算法

          • 我说了先进先上和最短的先上、IO密集型的先上之类的

        • 问LRU和LFU

          • 这个我知道啊,内存置换算法

        • 负载均衡?

          • 告辞

        • 分页和分段的区别

          • 我说分页是固定大小的

          • 貌似分段边长?

          • 忘了

      • 然后问计算机网络

        • TCP如何保持传输的可靠性的

          • 哼,我不会在一个坑死两次

          • 什么收到了回复啊、拥塞控制啊、窗口啊一顿吹

        • GET和POST的区别

          • 不太了解

      • 问python的多态怎么实现的。。

        • 布道

        • 就口胡说了装饰器和可变参数、关键字参数

      • 问DDOS知道不?

        • 告辞

      • 说一说自己熟悉的设计模式

        • 告辞

      • 最后做了一道编程题,这个倒还是发挥的不错,面试官说我的思路是对的,最后也做出来了

  • 天润融通

    • 感觉这公司不行啊

    • 就问了问项目,然后还一直质疑我这个项目没有难度,态度不行

    • 客观的说,公司规模也一般吧,说是部门就10个人计划,然后4个产品,6个技术

    • 让等通知,给了我也不一定去

  • ihandy

    • 这公司不错,在五道口最繁华的地方,有健身房有零食,而且业务好像也很厉害的样子

    • 然后面试内容的话基本就是老一套了其实,我都懒得归纳了,无非就是数据结构、操作系统、计算机网络、数据库、用的语言(python)的一些细节

      • 问了python的协程

        • 这时一个解释协程解释的不错的实战

        • 一个不错的讲解原理的博客

    • 值得一提的是面试官问上面这些问题的时候我作为一个非科班的每次都是用比较形象的语言解释出来的,然后她说的问题我都有点思路,可能不专业吧,但是给人感觉是活学活用的那种

    • 于是他就表明虽然我现在不行,毕竟细节还是不行,基础还是不够扎实,但是觉得我这个人学的不错,让我这半个月一个月再加把劲学一学,学好了发邮件给他然后他再帮我内推一下,再面试一次~欧耶,这也算是一种认可吧我感觉

    • 然后我还问哦他以下问题

      • 感觉自己项目不行

        • 老哥表明说个鸡儿在校生能有什么项目,还一群编项目骗人的,主要就是基础知识好就行了——这我就放心了

      • 然后感觉自己不是科班的有点虚

        • 老哥表示你以为科班的上了课就会了,也是渣渣,别慌——这我就放心了

    • 被肯定的感觉真好,好好学习继续努力吧

    • 沃日,查了一下内推截止的时间是9.31.。怕是有难度

    • 10-17被喊去面试了,结果一过去就是二面,紧张

      • 果然部门领导问的就是开放性的东西了

        • 先是介绍了部门,我就听

        • 再是问我项目的细节,就是实习嘛。。讲了做了什么怎么做的然后给他推了一波编辑距离的算法

        • 然后就问问题了

          • 先是问了怎么从1000W个数据中找出最大的1000个数

            • 常规操作,堆排序

            • 还让说了一下复杂度

          • 再是问当数据库很大的时候怎么办

            • 我说了索引的一些东西

            • 要是已经读到内存里了那就用字典

            • 然后大佬提了一个类似于倒排文件的数据结构,或者说是类似于那个编码树的方法,可以学到了

        • 然后就基本结束了,问了下期望薪资和能否实习的信息就溜了,等通知说是

  • 360安全

    • 一面跪,感觉老哥就是随便问的。。想到什么问什么,不过都是基础,还行

      • 编辑距离怎么实现的

        • 稳得

      • 问实验室那个登录注册怎么实现的

        • 就是get啦

      • 问TCP和UDP的区别

        • 稳得

      • 问会不会设计模式

        • 溜了溜了

      • 问python的单例模式

        • 不知道

      • 问怎么计算一棵树的深度

        • 答出来一个用递归的

      • 问数据库相关

        • 要实现从一个数据表的数据转移到另一个数据表该怎么实现

          • 我说事务+游标+SELECT+INSERT

        • LEFT JOIN和RIGHT JOIN

          • 这个很稳

  • 小红书

    • 貌似也是一面跪,说实话有点跪的莫名其妙

      • 上来先做了一道编程题,说实话我有点蒙

      • 然后这不第一道做的一般般嘛然后又出了一道简单的写出多种斐波那契数列的方法

        • 写了两种一种是递归另一种是用前两天看的生成器写的

      • 然后问项目,问去年实验室那个项目。。以后还是在简历上删掉这个东西吧

        • 问哦tomcat的默认端口是多少

          • 答8080

        • 怎么看LINUX的状态

          • 答TOP

        • 怎么看一个服务的状态

          • 我说ps得到PID,然后NATSTAT这个PID得到连接状态

        • 问感觉后端的话给移动端和给网站的接口有什么差别

          • 布道

      • 问进程和线程

        • 我说了一堆

        • 然后问我如果一个东西只用单线程会怎么样

          • 我说会慢

          • 感觉对这个答案不满意

  • 好大夫在线

    • 没准儿还有二面感觉

      • 过去先写了1个小时的卷子。。哇11道编程题。。编的我头皮发麻

      • 然后就是面试了先是问python基础。。问的我头皮发麻。。很多细节的知识点

        • super

        • 生成器

        • 感觉主要就是问面向对象相关的

      • 再就是linux相关,比如怎么查看内存啊怎么看硬盘之类的,我发现这几天的面试都爱问这个。。回去把top好好研究一下,还问了怎么批量杀死进程

      • 然后还问了django

        • 一开始问的比较难,问与数据库是怎么交互的,我说了操作,他问我底层是怎么实现的呢

        • 然后发现这方面我比较菜就问了我MVC模式

      • 最后问了点基础,问了网络的七层模型

        • 一个通俗讲解七层模型的博客

  • 金山云

    • 口头OFFER拿到,嘿嘿嘿。。这波面试是第一次经历二面和三面,感觉很稳

      • 一面就是纯技术

        • 让做题,做的题目和其他公司的笔试题差不多,包括操作系统、计算机网络、数据结构,编程题也不难就是让写了个快排,然后还详细的讲了一下。

        • 还有就是和面试官详细的讲了一下三次握手和四次挥手,很稳

      • 二面基本就是一半一半了

        • 前面先扯淡,什么兴趣点在哪啊,为什么想做这一行啊之类的,什么哟你本科宇航的啊~我本科就是电子信息的也不是科班的

        • 然后就问了两个技术问题。一个是问内存管理一个是问进程和线程的概念

          • 进程线程回答的无敌

          • 内存管理就有点忘了,就说了说虚拟内存的东西

      • 三面老哥估计就是领导之类的了,因为看着年纪大一点

        • 然后就是大部分时间在扯淡了

        • 后面冷不丁的提出一个开放式的技术问题。问怎么保证分布式数据的一致性

          • 然后我举了个分布式数据库的例子,说可以用日志来记录数据库的修改,然后比对日志就知道是不是一样的了

  • 华为

    • 华为这个就水多了总共两面,技术面+HR面

      • 技术面是一个年轻技术老哥面的

        • 先是介绍项目

        • 再是做两道题

          • 不难,都做出来

        • 再就是我说我自学过操作系统之类的,他就问了我怎么学的但是没考我,然后就是我在他那通过了

        • 感觉自己还没怎么发挥就过了啊

      • HR面就是纯扯淡了

        • 介绍项目问有哪些难点然后怎么解决的

        • 实习的规模多大,做得怎么样

        • 问了问已有哪些OFFER别人给了我多少待遇

          • 这里忘记吹逼了,实话实话了一个白菜价

  • 滴滴

    • 搞了一次视频面试,是一面,后面还有没有后续的得等通知

      • 问项目

      • 问SQL

      • 问C JAVA python有什么不同

      • 问了一道编程题

      • 尽力了,确实感觉要难一些,主要是他没问到我熟悉的python啊基础知识之类的,所以整体看来就是在各种临场发挥,没事儿等结果吧

    • 二面跪

      • 运气不好把也算是,面试官不按套路出牌

        • 问程序在计算机中运行时的全部底层构成,就是堆、栈、程序计数器、寄存器这些的,有点不行了

        • 然后就开始扯淡了,可能是因为第一个问题没答好就放弃了吧,就让我给他说一个学得好的学科知识之类的,这就明显在扯了

  • 度小满金融

    • 过了一面

      • 一面老哥表示我是他面得第一个,基本就是问各种基础,问了半个小时

        • 问计算机网络

          • 三次握手

        • 问操作系统

          • 虚拟内存和物理内存

          • LINUX的内存管理系统

          • 多线程

        • 让写了两道简单的编程题,稳得

    • 然后说二面面试官太忙了就直接让我进行三面了(可能是我比较强直接跳级了哈哈哈)

      • 这个就估计是部门领导了,因为看着年纪比较大,问了半个小时左右

        • 问项目

        • 问HTTP和HTTPS的区别

        • 问了一道智力题:有两个玻璃珠,求最快的方法找到临界的从楼上丢下来不会丢的层数

        • 让写一个归并排序

        • 让说说自己的优缺点

  • 去哪儿

    • 就一面,说是回来等消息,不过我表现得还挺好的说实话应该是真的就一面吧,话说还是个女面试官,挺漂亮的

      • 几乎什么都问了,问了快一个小时

        • 一开始问数据库相关

          • 数据库设计

          • 优化

          • 索引的原理

          • 哈希之类的

        • 然后问数据结构

          • 问堆和栈

          • 问压缩算法——我知道是霍尔夫曼树,但是具体我忘了

        • 让写了堆排序和一道典型的递归的题——无敌

        • 还有很多就是,但我忘了,不过就那些东西吧反正

  • 瓜子二手车

    • 第二次面试了啊这是,第一次是在学校。。说实话发挥的一般,基础部分还可以都答出来了,手撕代码阶段不行了,等结果吧

      • 基础部分问了TCP和UDP、线程

        • TCP的三次握手,为什么是三次

        • TCP和UDP的不同

        • TCP是面向连接的怎么理解

        • 对于线程的理解

      • 让写编程题,结果前两道都没写出来

        • 第一道让找出两个链表的交点

          • 以前研究过,但是忘了

        • 第一道不行让做第二道说是找一棵树里结点和最大的路径

          • 有思路但是具体就没写出来了

        • 最后还是不行就让写个快排

          • 写出来了

  • 马蜂窝

    • 层层闯关经历了三面,两面技术,一面HR聊天,感觉这两次技术面有点懵有点奇怪,没怎么问所谓的计算机和语言基础,狂问项目,和别的公司不像

      • 问了项目用到了什么技术,有哪些问题,怎么解决的

      • 二面中问到了数据库怎么建索引比较好

      • 两面都让写了正则,说实话有点虚

      • 写了不少编程题但是都挺基础的:快排、链表找中间点、判断两棵树是不是镜像

      • git的一些用法,说实话答得也有点虚

      • 说是下周三之前打电话出结果,应该是要是没电话的话就是跪了

  • 字节跳动

    • 能面试就已经很赚了,这么想不错

    • 三面面面都是技术面,操作系统、写代码、网络、数据库,能问的所有都问到了,头条有个显著的特点就是喜欢举个案例让你来分析来设计来解决,这就掐住我的命门了

      • 一面

        • 案例是让给微信的朋友圈评论功能设计后端的数据库

        • 让用一个锁实现共享锁

      • 二面

        • 问基础就还好

      • 三面

        • 各种系统设计问题

        • 写了道链表的题,倒是还行

    • 罢了罢了,头条的这个面试是我经历过的强度最大了,是真的累了,一两周之内出结果,听天由命吧

你可能感兴趣的:(python开发面经收集加自己的面经)