2021暑期实习总结

第一次面试,精神压力贼大

个人简介

  • 普通本科,985硕,科班
  • 技能是 Go、Docker、Kubernetes
  • 之前无实习工作经验
  • 项目经验:一个信息搜集展示系统(本科毕设)
    • Go编写爬虫
    • Java编写后台服务
    • Angular编写Web管理界面
    • Taro编写微信小程序
    • Docker部署

字节

  • 岗位:基础架构后端开发实习生
  • 面试软件:牛客网
  • 面试代码编写环境:牛客网在线编辑器(面试时有代码补全以及代码纠错功能,笔试时没有)

笔试

2h,四道算法题,做出来前两道;通过率:100%/100%/90%/50%

一面

60min

  1. 自我介绍
  2. go 并发原子操作 atomic 包的使用,和用 mutex 有什么区别
  3. go mutex 如何使用,在多读的情况下应该如何使用
  4. 有一个很大的map,并发读的时候如何提高效率
  5. 进程线程区别,进程切换时有哪些操作,保存了什么上下文,为什么进程切换上下文开销高,go的协程实现原理是什么,协程是如何切换的,调度器如何处理 for{} 阻塞的情况
  6. 用过哪些 linux 指令,ps指令有哪些输出,为什么进程会有僵尸状态,为什么需要父进程调用 wait 来回收退出的子进程,top指令中输出的系统负载的含义是什么
  7. 对网络编程了解多少,应用层协议了解多少,http不同版本的区别,http头结构,http header 结构,有哪些字段,作用是什么;tcp/udp 区别,tcp/udp 的包大小有限制吗
  8. 堆排序如何实现,介绍堆插入、弹出、建堆流程;
  9. 快排是如何实现的,partition中的点如何选择,手写快速排序的代码(一时紧张没写出来,当时以为挂了)

二面

70min

  1. 自我介绍
  2. Kubernetes 简要介绍一下,各个模块
  3. Kubelet 的作用
  4. Service 的作用
  5. Kubernetes 如何处理 Pod 意外退出的
  6. 对 Service Mesh 的理解
  7. 对云原生的理解
  8. 简要介绍一下容器
  9. 为什么需要容器,Kubernetes 直接操作进程是否可以
  10. 容器的ip如何配置,容器的ip是否可以冲突
  11. Kubernetes 如何做负载均衡的
  12. 反向代理与正向代理
  13. 四层负载与七层负载的区别
  14. 数据库相关的了解什么,磕磕巴巴地背了一点 MVCC,然后面试官问我这些知识都是来自(八)课(股)本(文)的吧,然后就没细问
  15. 对象存储有了解吗(我回答不了解,然后就没细问了)
  16. 算法:LRU,可以使用 go 标准库中的双向链表 container/list

三面

60min

  1. 自我介绍
  2. 进程与go协程的区别
  3. go中context的作用
  4. 介绍一下闭包
  5. 哈希冲突的解决方案;并发情况下如何实现无锁map;
  6. 当go打开文件时,rm将文件删除会发生什么
  7. 机器A向机器B发送数据时数据经历了几次拷贝
  8. 两个进程同时读取一片存储区域时得到的值相同吗
  9. 软链接硬链接的区别
  10. 介绍一下 CDN (当时紧张,说成DNS了。。后来面试官提醒了我一下)
  11. https与http的区别
  12. https建立连接的过程
  13. 介绍一下跨域,如何处理
  14. tcp中time_wait的作用
  15. linux查看目录下的问题,端口占用,查看进程的命令
  16. git都用过哪些命令
  17. Docker与虚拟机的区别
  18. Docker使用到了哪些隔离技术
  19. Kubernetes与容器的关系
  20. 介绍项目(当时太紧张了,自己准备的一个亮点忘了说,感觉面试官也不太满意)
  21. 算法:子数组最大和(想了一段时间没思路,太紧张,想放弃,然后面试官让我再想想,最后写出来了)

hr面

30min

  1. 自我介绍
  2. 为什么选择了计算机专业
  3. 在校经历
  4. 为什么读研究生
  5. 将来是想留在南京工作吗?
  6. 对今后的职业规划是什么
  7. 介绍一个自己满意的项目,碰到了什么难点,收获了哪些
  8. 有其它的offer吗,其它面试的流程走到哪一步了,最终会选择哪一家公司
  9. 来这里实习希望有哪些收获

腾讯

  • 岗位:CSIG-腾讯云-软件开发-云计算开发方向-实习生
  • 面试软件:腾讯会议
  • 面试代码编写环境:本地IDE

一面

40min

被鸽了一次,之后联系hr重新约的时间

  1. 自我介绍
  2. 算法,口头说思路:链表中点、数字开方(没想出来,提示用二分)
  3. 手写代码:go 两个协程,一个生产者一个消费者,生产者随机生成数字,消费者打印
  4. 进程、线程、协程的区别
  5. 用户态与内核态的区别,为什么要有内核态,如何进入内核态
  6. 浏览器输入URL后发生了什么
  7. 浏览器如何知道数据类型
  8. HTTPS加密的流程
  9. TCP三次握手中第三次的作用(没答出来)

二面

20min

  1. 自我介绍
  2. TCP四次挥手最后的 Time_Wait 的作用(面试官对答案不满意)
  3. Go TCP Server 如何写
  4. 介绍一下 Go 的协程
  5. 介绍一下 Docker 容器的网络通信是如何实现的

hr面

15min

  1. 面试感觉如何
  2. 自我介绍
  3. 介绍一个项目
  4. 老家哪里的
  5. 有亲戚在腾讯吗
  6. 进腾讯最大的竞争力是什么
  7. 有留任的打算吗
  8. 实习时长
  9. 身体是否健康

备战资料


备注

其实还投了阿里云和b站的暑期实习,前者在一面后就没消息了,但是招聘系统上显示的状态依旧是”面试中“,已经持续三个多星期了,后者”简历筛选“状态已经持续了一个多月了

因为我简历上写了熟悉 Docker 和 Kubernetes ,所以面试官就容器方面的问题问的比较多

最后选择去了字节跳动