发布于 

面试复盘-搜狗:往前迈的这一步

面试过程并不长,主要分为三部分,以下罗列出我在整个面试及准备过程中涉及到的知识点。

(标√的是我觉得了解程度还可以,回答效果较好的)

python基础:

  • 装饰器

    • 装饰器的概念和实现√

    • 引申至嵌套函数和闭包√

      (闭包那稍有卡壳,不过联想到可在装饰器里内置一些变量,也就说通了,之前看过耿哥的多巴胺框架的博文起了不小的帮助

  • 协程

    • 协程的特点√
    • 引申至python的多线程和多进程√
    • 多线程、多进程、协程之间的异同和联系√
    • 由python多线程引申至全局解释锁
  • 深浅拷贝√

    (这部分比较深的一点其实是,如果子对象是不可变/非容器类型:元组和字符串等且内部只存储原子类型,那么即便是深拷贝也只能得到该子对象的浅拷贝,不过没有问到:

    集合:set

    字典:dict:

    • 布尔值

    • 其他:

      根据python标准库,内置类型还包括:模块、函数、方法、二进制序列(bytes、bytearray、memoryview)等

计算机基础:

  • 数据库

    B+树和B树的区别√

    索引建立的选择√

    索引优化√

    事务的特点(ACID)√

    Mysql数据库引擎(这个就答出了我知道的innodb、myisam)

    引申至两者的区别√

    两个sql查询,比较简单,略去

  • 操作系统

    • 进程和线程的区别√

    • 进程间通信方式(这部分优缺点理解得不够到位):

      线程间可以通过直接读写同一进程中的数据进行通信,但时进程通信需要借助IPC:

      • 管道
        • 命名管道:一种半双工通信方式,允许无亲缘关系进程间通信
          • 优点:可以实现任意关系进程间通信
          • 缺点:长期存在于系统中,使用不当容易出错
        • 匿名管道:半双工,亲缘间通信(父子进程)
          • 优点:简单方便
          • 缺点:单向通信、使用范围有限(亲缘间)、缓冲区有限
      • 消息队列
      • 信号量:一个计数器,用来控制多个线程对共享资源的访问
        • 优点:可以同步进程
        • 缺点:信号量有限
      • 共享内存
      • 网络Socket
  • 计算机网络

    • HTTP方法√
    • RESTful理念√
    • 三挥四握√
    • TCP与UDP区别√
  • 数据结构

    • 红黑树定义和性质√
    • 红黑树和B+树比较(选取B+树做数据库索引结构的原因)√

算法:

圆回原点:动态规划√

翻转二叉树:递归实现√

爬楼梯√

sql:

第二高薪水√

第二天收到了邮件,虽然决定下的有点晚,好歹首战告捷。

总体来看,这次面试的表现还算理想,六个月之前的那一次受挫让我重新认识了自己,尽管之前花了不少时间在准备考研上,也不能说毫无收获:学习习惯的养成是十分重要的。

总归是结结实实地往前迈了一步,虽然只是现在的一小步,但对于未来的一大步,这就是第一步。


本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

本站由 @tsparrot 创建,使用 Stellar 作为主题。