社招,文章很细节,大家看下我有多细

社招面试


个人简介:

  1. 迅雷两年后台开发(偏业务方向)
  2. 熟悉go开发,理解go协程、channel、内存分配、GC等基本原理及部分源码
  3. 熟悉mysql、redis、leveldb,理解其基本原理及部分源码
  4. 熟悉docker,了解k8s,理解docker基本原理
  5. 熟悉网络、操作系统、数据结构与算法
  6. 了解Kafka、Nginx、服务发现注册、服务限流

面试思考:

  1. 从大部分人讲述项目面试的经验来看,一方面是基于使用的基础知识拓展问题,另一方问问的是项目整体框架
  2. 项目面试个人感觉要突出几个点:
    (1)为什么这么做,思考点
    (2)团队之间成员配合,以及对其他人服务的了解
    (3)对自身服务的细节要了解清楚
  3. 基础知识面试:看了很多面经,不能仅仅局限于别人说的面试题,学会自己提问自己,并想清楚回答这个问题的思路框架,不要说出了东扯一点西扯一点,乱七八糟毫无思路可言,平时注意多总结回答时候的框架知识点,保证模拟的时候脉络清晰
  4. 找匹配的岗位,否则你会怀疑人生
  5. 后续面试多了,开始能get到面试官想问哪个知识点,容易get到面试官的想法了
  6. 面试有时候真的挺玄学的,不要不信,你准备的很好的东西说不定这个面试官一点兴趣也没有,下一个聊到你忘记时间,所以面试还需要那么临门一脚的运气
  7. 应该社招面试到此告一段落:可能因为不具有普遍性,着重说下感性的面试感受,知乎和网易一面感觉是同事面,聊的比较开心,YY、腾讯面试很舒服,中途有早到、打喷嚏都会道歉,不论职级,面完还会招手说拜拜,或许就是真大佬吧,头条的面试官很严肃
  8. wps、知乎、网易较快响应,立马用来面试练手

2020/05/09 金山wps 云平台

一面(1小时)

  1. 刚项目:提问点是业务架构,接入层(slb、nginx负载)、监控、服务注册发现
  2. k8s 集群网络(忘记了,立刻复习下)
  3. mysql(索引区别)、redis(sort set)
    总结:
  4. 欢笑声中gg
  5. 面试过程有一丝紧张,感觉脑袋一片空白(可能是以下造成的原因),尝试自我提问,理清思路
  6. 感觉自己描述很烂,思路有时候有条理,有时候没有,看来是真的菜
  7. 面试官部门做的是wps 文档云服务,问了下工作内容一部分是k8s相关,以及千万日活的文档云服务,因此面试整体偏向于架构平台层面,不会对业务层使用的mysql、redis、kafka等做面试题,在回答mysql、redis深入问题的时候感受的出面试官并不感兴趣
  8. 缘由:自己简历明明做的业务开发,之所以遇到这类面试是因为有部分词汇会误导自己组的工作内容,本次金山wps云平台主动找我的,不过也对云平台侧重点有了认知(自己本质是业务开发而不是cdn加速节点、迅雷加速等底层开发,需立刻对简历进行修改)
  9. 业务与平台的思路出发点不一致,面试官想要的思路点与自身不一致,形成有种稍微尬聊的感觉,今后可反馈相关信息获取更贴合岗位

知乎搜索推荐平台

2020/05/11 一面(一个半小时)

  1. 项目,按照之前思路来
  2. kafka 可靠性(日志如何保存、副本机制以及ack)
  3. go GMP(源码级分析)
  4. go map slice 实现(源码分析以及slice内存泄漏分析)
  5. Mysql 索引
  6. 最终一致性(项目用到)
    总结:
  7. 聊得还可以,聊着聊着就一个半小时,然后感觉算法之类以及基础知识(可能和他们团队不涉及那么底层有关)都不用问了
  8. 问了下面试官业务是什么,搜索以及推荐,qps在1k-2k,不大注重底层,偏向于业务
  9. 吹了下自己看过挺多源码,以及平时和发现系统中不好的地方,自己的思考和改进
  10. 备注下:小哥哥挺帅的
    2020/05/13 二面
  11. 面试官没上线???

网易游戏监控平台

