深信服后端一二面
一面
3.30 35min
很正常的一次面试 全程无闲聊
1.自我介绍
2.问点Go问题,Go是面向对象的语言,说说三大特性 (这里展开说了一下我认为Go并不是一门面向对象的语言,更像类似接口的语言,然后展开讲了一下duck typing 还想往深入讲的)
3.slice map channel+channel的底层
4.看一段代码 说输出 (看了两分钟 这里错了)
5. 对MySQL和Redis都比较了解是吧,说说MySQL优化的手段(SQL+索引+客户端+服务端+配置+架构方面)
6.MySQL索引底层,具体怎么查的(B+树 数据页 槽 )
7.讲讲你对Redis的理解 (内存 快 数据类型多 用处多)
8.讲讲服务注册与发现
9.你之前说的输出错了,重新看一遍这个代码
10.用过Python吗?举个例子
11.撕个排序(除冒泡排序之外) 撕了十五分钟没出来
内心OS:没做出题肯定G了,改了很多地方,其实只要别两个错的点同时改就行了,但是运气很差,最蠢的是最近写php太多了,写题的时候忘记println可以直接打印数组了,我for循环打印nums[i],估计给面试官都看傻了,这辈子忘不掉快排了,刚刚又手搓了一遍快排+堆排
12.Q&A
面试表现:基础、工程可以 代码能力需要提升
面试流程:还有一个主管面 主管面=工程+技术+HR
总结:这场面试复盘的时候发现自己的优点在于说话比较有逻辑,而且说的时候分点答了,包括channel底层、MySQL和Redis答的都挺好的,可能是这个点打动了面试官所以给了二面
二面
3.31
很快啊,啪的一下就来了,来骗、来偷袭我这个19岁的小伙子
1.自我介绍
2.平时的开发语言是什么? 用你最熟悉的语言来实现一个环形单链表,实现三个操作:初始化、删除元素、插入元素+说思路
3.如果想循环插,怎么处理 (这里其实没听懂问的是什么 答案是取余)
4.描述一段实习
5.描述干的活
6.测试相关问题 测试流程
7.对数据的完整性要求是怎么样的? (这里可以扯到很多的 比如cap 和 raft,但是扯偏了)
8.数据量大吗
9.倒排索引实现机制 (不会)
10.正排索引和倒排索引的区别(不会)
11.除了Pulsar还知道其他MQ吗 (又扯偏了一分钟 后面扯回来了)
12.为什么不用kafka呢
13.了解Pulsar怎么实现持久化的吗(简单说了一下 稍微了解) 在你们项目中有没有用到持久化
14.印象最深的坑、最大的Bug、怎么排查的(说的不是特别好 一些零零碎碎的坑)
15.遇见过生产级别的问题吗 生产级别的问题该怎么排查
16.Go语言排查问题(pprof+go build gcflags+go trace)
17.一百亿个恶意域名,想快速判断某个域名是不是恶意域名,设计一个数据结构来快速实现(提示了一下 树和哈希桶的方法 先对域名做哈希 存在哈希表里 还可以涉及到大数据的算子+布隆过滤器的思想)
补充:多哈希函数技术,是一种解决哈希冲突的方法。采用多个哈希函数,不同的哈希函数计算出来的哈希值可能会在不同的位上发生冲突,因此可以通过将这些哈希值组合成一个更长的哈希值,然后用这个更长的哈希值作为存储在内存中的位数组的索引。
18.解决哈希冲突除了开放寻址法和链表法 还有什么方法
19.你现在在哪
20.为什么要投深信服
21.长线任务是每个人都有吗
22.什么时候能来
Q&A
23.面试流程
24.我的表现怎么样 (面了一些 你基础算不错的 项目的技术也比较清楚 深度还不行)
25.岗位的技术栈
总结:答的其实挺混乱的,但是知识的广度应该是体现出来了,深度可能差了很多,es和pulsar这种工程中用到的组件的底层都没答到
#实习##面试##面经#