✨职位信息概览
华为云计算招3个月软件开发实习生(27届实习)岗位,300-400元/天,工作地址:东莞华为溪流背坡村G区,面向本科及以上学历在读毕业生
📋岗位职责
1、负责产品/平台的软件需求分析、方案设计、代码开发、静态检查、单元测试、本地构建、测试环境搭建、集成测试、问题界定定位、资料开发等工作; 2、负责相关组件/模块的看护及重构,持续优化提升代码质量(可维护性、可扩展性、可测试性等); 3、负责后端故障诊断和项目支持技术活动,包括问题解决、产品维护、项目支撑等; 4、负责智能化演进,探索AI应用、AI智能体等关键技术,持续提升产品竞争力。
✅任职要求
1、计算机科学与技术、电子科学与技术、信息与通信工程、数学、人工智能等相关专业; 2、具备基本的编程能力,熟悉包括但不限于C/C++/Rust/Java/Python/JS/HTML5等编程语言中的一种或数种,有良好的编程习惯; 3、具备独立工作和解决问题的能力,热衷新技术,勤于实践,善于总结和分享,乐于沟通和协作; 4、掌握常用的数据结构和算法。
加分项:
熟悉TCP/IP等通信协议原理,有分布式、云化、容器化、HarmonyOS等软件开发经验; 在校期间积极参加软件编程大赛、开源社区活动,并获得奖项和荣誉; 熟悉使用AI工具,有AI辅助软件开发实践经验。
📸招聘详情

