24届暑期V2 阿里云 C++
阿里这边的暑期基本告一段落了,怕被定位只写了大部门,如果有想继续了解的可以私戳
总结:感觉C++的投主C++的部门比如DB或者存储等面试成功率比较高一点。如果面试官写过C++或者了解C++的话就会问语言相关的八股多一点,因为C++的八股相对来说还是比较少比较好背的。要不然就会拐到专业课和分布式上了,这样C++的面试优势很多时候就体现不出来了
如何把项目写的不那么烂大街,给各位小伙伴提供些思路:
- web后端项目:做做重要接口的压测,然后分析一下性能瓶颈,想一到两个解决方案(不一定真的要做);微服务的话可以考虑下分布式事务和分布式锁相关,或者缓存一致性相关
- webserver项目:测试整个服务器的并发量,思考下用协程能不能做部分改造(阿里开发者公众号有一个线程改协程的文章可以参考下)
- 真实项目的某个的feature开发:横评下你所开发的功能在主流产品里的实现和优劣,多看看真实项目的用户案例,可以和面试官扯扯场景;
- 单测覆盖率:现在很多大厂都在搞devops了,如果你开发的功能单测覆盖率或者增量覆盖率达到一个比较完美的程度的话,绝对也是比较亮眼的,可以挑一些关键的函数或者功能单独拎出来分析覆盖率或者正常/边缘的case如何写,简历上写出这样很能体现你的思考;
- 参考参与的项目里封装的一些基础设施:比如线程池、读写锁等并发设施,或者定时器、限流组件等服务器基础设施,这些因为不同于语言标准库而且实现不会那么考虑跨平台,所以源码上相较标准库容易理解一些,再配以相应的ut,看起来会相对舒适,基本了解原理以后可以在简历里以“熟悉XXX项目线程池...的原理和封装”起手,把面试官带入你自己的节奏,这样面试的节奏成功率已经是++了。
下面奉上最后一波阿里面经,祝各位暑期顺利!
阿里云 - 存储
● 自我介绍
● 主要开发语言是啥,之前有接触过C++吗
● 学的最好的课程
● TCP拥塞控制
● 在项目中的哪里用到进程线程,怎么考虑的
● C/C++有什么区别
● 什么是虚表
● C++的继承有没有什么缺点
● C++和Golang的指针有什么区别
● 开发一个存储引擎,你会选择C++还是Golang,为什么
● 你开发的功能的过程中,你会关注哪些方面
● 你在项目中是怎么排查bug并且解决的,可以介绍一下吗
● 反问环节
阿里云 - 存储
● 算法:手撕快排、字符串相加
● 算法思路
● 实验室和学制
● C++内存主要有哪些区,讲讲
● vector实现和扩容
● vector earse,迭代器失效
● c++编译过程
● 析构为什么要声明为virtual。经典八股
● 如何避免隐式转换。explicit
● 如何禁用拷贝和赋值。私有、delete、uncopyable基类
● 项目相关(怎么参与的,怎么定位错误,有没有想过放弃,性能测试)
阿里云 - 计算平台
● 自我介绍
● 分布式事务
● 列式存储的优势
● 计算机的基本构成
● 如何衡量计算机的性能
● CPU的性能如何衡量
● 你了解load负载吗
● 你对一个分布式文件系统的架构了解吗
● 如何减少分布式系统文件丢失概率
● 怎么保证分布式系统一致性的
● 手撕算法:LRUCache
● 反问环节
#暑期实习##阿里暑期##C++##面经#