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

💡应聘技术问题
问题:"请解释TCP三次握手和四次挥手的过程,以及为什么需要这样设计?"
参考答案:
三次握手建立连接:客户端发SYN,服务端回SYN+ACK,客户端再发ACK确认。这三次交互是为了让双方都确认对方的收发能力没问题,顺便同步初始序列号。为什么不是两次?因为服务端没法确认客户端收到了自己的SYN。为什么不是四次?因为中间两步可以合并。
四次挥手断开连接:主动方发FIN,被动方回ACK,被动方再发FIN,主动方回ACK。四次而不是三次的原因是:被动方收到FIN时可能还有数据没发完,ACK和FIN没法合并,得先确认收到关闭请求,等自己的数据发完了再发FIN。
问题:"讲一下你熟悉的一种排序算法的时间复杂度和适用场景?"
参考答案:
以快速排序为例:平均O(n log n),最坏O(n²)(数组已有序且每次选首元素做pivot),空间O(log n)(递归栈深度)。快排在实际工程中通常比归并排序快,原因是缓存命中率高、常数因子小。C标准库的qsort和Java的Arrays.sort基本类型排序都基于快排。
快排不稳定,但多数场景无所谓。如果需要保持相等元素的原始顺序,就用归并排序(同样O(n log n),稳定,但要额外O(n)空间)。
问题:"什么是容器化技术?Docker容器和虚拟机有什么区别?"
参考答案:
容器化是一种轻量级的虚拟化方式,把应用和它的依赖打包到一个隔离环境中运行。Docker是最常用的容器运行时。
两者的区别在隔离层级:虚拟机通过Hypervisor虚拟出完整的操作系统,每个VM有独立内核,资源开销大,启动要几分钟;容器靠Linux的namespace和cgroup做进程级隔离,共享宿主机内核,启动只要几秒,一台机器上能跑的容器数量远超虚拟机。
在华为这种规模的后端服务里,容器化基本是微服务部署的前提,配合Kubernetes做编排,扩缩容和滚动更新都方便很多。
问题:"描述一个你做过的项目,遇到最大的技术难题是什么,怎么解决的?"
参考答案:
面试官主要想看三点:你做的事是不是真的(别编)、碰到卡壳时你怎么想的、你解决问题的路子清不清楚。
建议用STAR结构回答:先说项目背景和你负责的部分,再讲碰到的具体问题(性能瓶颈、并发bug、架构冲突都行),然后说你当时怎么排查的(看了什么日志、跑了什么测试、查了什么资料),最后说你怎么解决的、效果如何。
别只罗列"我做了什么",多说"当时为什么选这个方案"和"踩了什么坑"。实习项目、课程大作业都可以,思考过程讲清楚就有说服力。
问题:"如果线上服务突然响应变慢,你会怎么排查?"
参考答案:
先确定范围:是单个接口慢还是整体慢?是刚出现还是持续了一段时间?有没有近期上线变更?
如果是整体慢,先看基础设施层面——机器资源使用率(CPU、内存、磁盘IO、网络),数据库连接池是否打满,有没有慢查询。如果是单个接口慢,看该接口的日志和监控,定位是哪一步耗时——是数据库查询、外部调用、还是计算逻辑本身。
常见的坑:数据库缺索引导致全表扫描、内存泄漏导致频繁GC、线程池打满请求排队、外部依赖没设超时一直挂着。定位到原因后,紧急情况先止血(限流、降级、回滚),再从根上修。
🎯应聘面试准备
问:想应聘上述岗位,需要做哪些准备?
答:
简历优化
1.核心信息前置
- 学历背景: 本科及以上,计算机科学与技术、电子科学与技术、信息与通信工程、数学、人工智能等相关专业
- 工作经验:
- 技术栈: C/C++/Java/Python中至少熟练一种,了解数据结构与算法
- 意向岗位:
2.匹配岗位关键词
- 技术栈: C/C++、Java、Python、Rust、JavaScript、HTML5
- 工程能力:
- 工具与平台: 分布式系统、云化平台、容器化(Docker/K8s)、HarmonyOS
- 能力标签:
技能梳理
编程语言(至少拿得出1-2门):
- C/C++:指针和内存管理、STL容器与算法、多线程
- Java:集合框架、并发编程(线程池、锁)、JVM基础
计算机基础:
- 数据结构:数组、链表、栈、队列、哈希表、树(二叉树、红黑树、B树)、图
- 计算机网络:TCP/IP协议栈、HTTP/HTTPS、DNS
- 操作系统:进程与线程、内存管理、文件系统、IO模型
工程实践:
面试准备
经典问题
系统设计
项目经验准备
- 准备1-2个项目的完整叙述:背景是什么、用了什么技术、踩了什么坑、最后效果怎么样
- AI辅助开发的实践经验,比如用Copilot或ChatGPT辅助写代码的具体例子