2019猿辅导服务器端日常实习面经

整体分为两面,

一面面试官是张梦南(之前没有关注最强大脑,后来才听说),主要基础知识和项目中基础知识的介绍,一道算法题;

二面面试官中年,感觉资历更老一些,主要问项目,一道算法题

整体氛围感觉还是很轻松的,答不上来的也都会简单提示然后最后会给出答案。

写在最前面

整体感受非常nice,对接的hr很照顾面试人的感受,因为怕迟到,早去了一小时左右,但hr很贴心的一直在考虑我这边等待时间太长,帮我提前找了面试官。公司没有仔细参观,但是整体环境感觉挺不错。

一面

发挥的比较不好,面试复习过的内容面试过程中大部分都想不起来或者很费劲才想起来,可能就是死记硬背带来的问题吧…

  • 首先自我介绍,然后讲到简历中的实习经历,就顺着问了一些里面的具体内容

  • 为什么想做后端?

  • 数据库事务的隔离级别

  • 数据库事务的ACID特性

  • 写mysql语句

    • 1.查询user表中男性和女性年龄最大的两个人的名字 2.如何提高查询速度?

      select name from account where (sex, age) in (select sex,max(age) from account group by sex);

      • 这里给的一个参考答案,面试的时候写的是错的,但是可能大概意思是对的吧…因为太久没有直接写sql语句了,基本都是由框架提供的方法函数完成

      • 提高效率上,考虑到group by方法,我提出了在sex上建索引的方式,但实际上因为性别只有两个,创建索引能够带来的收益也不是很大,甚至会变慢

    • 查询年龄大于50岁的所有男性 2.如何提高查询速度

      select * from account where sex=’男’ and age>50;

      • 这个sql比较简单,但是提高查询速度上还是需要进一步理解索引的适用场景。这里我回答的是在sex和age上建立复合索引,sex先,age后
  • 对NoSQL有了解么,为什么(有一个实习经历里)用了mongodb而不是用关系型数据库?

    回答是可能存在有些数据没有某些字段的情况(被反驳可以在那些字段使用null)和需要存储数据等类json结构的数据,只从表层上回答了一些不是最关键的原因。最后小声bb了个分布式存储,因为对当时数据库的选择原因的确没有多问,只是跟着做而已…

    SQL vs NoSQL

  • 对java了解多少,我们的后端主要是java开发

    简单的应用吧,能够照着原有代码学习,之后的想法也是转java

  • …(基础和项目的问题大概就记得这么多吧)

  • 算法题

    基础答得很不好很不顺利,到这里看着题面比较简单,有些急于表现自己,但是过程中有些迷茫的地方老是绕不过去,但是面试官很耐心的在引导。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    描述:给一个二叉树,然后给一个想要删除的节点值的list,从中删除这些节点。当被删除节点有孩子时,左右孩子分别变为根,返回删除过后所有的根节点
    示例:树
    1
    2 3
    4 5 6 待删除节点[1,3],返回节点[2,5,6]

    思路:
    1. 递归,删除左子树中的所有待删节点,删除右子树中待删节点
    2. 讨论根节点,
    1)若根节点需要删除,则直接返回左子树根序列+右子树根序列
    2)若根节点不需要删除,分别查看左右子树处理后的根序列,
    2.1)如果没有左孩子,将左孩子置空
    2.2)如果没有右孩子,将右孩子置空
    3.3)将根插入结果集返回

二面

相对顺利一些,之前的项目经历讲的顺利一些,算法题是一道很常规题,发挥正常

  • 首先介绍一下自己之前的项目
  • 在xxx线上实习中大概用多少时间在实习上?
  • 你认为在xxx项目中,比较可能造成访问速度瓶颈的地方是什么
  • 对于请求的瓶颈你是如何处理优化的
  • 在数据请求上有没有做缓存之类的?什么场景下需要进行缓存?

  • (针对简历中提到的java spring)你对java spring 的了解,(建立中体现更多接触的是python语言)和对python一些框架的对比

  • …(项目相关问题到这里)

  • 算法题

    一道算法与数据结构考试题,很基础

    1
    2
    描述:根据二叉树的先序遍历和中序遍历,推导二叉树原始结构
    思路:先序遍历的第一个为树根,找到中序遍历对应的根后,左边的是左子树元素,右边是右子树元素,依次递归即可。

hr面

  • 在先前的公司都是干什么工作
  • 先前公司大概规模是多大?主要是做些什么?
  • 一个产品对几个开发?
  • 一周几天,入职时间等等常规问题

最后

欢迎发送简历到邮箱内推

jd见:职位描述

0%