【小米】Go岗-开发一面凉经

总的来说小米算是凉了,go的代码(尤其是channle和协程的部分)没写过多少是硬伤。
开始先自我介绍,我说我是来自西安邮电大学,叫xxx,今年读研三。平常在学校喜欢研究系统方面的知识,平常主要用c,和go。主要研究方向是Linux内核(不要脸的说了内核)。然后开始就问项目,我就讲了我简历上的两个项目(只是很简单的讲,比之前讲的要简单多了)。
然后就开始问golang的基础知识,问切片和数组的区别,这个答得还行,然后又开始问map的底层实现,我就开始懵了,在脑海里搜索了半天,也想不起来什么,就说对不起这块我不是很了解。然后他就问我,golang你了解那块,我说协程和channel比较了解,然后他让我讲讲,我就把早上写到便利贴上的东西,给他讲了讲,感觉讲的时候也比较然,因为我也没有整理过这块的知识。然后就不让我讲了,让我讲讲向一个已经关闭了的channel写入数据会怎样,我想了半天,说应该会报错的。然后他又问怎么判断一个channel已经关闭了,我瞬间就有点慌了,还是感觉没碰到过这种问题(但是后来看了看,判断方法还是比较简单的)。我说对不起,这块不是很清楚。然后他又问了defer的问题,问defer是怎么执行的,我就讲了讲。又问return和defer哪个最后执行,开始说的是return最后执行,想了想感觉不对,又说defer最后执行,面试官问我确定吗,我说确定。又问GC了解吗,我说只是很简单的了解。我说golang的GC是并行的GC,它还是基于标记清除算法的,然后使用三色标记和写屏障去实现并行GC,就是说GC协程和业务逻辑可以并发进行。结果这个答案面试官可能并不是很满意,就问我具体呢,我又慌了,具体怎么讲啊,想了想把昨天看的三色标记讲了下,就说开始时所有的对象都是白色的,然后这些对象引用的对象又被标记为灰色,然后。。。然后。。。,在脑子里想了半天,也没想起来,就又灰溜溜的说对不起这块不是很了解。面试官就说好吧。
接下来可能看到我简历上说熟悉TCP/IP,就又问我,你TCP/IP熟悉到什么程度啊,我说就熟悉连接的建立和释放过程。就开始讲老一套,什么假设从客户端开始,客户端发送一个请求建立连接的包,他这个包的syn标志位置为1,再设置一个初始的序列号,然后把这个包发送给服务端,服务端收到这个包之后,就再发送一个确认的包,结果面试官说好了,那你讲下什么时候关闭TCP连接,我说就调close函数就关闭了,面试官又问除了这种手动关闭的方式呢,我想了想,又懵了,说对不起,这个不太了解,全程懵逼有没有。他又问那你了解TCPxx算法吗(对不起这块忘记了问的是什么)。我说就用于流量控制的滑动窗口协议。结果。。。面试官就让我讲滑动窗口,我。。。我说对不起我不太清楚这块。
差不多20多分钟了,他又开始问我未来想做哪一方面,我说未来想做系统方面的开发,把面试官说然了,他说我不太清楚你的意思,我就是就是系统软件方面的。那golang可能不是很合适,你说的Linux这块还是C比较多,要不我把你推到系统开发的部门。然后面试官问我有什么想问的,我就问他你们用golang主要是web开发吗,他说不是的,还有中间件就rabbitmq,redis之类的。我又问那容器你们做吗,他说docker是吧,我们的运维平台做这个,要不我把你推过去。我说不用了,我不会k8s。然后我又问我今天面试的怎么样,他说我没什么感觉,你golang基础还需要继续加强,55开吧(我心说卡卡西吗,还55开)。
以上,差不多算是比较糟糕的一次面试,不清晰的就业方向加薄弱的golang基础让我成功的凉了,算是凭实力凉的。

发表评论

后才能评论