2020/05/12 一面(一个多小时)

  1. 项目
  2. go 内存逃逸分析(分析了栈帧,讲五种例子,描述堆栈优缺点,点头)
  3. 是否有逃逸分析过(没)
  4. defer recover 的问题(自己了解不多,简单介绍)
  5. mysql 索引慢分析(线上开启slowlog,提取慢查询,然后仔细分析explain 中 tye字段以及extra字段,发生的具体场景及mysql是怎么做的,被表扬回答的不错)
  6. mysql 分布式id(项目用到的)
  7. redis 跳表
  8. 算法 twoSum(感觉自己写对了,但是有那个不可描述的致命错误,被指出了)
    总结:
  9. 一开始聊得还可以吧,除了算法阶段
  10. 问了面试官他们的业务是负责网易游戏业务、机器、go火焰图的监控告警系统,提了下告警系统也很复杂但没法讲清楚怎么个复杂法,他们的服务qps量级过百万,集群有过500w的qps
  11. 面试有点真空,没有那种聊着聊着时间就过去的感觉,可能因为毕竟监控平台开发和会员业务开发仍有差距,自己会的东西还是不搭边,因此聊的介于快乐与尴尬之间,快乐是go语言mysql等一些东西能聊得很深,但也有不足的地方是go源码的东西面试官也没看过,尴尬的地方在于有时候不知道对我简历的东西想聊啥,毕竟后面问了他们的系统用的数据库(好像是TiDB)跟我们平常用的mysql关系型数据库有着截然不同的思想,他们关系的东西跟业务层的思考点还是不一样的
    2020/05/18 二面(一个小时)
  12. 项目
  13. 线上问题排查
  14. 请求到服务qps高,返回问题排查
  15. 请求到了lvs层,但没到服务,问题排查
  16. go线上问题排查
  17. redis hashtable实现,什么时候退化成ziplist
  18. ziplist 和 hashtable 之间区别
  19. hgetall 或者说一个hashtable 有很多key,如何优化
  20. 写一个ttl带过期时间结构,怎么分布式cluster
    总结:
  21. 怀疑人生,毋庸置疑
  22. 基本在不会和乱七八糟回答中度过
  23. 选择合适岗位面试才是最重要的,否则每次都是怀疑人生收场,谢谢

深信服 golang

2020/05/15 一面(不到小时)

  1. 项目
  2. gdb
  3. go 协程
  4. 不想写了
    总结:
  5. 深信服 golang 是做网络安全的?????
  6. 早知道拒了面试,不会不懂不想三不原则,溜了溜了,byebye

YY欢聚时代 golang

2020/05/19 一面(1个多小时)

  1. 项目
  2. go、redis、mysql、操作系统、网络、docker
    总结:
  3. 面试很简单,试探性往深的说他的大致意思是说道这部分就可以了
  4. 增强信心有用
    2020/05/19 二面(1个小时)
  5. 项目(对项目的高可用重视,redis分布式锁,答得不好,需要学习补充)
  6. go、redis、mysql、docker(问题简单,但也有关注不到的点)
  7. 以下为关注不到的点:
    (1)mysql checkpoint
    (2)go waitgroup 的坑
    (3)docker 预热
    (4)mysql 分库分表平滑扩容方案
    总结:
  8. 应该是gg了(面对高可用的问题没有对应的方案只会说其实还好,被提示了做服务端不能这样),对于项目的相关问题又涨知识,突出问题点在于项目的高可用
    2020/05/19 三面(半个小时)
  9. 居然有三面,聊人生去了
  10. 讲下项目
  11. 迅雷怎么样
  12. 对YY的了解,未来岗位的预期规划
  13. 提问环节,YY 阅文业务的团队相关情况,OKR的形式
    总结:
  14. 可能运气好,碰到的面试官感觉挺尊重人的,比面试预约时间早打来电话还抱歉了一声,整体面试下来流程感觉还挺好的,沟通的时候挺流畅的,互相都能get到对方的点吧
    2020/05/26 HR面(半个小时)
  15. 可能gg了吧
  16. 发offer了

腾讯QQ 增长

