作者:黑马程序员
链接:https://www.zhihu.com/question/597037176/answer/2999707086
先和我一起看看,C/C++学完了可以做什么:
- 软件工程师:负责设计、开发、测试和维护各类型的软件应用程序;
- 游戏开发:C++在游戏开发领域有广泛的应用,作为游戏开发工程师,可以参与游戏引擎、游戏逻辑和游戏性能优化等方面的开发工作。
- 嵌入式开发:C++在嵌入式系统领域也有很多应用,作为嵌入式系统工程师,可以负责开发运行在各种嵌入式设备商的软件和固件。
- 系统软件开发工程师:你可以在操作系统、数据库、网络协议等系统软件领域找到工作,负责开发、优化和维护底层系统软件。
- 计算机图形学工程师:C++在计算机图形学领域有广泛应用,作为计算机图形学工程师,我们可以参与开发和优化图形渲染,计算机视觉和虚拟现实等相关技术。
- 算法工程师:C++在算法实现方面有优势,作为算法工程师,我们可以负责研究和实现各种先进的算法,以解决实际问题。
- 机器学习工程:虽然Python是机器学习领域的主导语言,但C++在某些性能关键领域(比如深度学习框架底层)也有应用。作为机器学习工程师,可以分参与开发和优化机器学习框架和库。
这!只是C++相关工作的一部分,实际上C++在许多其他领域也有应用,而且从上往下再细分的话又有很多岗位,以后台(服务端)举例:
- 有做数据处理和分析的
- 有做基础协议和通信的
- 有做服务端底层应用优化的
- 甚至还有做后台系统驱动和内核的
- ……
所以,上面说C++学完了真的能当饭吃,而且基本上是越老越吃香!
一、要学什么东西?
— 语言本身的学习
C语言:
除了最基础的语法:变量、条件、循环、字符串、数组、函数、结构体等之外;
C语言最重要的就是:指针、内存管理,以后在企业吃饭就靠它们两个了!
C++:
C++是C语言的延伸,可以理解为在C语言里加入了面向对象的特性。因为只有面向对象特性的加持,代码才能更好地复用、扩展和工程化,这是大型项目的必备要素。
除了C语言所有的底子之外,还需要学习C++的面向对象(封装、继承与多态)特性、泛型、模板、STL等等。
— 编程基础「四大件」
基础四大件包括:数据结构和算法、计算机网络、操作系统、设计模式。
这跟学什么语言,后续从事什么编程方向无关,只要是做编程开发,这四个基础就无法避开。
- 数据结构和算法,几种基础数据结构要烂熟于心,比如:字符串、链表、二叉树、堆、栈、队列、哈希等;基本的几大算法也要了如指掌,比如查找、排序、