如果你是一个Golang面试官,你会问哪些问题?

本文分享了一位Golang面试官在面试过程中可能会问到的问题,包括Golang的基础概念、并发特性、数据库操作、分布式系统以及面试的整体考察标准。面试官强调,虽然会询问Golang相关问题,但更注重候选人的技术热情、系统性学习和实际经验。此外,还提及了MySQL、Redis、MQ、算法和分布式系统等方面的知识。
摘要由CSDN通过智能技术生成

小编这两天本来想在公司发个面经,于是偶然搜到了这篇 如果你是一个Golang面试官,你会问哪些问题?[1],文章下面也有很多大佬的优秀回答,感兴趣的同学可以查看原文了解更多内容。下面小土主要收集了两个回答。另外小编在语雀也搜集了不少Gopher面经,

没有假如,我就是一个Golang面试官,来自百度。同时我到百度之前也面过头条,腾讯,小米,高德的golang,基本都过了。我回答应该还是比较有说服力。

事实上,golang的问题只占我面试问题的20%左右。问东西的顺序不一定是下面的顺序,有的时候我会根据简历选择二分法难度来问,直接问一个难度适中的问题。说上来就继续二分法筛。下面是我问过的问题。

1,make和new差别,引用类型的意义

2,逃逸分析

3,channel的实现

4,gmp与gc,重点问题(网络io等待队列,读写屏障)

5,map的实现,重点问题(sync.map的实现,map实现随机的方法)

期间会根据实际情况,从这几个题发散问一些细节,但是难度不会太难了。因为我面的是p6级别的,问源码有点欺负人了。另外会问一个开发性问题,你写go遇到的坑点。从这里也可以发散问一些,但是不会问太多了。这几个问题在10分钟之内肯定要问完的。

这些问题不一定都要答上来,我是综合考察的,我写这几个题目也不是让大家去背这几个题的,只是想告诉大家面试的难度一般如何,顺便说几个经典题目。另外我主要关注的问题其实主要是mysql,redis,mq,算法,分布式。有人看的话,我就补充一下。

9.7 补充mysql

先声明一下,我说的面试题都是个人向的,其实大家要面哪家公司的时候,搜那家公司的面试题用处其实不大,因为面试官并没有说题库,或者统一标准的说法。如果我去了其他家公司当面试官我一样也会这么问(注意是提问方式和难度,题目我会换的)。而你碰到百度其他面试官,也很可能不会按我这么问。另外,因为我面的校招到10年的都有,所以具体问法也会灵活调整。说到校招,这次大校招我也被安排当面试官了,校招的朋友也可以关注一下,如果能答出来,那就惊喜级别

补充一下我对mysql的考察方式。

1,八股,为什么用b+树不用b树

以第一题为分界线,答出来了问下面的

2,说说对mvcc的理解

3,幻读是怎么解决的

4,redo,undo的作用和实现

5,事务的实现

答不出第一题就问,下面就是纯八股了

2,索引怎么建

3,联合索引最左前缀

4,聚簇索引与回表

如果觉得前半部分回答得不行,就会转问后半部分的简单题。和上面一样。

9.8 补充redis

redis的东西虽然不多,但是也是必问的。

1,底层数据结构实现,重点问题如:压缩列表

2,aof与rdb,重点问题如:aof重写机制

3,为什么用跳表

4,分布式锁与redlock

5,三种分布式的结构

6,大KEY

基本上说明白一半就行了,和上面一样,我问的问题和我遇见过的问题,大部分都在《Redis设计与实现》里面。因为redis的问题都不算难,如果全答上来了,我可能会问一个:在扩容rehash的时候scan扫集合,会不会扫到重复的数据。

9.9 补充mq+es+分布式

那就补一下剩下的常问问题吧,mq主要是kafka。下面基本上工作3年之内不怎么问,3年以上的说上1/3到1/2就通过。

1,kafka的零拷贝和顺序io 零拷贝最好说说细节,其实就是用户空间和内核空间mmap

2,kafka的分片,分片的读一致性(水位和活跃组?忘了叫什么了)和写一致性怎么保证

3,es的倒排索引,和分片的查询召回

4,分布式锁,redis redlock etcd

5,分布式事务 2pc 3pc tcc

6,分布式共识协议 raft和paxos

7,分布式数据库 CAP BASE的概念 etcd tidb的了解

额外的问题,只有简历写了我才会问

1,k8s的应用和架构(k8s其实我也没深入研究,随便)

2,监控prometheus,比如里面时序数据库TSDB

3,微服务架构的内容,比如服务发现和链路追踪的工具

4,校招的话问问tcp

5,其他我感兴趣的东西

6,算法题必问,一般先选一个中等偏难的,难度参见周赛第三题。要是很顺畅就加一个第四题难度(困难),做不出来就换一个第二题难度(中等偏简单)。

7,架构设计,因为我只是一面,这种问题一般留给二面问。不过我给的建议是,mysql分表,redis缓存,kafka削峰这三板斧

写在最后,其实我的标准只有一个,我的所有提问也是围绕这一标准来的,就是让我感受到你对技术的热情,对技术路线有清晰规划,并且正在进行系统性地有条理的学习持续一年以上,比如看书,事实上我也是这么要求自己的。我相信满足了这个条件,你面其他公司也很容易。

回答2:

作者:HelloKaton 链接:https://www.zhihu.com/question/67846139/answer/257359743

这篇文章翻译自一位外国友人的关于面试后端程序员的文章,我比较喜爱这篇文章。一是因为它极大的拓宽了我的视角࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值