Skip to content

Latest commit

 

History

History
417 lines (273 loc) · 20.2 KB

interview.md

File metadata and controls

417 lines (273 loc) · 20.2 KB

分享一下最近几次面试

前言

  • 希望自己的面经能给朋友们,一点点提示,也是对自己的一份总结报告。

  • 若您对以下内容存在意见或建议,可以随时提 Issue 沟通交流。

  • 从面试的公司也看的出来比较真实了;本人并非大佬,贵在真实。

  • 求职过程:全部通过 Boss 投递,没找猎头,也没有内推。老实说刚满 1年,也不太好找人推。。。

  • 地点:上海;六家企业面试,整个求职时间段:2019年 7月11日 - 7月22日;

目录

1. 本人大致情况

  • 18年某普本毕业,17年11月份出去实习+转正至今(马马虎虎算一年经验了吧=。=)。

  • 目前(工作制:965,算时薪比的话还是相当可观的,手动滑稽: )

    • 某C轮小厂担任:Python 开发工程师 一职
    • 薪资:13 * 14
    • 工作制:965

2. 求职过程

以下是这段时间,本人求职过程,公司投递以及offer情况,大致能想到的就这些,投递每家公司的JD都有贴出来。(意向岗位:golang 开发工程师)

全部通过 Boss 投递,没找猎头,也没有内推。老实说刚满 1年,不太好意思找人推。。。

地点:上海

PS:1000人以下的企业,简历挂的就没统计了,因为自己毕业一年,会尝试投一些小公司 3-5、5-10 年岗; 因此可能还是有一些数量的,没有什么实际价值,就不一一写了。

2.1 公司投递以及offer情况

  • 0-100 人

    • 聊聊科技
      • JD
      • 结果:拿到 offer
      • 期望薪资:16-25k
      • offer 薪资:17 * 13
    • 兑观信息科技技术
      • JD
      • 结果:拿到 offer
      • 期望薪资:17k
      • offer 薪资:16 * 13
  • 100-1000 人

    • 云埔实业

      • 结果:拿到 offer
      • 期望薪资:17k
      • offer 薪资:13k + 每月有绩效奖
    • 亿鼎云

      • JD
      • 结果:
      • 期望薪资:20-25k
      • PS:去做 DevOps 确实不合适
    • 晓信

      • JD
      • 结果:拿到 offer
      • 期望薪资:20-25k
      • offer 薪资:17k + 每月有绩效奖 + 1-3个月年终
  • 1000人以上

    • Innotech

      • JD
      • 结果:拿到 offer
      • 期望薪资:20k
      • offer 薪资:**k + 每月绩效奖(1:50%;2:30%;6:10%;1:0%;好像是这个操作) + 0-3个月年终
      • PS:趣头条母公司,让我去做萌推项目
    • 趣头条

      • JD
      • 结果:简历挂,投递简历无回应
      • 岗位描述:资深开发工程师 3-5年 本科
    • 今日头条

      • JD - 1
      • JD - 2
      • 结果:简历挂,投递简历无回应
      • 岗位描述:后端研发工程师 3-5年 本科
    • 滴滴出行

      • JD
      • 结果:简历挂,投递简历无回应
      • 岗位描述:Golang 开发工程师/架构师 经验不限 本科

2.2 技术面经

2.2.1 聊聊科技

展开查看

详见:某不知名小厂面经 - 第二家


2.2.2 兑观信息科技技术

【兑观信息科技技术】—— Golang 工程师(数据处理)

展开查看
  • 基础部分

    • 给了个数据集,给了两三个需求,按要求编程(数据处理)
    • MySQL 索引
    • HTTP 知道哪些头
    • 为什么用 Golang,用下来感觉如何
    • 你对 gRpc 和 http 的理解
    • 剩下的忘记了,想起来再补充。
  • 其他

    • 多系统间 rpc 来回调用问题

    • 多链路排错(时延、异常等),全链路追踪吧

    • 多版本依赖包管理:A依赖B、C.1;B依赖C.2,版本强依赖,如何解决

    • 一个接口希望内部接口调用不用做验证、外部接口调用(不用摘要或加密认证;不用 IP 段白名单)

    • MySQL 两个进程

      • 进程一:一秒插一条数据;
      • 进程二:一个小时插入十万条数据;
      • 如何配置或者优化操作
    • HTTP 如何保持长连接

    • 负载均衡算法和健康检查算法