💡应聘技术问题
问题:"TCP三次握手的过程是怎样的?为什么需要三次握手,两次行不行?"
参考答案:三次握手:客户端发SYN包(seq=x)→ 服务端回SYN+ACK(seq=y, ack=x+1)→ 客户端再发ACK(ack=y+1),双方进入ESTABLISHED状态,连接建立。
如果只握两次,网络上有一个延迟到达的旧SYN包,服务端收到后直接建立连接、分配资源,但客户端根本没发请求——服务端的资源就白费了。三次握手给了客户端一次确认的机会:收到服务端的SYN+ACK后,客户端如果不想建立连接,直接不发最后的ACK就行。另外,三次握手也让双方各自验证了一件事——自己的发送能力和对方的接收能力都没问题。
问题:"在分布式系统中,CAP理论是什么?实际云服务设计中如何做取舍?"
参考答案:CAP理论是Eric Brewer提出的,核心结论很简单:一个分布式系统没法同时满足三个特性——一致性(C,所有节点同一时刻返回相同数据)、可用性(A,每个请求都能拿到非错误响应)、分区容错性(P,部分节点间网络断了系统还能跑)。
网络分区在分布式环境里躲不掉,所以P必须选。真正的取舍在C和A之间。往C靠的系统(Zookeeper、etcd)在出现分区时宁可拒绝请求也不返回脏数据,配置中心、分布式锁这些场景就该这么干。往A靠的系统(Cassandra、DynamoDB)分区时各节点照常服务,短暂不一致就短暂不一致,后面靠向量时钟、读修复慢慢对齐,发动态、刷商品列表这类场景完全够用。
落到实际设计上就是四个字:按场景选。账户余额得强一致,用户昵称、日志收集最终一致就行。同一个系统里不同模块走不同的策略也很常见,没必要一刀切。
问题:"什么是智能指针?C++中shared_ptr的引用计数机制是如何实现的?"
参考答案:智能指针是C++中管理动态内存的RAII包装类,能自动释放所指向的对象,避免内存泄漏。三种主要的智能指针:unique_ptr独占所有权,不能拷贝只能移动;shared_ptr共享所有权,通过引用计数管理生命周期;weak_ptr不增加引用计数,用来打破循环引用。
shared_ptr的引用计数实现:底层维护两个指针,一个指向实际对象,一个指向控制块。控制块里存了强引用计数和弱引用计数。每拷贝一个shared_ptr,强引用计数+1;每析构一个shared_ptr,强引用计数-1,归零时释放对象。weak_ptr增加的是弱引用计数,不影响对象的生命周期。当强引用计数归零、弱引用计数也归零时,控制块本身才被释放。
多线程安全性上,引用计数的增减是原子操作,但shared_ptr本身不是线程安全的——多个线程同时读写同一个shared_ptr对象时仍需加锁。
问题:"请描述一个你参与过的软件开发项目,你是怎么从需求分析做到最终交付的?"
参考答案:这题没有标准答案,面试官想看的是你的项目思维是不是完整的。能讲清楚几个环节就行:需求阶段你怎么理解需求、拆功能点的,画没画过流程图;方案设计阶段你选了哪些技术、为什么选它、考虑过别的方案没有;开发阶段代码怎么组织的、写没写测试、边界条件怎么处理的;交付后出了什么问题、后面怎么改的。
选项目的时候尽量往岗位要求上靠。华为云这个JD强调全流程(需求→方案→开发→测试→定位),挑一个你能讲出多个环节参与感的项目。用STAR套路组织(情境、任务、行动、结果),重点是你具体做了什么、碰了什么坑、怎么爬出来的。"我用了Spring Boot + MySQL"这种罗列技术栈的方式没什么信息量,不如讲清楚你为什么要用、用完之后效果怎么样。
问题:"假设你维护的云服务模块在业务高峰期突然出现大量请求超时,用户反馈工单量激增,你会怎么排查和处理?"
参考答案:先止损,再排查,顺序不能反。
打开监控大盘,快速确认超时范围——是整个服务挂了还是某个接口、全局的还是某个地域的、从哪个时间点开始的。最近有上线或者配置变更的话,第一反应就是回滚,先退回上一个稳定版本再说。
服务稳下来之后再找根因。从外往里一层一层过:网络(域名解析、负载均衡)→ 应用(QPS、响应时间分布、错误日志)→ 中间件(数据库连接池、Redis、消息队列)→ 系统(CPU、内存、磁盘IO)。几个高频坑:慢SQL把连接池打满了、下游超时拖垮上游、GC停顿、线程池积压。
定位到原因就修,修完上线,上线后写复盘。问自己三个问题:监控为什么没提前发现、响应流程哪能更快、架构上要不要加熔断或限流。面试官考这道题,不是让你背全所有可能的故障原因——他想看的是你碰到线上事故会不会慌,排查有没有章法,有没有"先止血再找伤口"的本能。
🎯应聘面试准备
问:想应聘上述岗位,需要做哪些准备?
答:
简历优化
1.核心信息前置
- 学历背景:
本科及以上,计算机科学、电子科学、信息通信、数学、人工智能等相关专业 - 工作经验:
27届在读,有实习或项目经历 - 技术栈:
C/C++/Rust/Java/Python/JS等至少一门,数据结构与算法 - 意向岗位:
华为云计算软件开发实习生(27届)
2.匹配岗位关键词
- 技术栈:
C/C++、Rust、Java、Python、JavaScript、HTML5、数据结构与算法、TCP/IP协议栈 - 工程能力:
需求分析、方案设计、代码开发、单元测试、集成测试、问题定位与解决 - 工具与平台:
Docker/K8s容器化、Linux开发环境、Git版本控制、AI辅助编码工具(Copilot/Cursor等) - 能力标签:
独立解决问题、热衷新技术、善于总结分享、乐于沟通协作
技能梳理
编程语言。 岗位列了C/C++/Rust/Java/Python/JS,范围很大,不需要全会。结合自己的方向挑1-2门深入准备就行。华为云后端偏C/C++和Java,面后端的话这两门最稳。面前端就重点搞JS/HTML5。
数据结构与算法。 华为面试必考,JD也明确写了。复习重点:数组与链表、栈与队列、哈希表、二叉树与遍历、堆与优先队列、排序算法、图的DFS/BFS、动态规划入门。LeetCode hot 100刷透,中等难度能独立写出来就差不多了。
计算机网络。 加分项第一条就是TCP/IP,信号很明显。TCP/UDP区别、TCP拥塞控制、HTTP/HTTPS、DNS解析、OSI七层,这些得能讲清楚。
操作系统。 做云服务开发,OS的东西绕不过去。进程线程区别、虚拟内存、文件系统、IO多路复用(select/poll/epoll),Linux常用命令和shell脚本要熟。
分布式与云计算。 加分项重点提到了分布式、云化、容器化。CAP理论、一致性哈希、RPC原理、Docker基础操作,这几个花不了多少时间但性价比很高。有余力的搭个K8s小项目走一遍部署流程,面试时有得聊。
AI这块。 JD专门提了AI应用和AI智能体,加分项还有AI辅助开发。平时用Copilot或Cursor写代码的,面试直接说——说明你跟得上节奏。做过AI相关项目的,哪怕只是调API,准备好能讲清楚做了什么、效果怎么样。
面试准备
经典问题
进程和线程的区别,协程又是什么 TCP和UDP的区别,分别适用于什么场景 哈希表的实现原理,哈希冲突怎么解决 C++中虚函数是怎么实现的(面C++岗位高频) Linux常用命令:如何查看进程、内存、网络连接状态
系统设计
设计一个短链接服务:如何生成短链、如何处理高并发访问 设计一个简单的分布式ID生成器:雪花算法、号段模式 设计一个限流系统:令牌桶、漏桶、滑动窗口的对比与选择
项目经验准备
准备1-2个核心项目的详细介绍,包括: 项目背景和目标 使用的技术和方法 遇到的挑战和解决方案 项目成果和收获 有开源项目贡献经历的准备好讲清楚你提交的PR解决了什么问题 有竞赛经历(ACM、蓝桥杯等)的准备好讲你的解题思路和团队协作过程 复盘项目中踩过的坑,面试官喜欢听你怎么从失败中学习的
夜雨聆风