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

💡应聘技术问题
问题1:”请解释 C++ 中智能指针(unique_ptr、shared_ptr、weak_ptr)的区别和使用场景,如何避免循环引用?”
参考答案:
C++11 引入了三种智能指针,都定义在 <memory> 头文件中:
-
unique_ptr:独占式拥有,同一时刻只能有一个 unique_ptr 指向某个对象。不可复制,但可以移动(move)。适用于明确所有权归属的场景,比如工厂函数返回值、类成员变量管理资源。开销几乎为零。
-
shared_ptr:共享式拥有,内部维护引用计数,多个 shared_ptr 可以指向同一个对象。当引用计数降为 0 时自动销毁对象。适用于需要共享所有权的场景,但要注意性能开销(引用计数的原子操作)。
-
weak_ptr:弱引用,不增加引用计数,必须从 shared_ptr 构造。需要调用
lock()方法提升为 shared_ptr 来访问对象。主要用来解决 shared_ptr 的循环引用问题。
避免循环引用的典型场景:
// 错误:A 和 B 互相持有 shared_ptr,引用计数永远不归零classB;classA {public: std::shared_ptr b_ptr;};classB {public: std::shared_ptr a_ptr; // 应改为 weak_ptr};// 正确做法:一方使用 weak_ptrclassB {public: std::weak_ptr a_ptr; // 不增加引用计数};
问题2:”请描述 TCP 三次握手和四次挥手的过程,为什么三次握手而不是两次?TIME_WAIT 状态有什么作用?”
参考答案:
三次握手:
-
客户端发送 SYN 报文(SYN=1, seq=x),进入 SYN_SENT 状态 -
服务端收到后回复 SYN+ACK 报文(SYN=1, ACK=1, seq=y, ack=x+1),进入 SYN_RCVD 状态 -
客户端发送 ACK 报文(ACK=1, seq=x+1, ack=y+1),双方进入 ESTABLISHED 状态
为什么不是两次? 防止已失效的连接请求到达服务端。如果客户端发送的 SYN 因网络延迟迟到,客户端已经超时并发送了新的 SYN,旧的 SYN 到达服务端后,两次握手会让服务端误建连接并浪费资源。三次握手中客户端不会对旧连接的 SYN+ACK 回复 ACK,服务端就不会错误建立连接。
四次挥手:
-
主动关闭方发送 FIN,进入 FIN_WAIT_1 -
被动方回复 ACK,进入 CLOSE_WAIT,主动方进入 FIN_WAIT_2 -
被动方发送 FIN,进入 LAST_ACK -
主动方回复 ACK,进入 TIME_WAIT,等待 2MSL 后关闭
TIME_WAIT 的作用: 确保最后的 ACK 能到达被动方(如果丢失,被动方会重发 FIN);等待网络中残留的延迟报文消失,避免新连接收到旧数据。
问题3:”请比较哈希表和红黑树的优缺点,各自适合什么场景?”
参考答案:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
哈希表适合: 只需要精确查找、插入、删除,数据量大且不需要顺序遍历。比如缓存(LRU Cache)、计数器、去重。
红黑树适合: 需要范围查询、有序遍历,或对最坏情况性能有严格要求。比如数据库索引、内存管理中的区间操作、进程调度器的定时器。
实际工程中,Java 的 HashMap 在链表长度超过 8 时会转成红黑树,结合了两者的优势。
问题4:”请介绍一个你参与过的软件开发项目,你在项目中承担了什么角色?遇到了哪些技术难点,是怎么解决的?”
参考答案:
面试官问这个是想了解你实际写过什么代码、踩过什么坑。用 STAR 框架组织回答会比较清晰:
先说项目背景——比如”大三时参加了一个校园二手交易平台的后端开发”。
再说你负责什么,具体到模块——”我负责商品发布模块和搜索模块的后端 API 开发”。
然后是重点:你做了什么、遇到了什么问题、怎么解决的。比如”搜索功能一开始用 MySQL LIKE 实现,数据量到 5000 条后查询变慢。我引入了 Elasticsearch 做全文检索,用 RabbitMQ 做异步数据同步,查询响应时间从 800ms 降到 50ms”。
最后说结果,尽量用数据说话——”平台注册用户 2000+,日活 300+,搜索接口平均响应时间 50ms”。
只讲自己真正理解的部分。面试官大概率会追问细节,如果用了某个技术但你说不清原理,不如不讲。
问题5:”假设你负责的后端服务突然出现大量请求超时,你会如何系统地排查和定位问题?”
参考答案:
按从外到内、从快到慢的顺序排查:
第一步:确认现象和范围
-
查监控大盘,确认是哪个接口、什么时候开始的、影响多少用户 -
区分是个别接口还是全站问题,是偶发还是持续
第二步:检查基础设施
-
服务器 CPU、内存、磁盘 IO、网络带宽是否正常 -
数据库连接池是否耗尽、慢查询日志有没有突增 -
依赖的外部服务(缓存、消息队列)是否正常
第三步:定位应用层
-
查应用日志,关注 ERROR 和 WARN -
看 GC 日志,判断是不是频繁 Full GC 导致 STW -
用链路追踪工具(如 Jaeger、SkyWalking)找到耗时最长的环节 -
检查是否有慢 SQL、锁竞争、线程池满
第四步:常见原因快速过一遍
-
近期有没有上线新版本?先回滚试试 -
是不是有突发流量?看 QPS 曲线 -
缓存命中率是不是下降了很多?是不是有缓存穿透
第五步:临时止血 + 根本修复
-
临时:限流、降级非核心功能、扩容 -
根本:修 bug、优化慢 SQL、调整资源配置
🎯应聘面试准备
问:想应聘上述岗位,需要做哪些准备?
答:
简历优化
1.核心信息前置
- 学历背景:
本科及以上,计算机科学与技术、电子科学与技术、信息与通信工程、数学、人工智能等相关专业 - 项目经验:
有完整的软件开发项目经历,有实习经历更佳 - 技术栈:
至少熟练掌握 C/C++/Java/Python 中的一门语言 - 意向岗位:
软件开发实习生
2.匹配岗位关键词
- 技术栈:
C/C++、Java、Python、数据结构与算法、TCP/IP - 工程能力:
需求分析、方案设计、单元测试、集成测试、代码重构 - 工具与平台:
Git、Linux、Docker、HarmonyOS - 能力标签:
AI 工具使用、分布式系统、容器化、开源社区贡献
技能梳理
编程语言基础(必准备):
-
至少精通一门主力语言,重点掌握:内存管理、面向对象/泛型编程、标准库的使用 -
C/C++ 重点关注:指针和内存管理、STL 容器和算法、RAII 机制 -
Java 重点关注:JVM 基本原理、集合框架、多线程与并发
数据结构与算法(必刷):
-
基础数据结构:数组、链表、栈、队列、哈希表、树(二叉树、红黑树)、图 -
常见算法:排序、二分查找、DFS/BFS、动态规划、贪心 -
刷题建议:LeetCode Hot 100,重点做中等难度题
计算机网络(JD 明确要求):
-
TCP/IP 分层模型,TCP 三次握手/四次挥手 -
HTTP/HTTPS 基本原理 -
Socket 编程基础
操作系统(面试高频):
-
进程与线程的区别、进程间通信方式 -
死锁的四个必要条件和避免方法 -
虚拟内存、页面置换算法
加分技能(JD 优选条件):
-
分布式系统基本概念:CAP 理论、一致性协议 -
容器化技术:Docker 基本操作、Dockerfile 编写 -
HarmonyOS 开发:了解 ArkTS/ArkUI 框架 -
AI 工具使用:会用 Copilot、ChatGPT 辅助编码
面试准备
经典问题
-
自我介绍(控制在 2 分钟内,突出技术栈和项目经历) -
你最熟悉的一门编程语言有什么特点和不足? -
说一个你遇到过的技术难题,你是怎么解决的? -
讲一个你和别人协作解决技术问题的经历
系统设计
-
设计一个短链接服务 -
设计一个简单的消息队列 -
如何设计一个高可用的分布式缓存 -
如何实现一个限流器(Rate Limiter)
项目经验准备
-
准备1-2个核心项目的详细介绍,包括: -
项目背景和目标 -
使用的技术和方法 -
遇到的挑战和解决方案 -
项目成果和收获 -
准备开源项目贡献经历(如有) -
准备参加编程大赛的经历和获奖情况(如有)
夜雨聆风