乐于分享
好东西不私藏

长沙实习|华为招2027届软件开发实习生岗位|350-400元/天

长沙实习|华为招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 状态有什么作用?”

参考答案:

三次握手:

  1. 客户端发送 SYN 报文(SYN=1, seq=x),进入 SYN_SENT 状态
  2. 服务端收到后回复 SYN+ACK 报文(SYN=1, ACK=1, seq=y, ack=x+1),进入 SYN_RCVD 状态
  3. 客户端发送 ACK 报文(ACK=1, seq=x+1, ack=y+1),双方进入 ESTABLISHED 状态

为什么不是两次? 防止已失效的连接请求到达服务端。如果客户端发送的 SYN 因网络延迟迟到,客户端已经超时并发送了新的 SYN,旧的 SYN 到达服务端后,两次握手会让服务端误建连接并浪费资源。三次握手中客户端不会对旧连接的 SYN+ACK 回复 ACK,服务端就不会错误建立连接。

四次挥手:

  1. 主动关闭方发送 FIN,进入 FIN_WAIT_1
  2. 被动方回复 ACK,进入 CLOSE_WAIT,主动方进入 FIN_WAIT_2
  3. 被动方发送 FIN,进入 LAST_ACK
  4. 主动方回复 ACK,进入 TIME_WAIT,等待 2MSL 后关闭

TIME_WAIT 的作用: 确保最后的 ACK 能到达被动方(如果丢失,被动方会重发 FIN);等待网络中残留的延迟报文消失,避免新连接收到旧数据。

问题3:”请比较哈希表和红黑树的优缺点,各自适合什么场景?”

参考答案:

特性
哈希表
红黑树
查找
平均 O(1),最坏 O(n)
O(log n)
插入/删除
平均 O(1)
O(log n)
有序性
无序
有序遍历
内存
需要预分配,有负载因子开销
每个节点额外存储颜色和指针
稳定性
哈希冲突时性能下降
性能稳定可预测

哈希表适合: 只需要精确查找、插入、删除,数据量大且不需要顺序遍历。比如缓存(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个核心项目的详细介绍,包括:
    • 项目背景和目标
    • 使用的技术和方法
    • 遇到的挑战和解决方案
    • 项目成果和收获
  • 准备开源项目贡献经历(如有)
  • 准备参加编程大赛的经历和获奖情况(如有)