网易
- 如何解析http报文?如何判断结束?如何知道包的大小?
- http头部包含了哪些内容?
- linux系统的权限是如何分配ID,文件系统是怎么样的,操作文件需要怎样的权限.写日志时如果把文件删除会怎么样?
- 虚拟内存的实现?
- 一堆数据,如何找出最大值最小值. 如何找出前N大的值. 算法实现, 复杂度.
腾讯
事情的开始,是11.15早上,接到了腾讯HR的电话,约了11-16晚上的面试。
毕竟腾讯是我在国内最喜欢的公司, 国内几个大厂里,阿里给我的感觉像个成熟大叔,什么都懂但是很无趣。字节跳动像个蛮劲很大的年轻人,只有腾讯给我的感觉是年轻自由且开放的。虽然还没有打算跳槽,但是我没法拒绝腾讯的第一次邀请.
接到面试后,整个人的状态就变了。变得紧张,兴奋,和担忧。后果是引发了情绪性胃炎,直到我码字的这一刻,胃仍然在隐隐作痛。患得患失是不行的.
说说跟面试相关的吧。
接到面试邀请后,之后收到HR发来的短信邀请码,在微信公众号腾讯招聘中需要用到这个邀请码确认接受面试。
面试方式是通过腾讯会议,记得升级你的腾讯会议,因为期间要用到一些功能可能在新版本才有.(比如打开外部插件IDE)
面试重点内容。
- 自我介绍
- 找你最熟悉的项目,讲一遍整体的架构,以及各种细节问题。
- redis的数据结构
- redis的集群用过吗,故障时的数据丢失怎么办,主节点故障怎么办。
- 为什么要用celery
- 为什么要用消息队列
- websocket相比http的特点,为什么要用websocket
- websocket是如何建立连接的
- golang的gc
- golang的channel,channel的操作和注意事项
- channel一定要关闭吗?
- 编程题 1个channel, 两个协程,一个读,一个写,打印1,5,4,3,2.
自我感觉
以高要求来说,如果满分100,我应该最多70,大致60分左右吧。主要有两个地方回答的有些问题,
1是redis的哨兵模式在主节点挂掉之后的新主节点选举没能确认是用到了raft算法。(只是提到了有可能是这个)
2是编程题我已经不知道怎么看待自己了. 这里详细说下我犯的错吧,加粗警示
一开始是腾讯会议版本不对,没法用IDR,面试官让我用聊天框输。我在聊天框里输入的东西简直惨不忍睹
chan的声明把关键字chan写成channel。 函数传参对chan使用了一个取指针符号,以及func(c chan int(5))这种我也看不懂的传参。。
特别是在争取到面试官同意使用本地IDE的时候,依然没有办法很好的去编写。最后只是口述了一下
主观当然可以为自己解释是因为最近都在写python相关的内容。一时没反应过来,但是客观评分会告诉你,you are fired。
面试完后,写了个能运行的解,就这样吧。下次继续努力。共勉
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package main
import "sync"
var ch = make(chan int, 5)
var wg sync.WaitGroup
func writec(c chan int) {
for _, x := range []int{1, 3, 5, 4, 2} {
c <- x
}
wg.Done()
}
func readc(c chan int) {
var i int
Loop:
for {
select {
case i = <-c:
print(i)
if i == 2{
break Loop
}
}
}
wg.Done()
}
func main() {
wg.Add(2)
go writec(ch)
go readc(ch)
wg.Wait()
close(ch)
}
总结
- 不要患得患失
- 为喜欢的事情做好充足的准备
- 面试不要机械问答,多拓展.
- 手写编程要熟练
星维互动(Python)
看介绍以为是做AI+广告的,面试结尾问了后了解到是新开的项目做AI agent本地化部署的.
面试过程: 笔试+面试
笔试题
- 写一个记录函数执行时间的装饰器
- asyncio的执行顺序
- 根据条件写出一个sql的查询语句
- fastapi写一个路由方案
- 算法题,从一个列表中选出只出现一次的数字,并且假设其他都只出现了2次. (分别使用字典和位计算,实现O(n)和O(1))的空间复杂度
面试
自我介绍
网络协议:
- TCP和UDP的区别
- 应用层有哪些协议
- HTTPS和HTTP的区别, TLS的具体实现
- HTTP请求头有哪些
Python语言:
- Python语言特性,适合干什么
- 迭代器和生成器
- asyncio的实现. 事件循环的作用
- 协程和线程的区别, 协程何时交出控制权,何时重新执行 (两个队列,Ready和Wating)
- gevent的异步实现 (Monkey patch)
其他:
- 说说你的优点和缺点
- 有没有独立负责过一个项目的从0到1
- 对加班怎么看(目前公司加班比较严重)
总结
面试官似乎没准备题目,想我多讲讲,我一下也没反应过来,我预计的是他问我答,没想到这次更多的需要主动介绍.属于聊到什么问什么.这块准备的其实也不是很充足. 需要再补充一下.