2020/05/25 一面(半个小时)

  1. 项目
  2. go 协程
  3. 项目调试(讲了下GDB)
    总结:
  4. 感觉没怎么问,老项目是c++维护用,语言不是问题
  5. 感觉就飘飘过了
    2020/05/26 二面(一个小时)
  6. 项目
  7. go 协程
  8. k8s自己知道什么
  9. 二叉树应用(不知道,排序?但是排序有像redis跳表更好的实现方式)
  10. 哈希表怎么解决冲突(只记得开链解决,顺便提了下redis 哈希表底层实现)
  11. 自己工作的难点
  12. 迅雷需求多吗,工作重吗
  13. 自己效率如何,如何用例子验证自己的效率
  14. 自己的优点缺点是什么,举例子
  15. 在迅雷学到了什么,举例子
  16. 到此一游
    总结:
  17. 说这边项目qps在十几万到几十万,虽然比不上微信
    2020/05/29 牛客网算法题(一个小时)
  18. 数组存在两个出现奇数次数的值,按序输出(60%)
  19. 单链表和双链表的反转(100%)
    总结:
  20. 面试官说写代码是最近腾讯面试要求加的
  21. 第一题只通过60%,不知道牛客怎么判定的,leedcode刷是没问题的,跟面试官解释了思路,他说我思路没问题,然后说我应该平时有刷leedcode,思路可以
  22. 希望能过
    2020/06/05 三面GM(半个小时)
  23. 项目,印象深刻的
  24. k8s
  25. redis 跳表
  26. tcp 四次挥手
  27. select、epoll
  28. go 内存分配
  29. go 协程怎么切换的
  30. go 同步,channel的实现
    总结:
  31. 腾讯流程之所以长是以为GM很难约时间,约了一周,然后居然先面HR,并且先填写的薪资证明
  32. GM聊下来人感觉很不错,给人感觉特别舒服,或许这就是大佬吧,真大佬面试真的会给人一种很舒服的感觉,特别像校招面阿里巴巴的一面,真的有时候会遇到那种怼天怼地自以为是的,所以找工作运气也很重要
  33. 下周应该给我offer call,希望能达到预期
    • 2020/06/15 收到offer
  34. 上周一整周的背调和offer审批
  35. 后续应该负责QQ 空间和 QQ 小世界的产品

字节

2020/06/01 广告一面(1个小时)

  1. 项目
  2. TCP相关的关闭连接
  3. TCP最多有几个连接(fd限制+四元组ip、port限制)
  4. 服务端出现大量close_wait原因(主子进程共享socket,close不能完全关闭)
  5. mysql 隔离级别、sql慢查询
  6. go defer
  7. etcd 原理(讲了下raft协议)
    算法:
  8. sql语句:查询所有课程分数都大于或等于80分的学生姓名
  9. 检验字符串是一个回文字符串
  10. 给定一个字符串 s,找到 s 中最长的回文子串
    总结:
  11. 一面感觉和别人不一样啊,我好难啊,好难受
  12. sql和算法都没写出来,跪了吧
  13. 现在回忆起来运气不好,聊不来,心态也正了
    2020/06/01 风控一面(八点半开始面到十点1个半小时)
  14. 项目
  15. 算法(最小栈、很简单的dp非leedcode题目)
  16. 有一批按时间排好序的用户登录登出日志,每条内容为,操作可能是登入或登出,请问最高在线人数以及对应的时间点(不大懂,最后也没说出来)
  17. 数据库中,用户表有『余额』等字段,订单表中有『金额』、『付款状态』(分为未付款、已付款)等字段。请实现需求:付款功能,即:当用户的余额大于订单金额时,订单的『付款状态』由『未付款』更新为『已付款』,并从用户的『余额』中扣除订单的『金额』。请处理好并发冲突(最终一致性的解决方案)
  18. 零零散散的计网、协程、进程、线程、mysql基础知识(看别人的面经就那些,很奇怪只要我简单回答)
    总结:
  19. 奇奇怪怪的感觉,可能想问很多问题,所以每个问题只需要简单回答,每个问题已经习惯性引申更深的层次就说我回答那些点就可以了,所以违背了我一贯的回答思路(举例,回答协程和线程区别,大致回答后引申的go的协程相关,大意让我停止下个问题,但不是那种认可后让我停下来,而是觉得我有跑到其他点去了),感觉奇奇怪怪,不懂或者不了解懂让我直接跳过,就感觉很奇怪
  20. 这种面试感觉跪了吧,反正是被捞的,没啥指望的
  21. 讲下风控的业务吧:大概就是账号防盗、视频涉黄、反动、机器刷红包反查下的业务场景,新部门作为中台在协调整合,风控的技术并发,以及某些业务下的响应
    • 2020/06/01 风控二面(1个小时+20分钟)
    1
    /
    2
    /
    v v
    3 -> 4
    a. 如何判断环形依赖
    b. 如何并发执行
    一次请求处理过程中,其中需要调用 N 个下游,各下游之间可能有依赖关系,设计一种算法,完成对 N 个下游的调用并返回
    假设 5 个下游调用
    1 2 3 4 5
    1依赖2、3、4
    2依赖5
    1依赖2
    3依赖4
    2/4依赖5

频控
如果一个uid最近5分钟访问次数超过10次,则进行拦截

map[uid](次数, time + 5min)

t1 (1, t1+5)
t2 (2, ?)

key:uid value:(t1时间戳, t2时间戳,)

定时器

  1. go相关知识点(内存分配、go优缺点、go错误处理有什么优缺点)
    总结:
  2. 又是奇奇怪怪的,思维不一致吧,毕竟风控有自己的思维方式去处理解决,产品有自己的逻辑思维方式去做服务,应该挂了,溜了

你可能感兴趣的:(面经,面试,腾讯,字节跳动,知乎网,网易)