C++学习路线

目录

C++ 介绍

 语言特性

服务端开发

系统开发

客户端开发

嵌入式开发

游戏开发

音视频处理

SDK 开发

选 C++ 还是 Java?


C++ 介绍

 
语言特性


C++是一种面向对象的、通用的、静态类型的编程语言,它是C语言的一种扩展。


C++语言支持多种编程范式,包括面向对象编程、泛型编程和过程式编程等,因此具有很高的灵活性和可扩展性。

C++相对于其他高级语言(比如 Java)来说,更加层,因此具有高性能、可移植、可重用等优点,被广泛应用于系统开发、嵌入式系统、服务端开发、游戏开发图形学音视频外理 全融分析等领域。

C++标准语法的发展也是非常快的,目前最新的标准都到 C++ 20 了!而且随着它的发展,它具有了丰富的语法和库支持,大学计算机专业的同学一般也会从C++(C 语言)开始学起。

服务端开发


一般就是我们常说的后端开发了。C++语言在高性能服务器开发、大数据处理、金融领域等都有广泛应用。对于用户/并发量非常高的系统(比如微信)通常会选择更高性能的 C++框架来开发。服务端开发工程师除了要学习后端都要学习的通用知识(比如数据库、缓存),还需要更熟悉网络编程、并发编程、内存管理等技术。


系统开发

高性能的 C++无疑是系统开发的王牌语言!系统开发工程师负责设计和实现操作系统、驱动程序、嵌入式系统、网络协议栈等 系统级 软件,从事这个岗位必须熟练掌握 C++ 的语法、各种数据结构、算法、多线程编程、Linux 操作系统等技术。


客户端开发

一般是指开发用户看的到的界面。C++语言在桌面应用程序、移动应用程序和游戏开发中有着广泛应用。C++客户端开发工程师和前端开发有着相似的学习要求,都需要掌握 GUI编程、布局知识、跨平台开发技术。现在主流的开发软件是 Qt。


嵌入式开发


也是考虑到 C++ 的高性能,它被广泛应用于开发网络设备、汽车电子、智能家居、医疗设备等产品。嵌入式开发工程师和系统开发工程师的学习路径有相似之处,都需要学好 C++系统级编程以及操作系统知识。此外,嵌入式开发还需要了解硬件、嵌入式开发平台和相关工具。

游戏开发


C++语言是游戏开发的主语言之一(另一个是 C#)比如当下很火的虚幻引擎的主语言就是 C++!对于游戏开发工程师,最重要的是热爱游戏!然后游戏开发也分界面和后台开发,前者需要熟悉游戏引擎、图形学、物理引擎等技术,后者和服务端开发的要求差不多,都要学好网络编程、并发编程。


音视频处理


还是考虑到 C++的高性能,它在音视频编解码、视频渲染等领域有着非常广泛的应用!音视频处理工程师除了 C++基础知识外,还需要熟悉音视频格式、编解码技术、图形学等相关技术。
图像处理
和音视频处理类似,都属于 C++计算类工作。图像处理工程师需要熟悉图像处理算法、计算机视觉等,掌握各种 C++的图像处理库和相关算法。图像处理和视频处理这方面的工作细分内容可能比较多,而且这类工作对数学会有一定要求,有些公司可能把它们定义为“算法工程师”。


SDK 开发


C++也适用于开发各种 SDK(软件开发工具包)。SDK开发工程师需要熟悉 C++的语言特性、SDK/API的设计和接口开发、掌握软件开发原则和设计式,要能够设计出易用、高性能、可靠的 SDK 接口提供给其他开发者使用。国内这方面的岗位没那么多,很多时候合并到后端(服务端)开发了。



从上面这些岗位,我们会发现,虽然都是学 C++,但不同方向的工程师需要侧重掌握的技能和专业知识也是有区别的。但是如果你还没确定选什么具体的方向,不妨先掌握它们都要求的通用技能,即能够熟练使用 C++ 语法来编程。


选 C++ 还是 Java?


首先,明确一点,C++和 Java 都是非常优秀的主流编程语言,编程语言和技术没有绝对的优劣之分,只不过在不同的场景下,有更优的选择。而且,像很多大神说的一样,语言只是工具,编程思想才是核心。不过,选择好的工具也是至关重要的,“好的抓手才能带来更大的赋能”。
如果你对操作系统底层、嵌入式、图像处理、音视频处理、游戏开发等方向感兴趣,建议选择 C++;而如果你更喜欢开发应用系统、思考和实现业务逻辑,就选择 Java。
不过对于身在校园、且时间充裕的同学来说,我更建议“我全都要”。可以先学 C 语言或 C++ 打基础(这也是大部分计算机专业学生在高校内学到的第一门编程语言),因为它相对底层,能帮助你接触到更多计算机的概念,比如操作系统资源管理、网络通讯等,从而为学习其他的编程语言做铺垫。然后再学习 Java 来做项目、找工作。
此外,因为 Java 和 C++ 都可以作为后端开发语言所以无论把哪门语言作为主语言,都要重点学好后台开发通用知识,比如数据库、缓存、消息队列、Socket 通讯、Linux、Git、计算机基础知识等。但选择 C++的同学要对操作系统、网络和 Linux 更熟悉一些

  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值