2.2.3 晓信

【晓信】—— Golang工程师(方向:toC、数据处理)

展开查看
  • 说一下进程、线程与协程

  • 说一下用户态线程

  • 进程间通信

    • 不同主机可以通过:套接字(socket)通信;
    • 按现代操作系统里面说的
      • 相同主机:内存共享、管道、信号等
      • 还聊了里面介绍的,多线程同步机制:屏障
  • 用户态和内核态有什么区别

  • MySQL 索引有哪些

  • 什么是缺页中断

  • B+ 树优势

  • LRU 算法如何实现

  • redis 的淘汰算法(redis的LRU并的非我们使用我们所实现的那种,淘汰略有偏差,但总体合理。见 redis 官方网文档:Using Redis as an LRU cache

  • 说一下 Raft (领导人选举+日志复制 说了一遍)

  • ISO 七层协议(我说比较了解 TCP/IP 四层)

  • 四层也可以讲一遍(从上到下说了一遍)

  • 说一下 ARP 协议,有什么用

  • 大文件处理:日志处理。(答: Golang channel: ReadLogLineByLineChan -> CountChan -> 结果持久化)

    • 要不要考虑用别的,问我用没用过 MapReduce(可能看看我适不适合去做数据处理那块)。答:在学校的时候玩过,自己搭建过 Hadoop 集群。实际工作接触数据处理这块比较少。
  • 对微服务的理解?

  • docker 了解多少


2.2.4 亿鼎云

【亿鼎云】 —— golang开发工程师(DevOps 方向)

展开查看
  • 一轮技术面

    • MySQL 有哪些索引?

    • 唯一索引和普通索引有什么区别?插入、删除?

    • 说一下 Raft(Leader 选举 + 日志复制;实际 basic raft paper 是有问题的,但是这个时候我还没接触过)

    • 举了几个 Basic Raft 未解决的异常情况,问我如何解决。

    • 说一下 我的 ScanEngine 项目,和之前差不多(某不知名小厂面经系列 - 1

    • 一般用什么做系统间通信。

      • 我们现在常用的是 redis,也会用到 kafka。

      • 如果让你不使用第三方(redis、kafka 等这些),那么你会怎么做?(答:以文件的方式,直接往磁盘写数据)

  • 总监面

    • 说一下 我的 ScanEngine 项目

      • 和之前差不多(某不知名小厂面经系列 - 1

      • 问了更多细节,包括使用的 框架,以及思路。

      • 因为使用的是 Python 的 Celery 框架,因此总监还问了一句,假设我们要用那么我们还需要考虑学习成本是吗?

      • 最后,你觉得你的项目是否还有不足的地方?

    • 你网络这块了解还挺好的吧?(还可以吧)

      • 两个主机通过交换机,ping 一下;说一下整个过程。(二层)

      • 比较两个网络拓扑图A、B,可能存在 A比B多一些节点;也可能存在 A与B中相同节点,配置不相同。输出:以及多出的节点以及配置不同节点。

  • 人事主管

    • 自己有什么优缺点

    • 为什么离职

    • 其他

  • 结果:挂了。(HR回复:几个面试官综合讨论了一下,可能目前和我们的岗位需求不是非常匹配,很抱歉,这次没有机会做同事了[皱眉])


2.2.5 Innotech

【Innotech】—— Golang工程师(业务线:萌推;电商)

展开查看
  • 一轮电话面

    • 给我一条SQL 语句,问我哪个用到了索引(考点:最左匹配原则)

    • 简单讲一下你的 分布式任务调度系统

    • 给一个缓存的场景,如何处理

      • 大概就是想问:数据库和缓存双写一致性方案
        • 先更新数据库,再更新缓存
        • 先删除缓存,再更新数据库
        • 先更新数据库,再删除缓存
  • 现场技术面

    • 自我介绍

    • 说一下 raft。(Leader 选举 + 日志复制)

    • raft 思想有融入到自己的系统中吗?(答:暂时没用过,但我热爱研究,其实 basic raft 是存在一些问题的嘛,我也会在开源社区做一些探讨。巴拉巴拉说了一堆。。。话题转移大法=。=)

    • 看你做了个 爬虫-搜索引擎 项目,这里面 随机IP代理 怎么实现的?

    • HTTP 协议了解多少,可以简单描述一下 包结构嘛?

    • 说一下 你知道的 HTTP Header?

    • 重定向如何实现的?

    • 讲一下 HTTPS

    • 写道算法题吧。

      • 斐波那契数列(写了两种:递归记忆化搜索、迭代。)
      • 你觉得有比O(n)更快的吗?(答:O(1)?显然 O(logN)也比它快,当时一激动就说了O(1))
      • 斐波那契数列可以O(1)实现吗?(答:假设有某个数学函数/公式的话,那就可以了吧。(回家搜了一下,还真有。。。链接:这里))
    • 设计个 视频弹幕系统,接口设计+请求流程+弹幕存储?所有过程随意发挥。

    • 其他的,想起来再补充


3. 题外话

  • 本人的回答,后续会贴到我的仓库 github/blog,感兴趣的可以追一下

  • 个人意愿是非常想去今日头条

    • 自己转 Golang 技术栈也有部分原因是因为这个(我们常说语言是次要的,重要的是工程设计思想;不过对 title 较低的人来说,语言契合度比较高,那应该最好不过了)

    • 奈何自从校招给过面试机会外,毕业至今已经投过两次,结果简历均未通过。

    • 本打算年底去头条再试一次,谁知 头条HR 在 BOSS 上,主动找我;我一个没忍住就又投了。结果呢,如上文中描述,简历又挂了;

    • 哎,近期内可能暂时就别想进了;期待好心人,能给我捞起来=.=。。。

    • PS:可能有大佬会说,头条有啥好的,又是大小周/压力也不小什么的。这玩意看个人吧;有取舍,说也说不清楚,各位大佬们也没必要和小弟纠结这个问题,哈哈。

  • 自己对比打听了一下几个 offer,接了:Innotech

    • 目前是打算接了 Innotech 的 offer,电商是我比较感兴趣的方向;刚好薪资待遇也符合目前期望

    • 我也从侧面打听过,萌推 现在是他们内部评分算是比较高的

    • 砸钱也确实比较狠,不管是招人给推荐奖金,还是薪资待遇,都算是可劲砸的那种(据某被内推的3年左右经验,资深title 的老哥说:内推只要去面试就 1000 内推奖金;候选人入职再给:8000)

    • 和HR讨论了一下,一年算下来总包,应该拿个 16 薪左右,即使被忽悠我也开心=。=,毕竟比现在涨幅还是有一些的(现在15k以下 * 14)

    • 电商业务,对技术及业务理解度相对会有挑战,同时也是快速提升个人能力的机会

4. 给同为应聘者朋友们一些建议

给同为应聘者朋友们一些建议,也是自身感受

  • 校招

    • 若盆友你仍未毕业且符合校招条件,那么请立即往各个大厂实习岗投递简历;否则在毕业后的三年内,考虑进入大厂将会变得相当困难,除非真的非常非常优秀(技术岗)

    • 基础很重要,很多校招面经都有所提到;此次主题还是社招,就不再赘述了

  • 1-3 年社招

    • 一般大多数公司(不包括头条)

      • 基本不会问太多算法基础,应付面试 LeetCode 上面刷百来道基本够用

      • 对简历上写的所有点,都应该掌握

      • 如果觉得自己其他方面不够出色,那么打牢基础好了

        • 对自己使用的开源应用或工具应当深入研究

          • 如本人简历基本只写了 redis、mysql、etcd 那么这些技术点都应该去研究一番,能有一些自己的见解那最好了
            • redis 官方文档应该通读一遍(很少)
            • mysql 官方文档 innodb 那块理应 通读一遍(不多),时间允许的话可以大致都浏览一遍
            • etcd 基于 raft 那么,理应去看一下 Raft Paper;然后可以谷歌一下大佬们对 raft 一些见解,结合起来效果更佳。
            • 看一些技术文档固然也可以学习,但是假设你同别人描述某个问题的时候,你说 redis 官方文档上描述到,版本 3.0.0 之后,某个命令新增了什么参数;而不是说我再哪篇博客中看到什么什么;相信前者会更有说服力一些。
            • 若有新的版本更新,官方文档应该是最快的了解途径
            • 使用官方文档原话与面试官沟通,既会提高表述相关技术点时的自信心,也会给面试官一种此候选人学习能力很强的直观感受
            • 在我个人看来,看官方文档的好处:就好比咱文科类同学,书看多了、古诗词读多了,出口成章 : )
        • 网络:

          • 《TCP/IP 卷一》这本书把 TCP 四层协议族,说得比较透彻;没空的话,看一下 TCP 那块就好了
          • HTTP、HTTPS 需要研究一下
            • HTTPS中:证书、对称/非对称加密、中间人攻击、嗅探什么的可以一同过一遍;本人博客也有写:HTTPS 如何做到安全
        • 操作系统:应付面试的话,看《现代操作系统》那本,把下面三章看完,基本够用

          • 进程与线程
          • IO
          • 内存管理
        • 算法基础:如前面所说,LeetCode 上刷个百来道

        • 其他基础自由发挥,尽情展现

        • 可能有人问,假如面试官不问,是不是就亏了

          • 其实基础这玩意有时候就是不会问,但是你自己应该有这个能力
          • 计算机科学这门学科所有知识体系就应该是想通的,只是有时候我们自己不愿意去想而已
          • 举个例子,mysql 在我们查找时,很可能会出现缺页中断吧?
            • 你可以在介绍索引的时候引出(介绍 MySQL Innodb 的索引,这个问题应该通常都会问的吧)
            • 那么这时候是不是就由你引导至操作系统基础了,也侧面想面试官表现出你看待问题的能力:是存在多方面考虑的
            • 一个普通的问题,这样回答是不是就更突出一些呢
          • 诸如此类会有很多例子,知识都是相通的,就看你自己了
      • 社招的话,可能相对更看重工程设计能力

        • 建议自己有一个到两个比较有深度的项目,能让面试官感兴趣,那么这轮面试大概率比较稳
        • 候选人应该重视:对之前接触过业务的理解度,以及对新业务的接受程度,从而能应付大多数业务的工程设计能力
        • 可以多看看别人的面经,看看别人设计这方面能力考查都问了什么,如果自己来做的话,会怎么做
        • 多锻炼锻炼这方面能力,倒不能说面试时一定达到炉火纯青地步,但也不至于当场卡壳,陷入尴尬局面
      • 剩下没想到的,后续若有我会补充至此;目前,请朋友们自行补充

5. 总结

  • 这一段时间,面试结果

    • 总共面了六家,拿了五家 offer
    • 并且挂了那家做 DevOps 确实也不是本人所期望的岗位(去了才和我说是做 DevOps 的。。)
    • 结果还算满意
  • 可能 offer 质量并不是说非常高,但是起码这个结果,在自己这里算是基本过了关的

  • 从投递结果来看

    • 客观原因:自己的履历确实不怎么精彩,没法打动多数大厂的面试官(自己太菜)

    • 有打听过一些其他原因

      • 一般都是找 目标公司内部人员/猎头推,自己去 boss 上投基本很难
      • 目前大厂更希望招聘的社招候选人,经验为 3-5 年最佳
    • 未来考虑在努力完善自身经历的情况下,也尝试通过:内推+猎头推 的方式寻求机会

    • 祝各位朋友能有自己的方式获得更多面试机会 : )

  • 考虑接下来这两年就在这家努力奋斗了,之后再去试一下 头条或者其他一线类大厂。就是有这么个大厂的心节=。=,咱也不用问,您可能也不想问

  • 朝这个目标去,起码不会出什么大错嘛;即使后面想法改变了,那也肯定是因为有了更优选;因此,目前奔着实现这个目标走走看了。

  • 最后,可爱的盆友们,人生不易;你我都加油啦!!!哈哈 : )