一、客户端大概是在做什么?以及应用场景
客户端,简单来说,就是为用户提供本地服务的程序,通常和服务器配合运行。在C/S模式下,客户端负责与服务器进行交互,接收和展示数据。比如,我们在访问一个网站时,输入的域名会先进行DNS解析,找到对应的IP地址,然后与服务器通信,获取所需资源。
Web客户端就是我们熟悉的浏览器。浏览器通过各种组件,如渲染引擎、JavaScript解释器等,将网页展示给我们。而在游戏中,客户端则负责存储游戏资源,接收玩家的输入,发送给服务器处理,再把结果图形化地展示给玩家。
对于PC客户端开发,主要涉及Windows或Mac上的应用程序开发。作为开发者,首先要有扎实的编程基础,理解操作系统内存管理、进程调度等核心概念,并熟悉工具和框架,如Visual Studio、CMake等。特别是在Windows平台,MFC等框架也很常见。
近年来,Qt作为一个跨平台的C++框架,逐渐受到青睐。它不仅能开发GUI程序,还能用来做一些非GUI的工具。所以说想做C++开发但不想卷后端,对客户端方向感兴趣的也可以做这个方向。它不像Android或者IOS需要用Java和object-c,入门的门槛主要还是C++的学习。
二、技术栈是什么样的?
windows C++客户端开发技术栈(C++应用开发技术栈)
随着跨端技术(如CEF、Electron等)的发展,前端同学可以快速创建跨平台应用,C++的作用被封装得越来越深。大部分开发团队中的C++开发人员比例降低,可能达到1:10,更多的业务开发由前端承担。不过,尽管岗位减少,C++的要求却更高,薪资待遇也相应提高,C++人才仍然是团队中的核心力量。
在招聘C++客户端开发时,找到合适的人才确实不容易。有时甚至需要跨行业招聘,比如从硬件公司挖掘,毕竟互联网公司的薪资更具吸引力。
C++编程
基础学习:
- 《C++ Primer》
- 《深入探索C++对象模型》
- 《Effective C++》《More Effective C++》《Effective Modern C++》
- 《现代C++教程:高速上手C++11/14/17/20》 Modern C++教程()
进阶学习:
- STL(标准模板库) 《C++标准程序库》,《Effective STL中文版》,《STL源代码分析》
- 模板编程 《C++Templates中文版》
- Boost库 深入掌握Boost库的应用。
高阶学习:
- 《Rumination on C++》(中文名:C++沉思录)
- 《Exceptional C++》《More Exceptional C++》
Windows编程
入门:
- 《Windows程序设计》 这是学习Windows编程的经典书籍,主要讲Windows用户态的API,比如user32.dll和gdi32.dll。
- 建议项目: 自己写一个Windows程序,如打字测速程序。创建一个消息循环,窗口,光标,用GDI输出图像和文字。时间限定:一个月到一个月半。
C++风格的Windows开发:
- MFC 《深入浅出MFC》,《Programming MFC》 MFC是经典的Windows界面开发框架。
- WTL Windows Template Library,相较MFC更轻量。
- COM与ATL 《COM技术内幕》以及潘爱民的《COM原理与应用》是学习COM的好书。ATL则是微软的另一种库,专注于组件化开发。
深入:
- 《Windows核心编程》 这本书涵盖了Windows内核层面的知识,如进程、内核对象、线程、DLL和SEH等。很多面试问题也常常来源于此。
界面框架
Qt: Qt是目前非常流行的跨平台开发框架。它不仅可以开发GUI程序,还支持一些非GUI程序的开发,适用于桌面软件开发。精通Qt可以为你打下坚实的客户端开发基础。
DirectUI: DirectUI是微软的一种UI框架,较为复杂,但在高性能要求的应用中表现不凡。
三、有哪些公司在招?
| 企业名称 | 职位类型 | 核心要求 | 招聘信息来源(可前往招聘官网查看详情) |
|---|---|---|---|
| 腾讯游戏 | C++客户端开发工程师、游戏客户端开发、图形/渲染开发 | 熟练掌握C++,有游戏客户端开发经验;熟悉图形引擎(如Unreal Engine、Unity);具备性能优化经验。 | 腾讯招聘 - 游戏客户端开发工程师() |
| 网易游戏 | C++客户端开发工程师、游戏客户端开发、图形/渲染开发 | 掌握C++,熟悉图形学,熟练使用OpenGL、DirectX等;熟悉网络通信协议、游戏开发流程。 | 网易游戏招聘 - C++客户端开发工程师]() |
| 米哈游 | 游戏客户端开发、C++开发工程师 | 熟练掌握C++,精通游戏引擎开发;有图形渲染、AI、物理引擎经验者优先。 | 米哈游招聘 - 游戏客户端开发]() |
| 字节跳动(朝夕光年) | C++客户端开发工程师、游戏客户端开发 | 熟悉C++,扎实的算法和数据结构基础;有C++客户端开发经验,能够进行性能优化;熟悉多平台开发。 | 字节跳动招聘 - C++客户端开发() |
| B站互动事业部 | C++客户端开发工程师、跨平台客户端开发 | 精通C++,了解UI开发框架如Qt,熟悉多线程、网络编程;具有跨平台开发经验者优先。 | B站招聘 - C++客户端开发() |
| 猎云网 | C++客户端开发工程师 | 精通C++,有3年以上客户端开发经验;熟悉游戏开发、图形渲染、性能优化;有跨平台开发经验优先。 | 猎云网招聘 - C++客户端开发]() |
| 百度(百度希壤、VR/AR) | C++客户端开发工程师、虚拟现实开发 | 熟悉C++,有VR/AR开发经验;精通OpenGL、Vulkan等图形技术;了解多线程、网络编程。 | 百度招聘 - VR/AR开发]() |
| 完美世界 | 游戏客户端开发工程师 | 掌握C++,了解游戏引擎开发,具有游戏客户端开发和性能优化经验。 | 完美世界招聘 - 游戏客户端开发() |
| 小米(米家) | C++客户端开发工程师、跨平台开发 | 精通C++,熟悉Qt开发;有嵌入式开发经验,能够进行跨平台开发和性能优化。 | 小米招聘 - C++客户端开发() |
| 华为 | C++客户端开发工程师、嵌入式系统开发 | 精通C++,具备嵌入式系统开发经验;熟悉Linux操作系统、图形渲染、网络编程。 | 华为招聘 - C++客户端开发() |
四、前景与发展
C++客户端开发为什么这么难招?()
这里引用一篇微信公众号文章的部分内容:原文链接(

五、学习路线
经验分享:熬夜肝了这一份C++开发学习路线!
现在不少朋友都在准备校招或跳槽,常规的技术学习只是提高了代码能力,还没有提升从 0 到 1 整体做项目和解决问题的能力!
为此我们特别推出了C++训练营,带着你从 0 到 1 做 C++ 项目(你可以从项目池中任选项目),帮助你提升做项目的能力,提升从0到1的能力,熟悉做项目的完整流程,比如开发环境、编译脚本、架构设计、框架搭建、代码发布、问题调试、单元测试。

除了上面的,还有需求分析、项目规划、架构设计、任务拆解、时间规划、版本管理。另外做项目的过程中必然会遇到种种问题,可以逐步提升你的调试能力,分析问题的能力,掌握更多的调试手段。
遇到棘手的问题,我们还有专门的导师1V1答疑解惑,给出具体建议。
项目池里面的项目,是导师团队花费大量时间完成的,不仅有完整的代码及清晰的注释还有详细的文档和视频,并且有专门的项目导师答疑,完全不用担心自己学不会。
相信我,这些项目绝对能够让你进步巨大!下面是其中某几个项目的说明文档

对训练营感兴趣的同学,可以看这篇文章了解训练营详情(也可直接点击阅读原文)。C++训练营来了👈
训练营适用人群:
- 备战春招和秋招的应届生,科班非科班均可,
- 工作 3 年以内,想跳槽的社招同学
- 如果你有以下困扰,欢迎联系我们,我们愿意为你提供帮助和支持
- 不知道该复习哪些内容,如何开始复习。
- 对面试考察重点不清楚,复习效率低下。
- 缺乏有含金量的实战项目经验。
- 想要提升自己的实战能力,提升做项目及解决问题的能力
- 对算法题无从下手,缺乏解题思路和常见解题模板。
- 自控力不足,难以专注于系统复习。
- 希望获得大厂的内推机会。
- 独自备战校招社招感到孤单,想要找到学习伙伴。
不适合人群:
- 缺乏耐心和毅力,急于求成的人
- 对编程逻辑思维基础薄弱,且不愿努力提升的人
- 只想快速获得成果而不注重基础学习的人
评论区
登录后即可参与讨论
立即登录