面经|阿里云原生开发(实习、秋招、offer)
2022年春招投递的阿里云实习,4月份入职,实习5个月。9月中旬转正答辩失败,leader反馈说是团队暂时没有hc,后续了解到今年阿里云卡学历,自己也算是坦然接受了吧,毕竟硬要求没有过。后续由师兄帮我内推到了其他团队,免了一轮技术面,后续的技术面也相对来讲轻松一点,多是在问实习经历和聊天。
实习一面(电话面)
1. 自我介绍
2. 如何理解docker和k8s
3. 我写一个程序,读取文件内容做修改,其中的流程是怎么样的(内存管理、调度、IO)
4. 说说对http https tcp udp的认识,应用场景
5. 我要存一个key-value数据类型,查询的时候使用模糊查询,应该怎么设计数据结构?答的前缀树
6. 后续,还有没有更优化的设计方式,想想redis?答了一个listpack
7. redis中当数据量逐渐变大时,底层是怎么优化数据结构的?答了sds和rehash,跳表没来得及说
8. 问项目。非科班,只有两个通信相关的项目和一个后台开发
9. 反问。
笔试两道题:(面试完之后面试官发到我邮箱里让我写的,没有编译环境,把注释和逻辑写清楚就好了)
1. 递增子序列。用动态规划写的,nlogn的解法没写出来,只想到了贪心的想法
2. 只出现一次的数。异或,又补充了一个原地原地哈希的思路(针对特定的输入)
实习二面(电话面)
1. 自我介绍
2. 项目(论文和专利)
3. STL map底层
4. c++ oop特性
5. 详细说说继承和多态是怎么实现的?
6. c++ struct和class的区别
7. c++ 内存管理
8. c++ 多线程编程
9. c++ 怎么实现线程同步
10. 智能指针用过吗?shared_ptr原理
11. TCP三次握手
12. https握手
13. TIME_WAIT和CLOSE_WAIT
14. IO多路复用
15. CPU进程管理,进程调度算法
16. 怎么测试两个服务器能不能通信
17. mysql隔离级别
18. mysql索引优化
19. 组合索引有什么好处
20. 对新技术感兴趣吗?怎么学习新技术?
21. k8s架构组件
22. Dockerfile关键字有哪些?说几个重要的及其含义
23. 做过开源贡献吗
24. 对实习地点有要求吗
25. 反问
总结:总体来讲比较偏基础,因为面的部门主要用golang,所以所有c++的问题都是和golang对比来答的。
实习三面(电话面)
1. 自我介绍
2. 项目(主要是算法方面)
3. 边缘计算了解多少
4. 用的什么linux发行版
5. linux怎么查看磁盘和cpu使用情况
6. 写程序的时候怎么查看cpu使用情况
7. 搭建过k8s集群吗?哪个版本?
8. k8s架构
9. pod内容器是怎么共享网络和内存的
10. 现在我有多个pod,怎样让一个pod优先提供服务
11. etcd的raft一致性算法
12. 项目里用了mysql和redis,主要是用来做什么的
13. mysql怎么做持久化存储
14. redolog丢了怎么办?mysql数据丢失吗
15. c++ thread和goroutine的区别
16. go channel的底层实现
17. redis6新特性
18. 研究生GPA,优秀研究生干部是做什么工作的
19. 做过哪些比赛,论文
20. 现在在读哪些书
21. 平时在学校没有项目的时候会学什么
22. 反问
秋招二面(视频面)
1. 自我介绍
2. 实习经历
3. 实现一个哈希表
4. 讲一下在阿里云实习的主要工作
5. 针对实习的一些问题,不详细展开了
6. 实习的收获
7. 想从事哪方面的工作
8. 反问
秋招三面(视频面)
1. 自我介绍
2. 实习经历
3. 实习收获,对于项目管理和技术方面的成长
4. 非科班,怎么接触云计算的
5. 平时会学些什么知识
6. 写题:找N叉树最长的连续节点(子节点val=父节点val+1)
7. 你写的这个如果并发的话有问题吗?(一开始用了全局变量)
8. 进程中不同线程地址隔离
9. 不同进程之间的地址隔离怎么做到的(只简单说了MMU和页表,问的比较深入不太能答了...)
10. 反问
三面完了之后一度以为自己要寄了,因为面试官问的唯一一个基础问题我也没有答好,好在boss人很好还给我讲了一下。
hr面也比较顺利,hr评价很不错。面试完大概两周多一点收到了意向