服务端面试经

4,568 阅读3分钟

题图:pixabay

转服务端一年半有余。主技术栈为golang,不知道自己技术水平在什么阶段,之前没有服务端的面试经验,正好有小伙伴讲说帮我内推试试。选了4家公司,某条、某手、一家C轮小厂、一家D轮小厂。

某条:

一面:

  • 自己负责的项目、为什么那么做、技术选型有哪些取舍
  • golang基础、Map原理、调度原理
  • https通信原理、mq
  • mysql索引、事务、幻读、MVCC
  • 手写两道easy算法题

第一次服务端面试,算是摸摸套路。自我感觉答得还行,不过还是一轮游。事后托朋友问面试评价:

  • golang基础还不错
  • mysql部分还需加强

某手(java岗):

一面:

  • 手写算法最长回文子串
  • 负责的项目
  • 设计一个网络客户端
  • 没了

这个挂得有点尴尬。答得不好,有点没搞清楚面试官的问题重点。

某C轮:

一面:

  • 负责的项目
  • golang基础、Map原理、调度原理、Echo框架一些细节
  • redis持久化、分布式锁
  • mysql索引、redo log/binlog、mysql事务一致性
  • 手写一道easy算法题

二面:

  • 负责的项目
  • 系统设计《短视频app、点赞功能热度排名啥的》
    • mysql持久化
    • redis sorted set
    • 分两块内存,适当冗余

三面:

  • 负责的项目
  • 遇到的难点
  • 为什么不用redis做mq?考察点:redis架构

某条挂了后恶补了mysql。数据库这块答得还行(学文科的背了再说)。二面在面试官引导下 基本答到面试官考察的点子上。一二面聊的比较愉快。负责的项目被三面面试官怼得一文不值,没有技术难度。总体还好。第二天来电hr面。

某D轮:

一面:

  • golang基础
  • mysql索引、间隙锁
  • redis持久化、应用场景
  • 线上大量time wait怎么解决?

二面:

  • https通信原理
  • redis string底层实现
  • go为什么快?go垃圾回收、go逃逸分析、
  • mq重复消费怎么做?怎么尽可能保证不丢消息?
  • 一道easy算法题及其变种,分析复杂度。

三面:

  • 负责的项目
  • 前端负责的项目、做了哪些架构优化、...
  • 前端知识

感觉一面面试官不太专业。二面面试官挺好,会有一种一起探讨的感觉。三面面试官说服务端的东西前两面都面过了,纯聊前端的东西。让我把两年前的项目拿出来说,忘得都差不多了。完事儿 当天晚上hr面。

总结:

  • 拿到了后两家的offer。其中一家涨幅超30%了。最后考虑了下,两家都拒了。
  • 不该第一次面试就拿某条试手。当时是想着先小公司面几个再去试试的。不赶趟儿
  • 基础不够扎实。系统架构设计能力偏弱
  • 成套的技术体系不够成熟

题外话:

今天看了公司11级大佬们主讲的 【工程序列职级解读】。。P7/ P8技术型工程师职级标准,包括专业能力、业务能力、软素质、负责方向上的规划和思考等等。审视自己,还有很多要学习和改进的地方。

新里程,新开始。