一面(30min 通过)

自我介绍:我个人习惯自我介绍里简单介绍一个项目。这是一个go的岗,所以我加了一点最近对go的学习体会。

围绕项目让我选一个难点详细介绍

问项目里有没有使用索引?对索引了解吗?介绍一下覆盖索引?还有哪些索引?

问项目有没有用到redis?在什么情况下使用的,用了redis的哪些功能?

熟悉linux系统吗?说说自己平常在服务器上做过哪些操作?

写题:M个水果放到N个篮子里,有几种放法?注意如果交换篮子的顺序后如重复则不重复计算,(5,1,1)和(1,5,1)只能算一种

反问:部门业务?对go日常实习生的要求和期待?对这场面试的评价?

总结:

感觉大公司一面的风格都非常一致,了解一下你的基本能力,做过哪些事情。问的不深,对回答的要求也不是很高,点到就可以了。

比较难过的是写题没写出来,我给出的方法是不能解决重复排列的。

非常感谢B站面试官给了我二面的机会!!!(虽然知道大概率二面就得挂了),我还是会努力加油准备的!

二面(60min 通过)

介绍项目,面试官围绕项目问问题:

  1. 你为什么会想到用内网穿透呢?
  2. 你项目里使用frp的部分,结构是怎样的?
  3. 你的项目涉及学生的一些账号密码之类的,你是在数据库里建表存储吗?(不存,保护隐私,存在用户本地)
  4. 你说你是用vpn挂在一台主机上,那如果vpn断连了怎么办?
  5. 你说你们学校用的是Oauth2,那有没有验证码之类的?如果登录过程中学校站点出错会怎么样?
  6. 你在模拟请求的时候,用的是怎样的技术?无头浏览器?网络库?(说了requests)面试官又问,哪还有什么办法呢?
  7. 如果你是你们学校的技术人员,你要用什么方法来防住你这样的行为呢(不考虑添加验证码方向)?(说了对ip的监管,对数据部分的加密)面试官:还能想出来别的吗?最后他自己补了,比如还可以对用户行为进行分析,是不是符合人的操作、是不是符合历史行为。

看到你有自己的博客诶,你的博客的框架是什么?(hexo)面试官表示了解(然后我补充:在一年前做了一个整体结构的调整,实现了本地动态生成、写博客,使用generate命令生成至github仓库,再由云服务器定时pull,完成部署)

写题:

  1. 函数执行栈,根据函数的出栈入栈日志,计算每一个函数的执行时间。(可能存在重复调用和递归调用,允许自己调用自己)(没要求我写,让我说一下思路)

  2. 升序排列链表(要求时间复杂度nlogn,常数级空间复杂度)

    (卡了,不断地通过讲思路问面试官要提示)

    • 提示一:归并排序(然后写了核心的两个有序链表的归并当作工具函数,但是卡在了主函数,感觉要随机访问)
    • 提示二:归并排序主函数需要做什么?(不断的划分,直到只剩两个节点)那链表怎么找中点?(快慢指针,然后就满一个小时了,来不及写了)

反问:

  1. 昨天也问了面试官,但好像网络问题没听清楚,想再听一下部门的业务。(这次面试官讲的非常非常详细)
  2. 再问,刚才你说的业务里xxxx和xxxx感觉都是非常偏算法的,所以想问一下为什么会选择go这个技术栈呢?我的认知里面好像这方面python用的更多一些?(面试官回答有python的,说我如果对算法感兴趣也可以,然后问我是更偏向开发还是算法)
  3. 问了实习生缺口(面试官很含蓄,我们现在还在招就说明还是有岗位的嘛)

总结:

面试官真的很强很nice!围绕项目几乎问了30min,我的项目不算主流挂的,所以之前很少有面试官抓着我的项目问那么多,并且他对我项目涉及到的东西都非常熟悉!非常强!!!

感觉主要破防在了写题上,没想到链表的归并那么难写。面试官给了非常多的提示才能够抓到思路