详细介绍下客户端这个方向

来源:程序喵大人 嵌入式 13 次阅读
摘要:一、客户端大概是在做什么?以及应用场景 客户端,简单来说,就是为用户提供本地服务的程序,通常和服务器配合运行。在C/S模式下,客户端负责与服务器进行交互,接收和展示数据。比如,我们在访问一个网站时,输入的域名会先进行DNS解析,找到对应的IP地址,然后与服务器通信,获取所需资源。 Web客户端就是我们熟悉的浏览器。浏览器通过各种组件,如渲染引擎、JavaScript解释器等,将网页展示给我们。而在

一、客户端大概是在做什么?以及应用场景

客户端,简单来说,就是为用户提供本地服务的程序,通常和服务器配合运行。在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 年以内,想跳槽的社招同学
  • 如果你有以下困扰,欢迎联系我们,我们愿意为你提供帮助和支持
  • 不知道该复习哪些内容,如何开始复习。
  • 对面试考察重点不清楚,复习效率低下。
  • 缺乏有含金量的实战项目经验。
  • 想要提升自己的实战能力,提升做项目及解决问题的能力
  • 对算法题无从下手,缺乏解题思路和常见解题模板。
  • 自控力不足,难以专注于系统复习。
  • 希望获得大厂的内推机会。
  • 独自备战校招社招感到孤单,想要找到学习伙伴。

不适合人群:

  • 缺乏耐心和毅力,急于求成的人
  • 对编程逻辑思维基础薄弱,且不愿努力提升的人
  • 只想快速获得成果而不注重基础学习的人
相关推荐
评论区

登录后即可参与讨论

立即登录