分享

C/C ++要学什么东西学完能干什么(不建议C++都在类似Visual Studio这种集成IDE里进行代码编译企业里实际项目的编译动作叫make编译的实际动作和过程都是写在makefile文里)

 山峰云绕 2023-04-13 发布于贵州

   (不建议C++都在类似Visual Studio这种集成IDE里进行代码编译企业里实际项目的编译动作叫make编译的实际动作和过程都是写在makefile文里)


https://m.toutiao.com/is/AKpPAyB/?= 




先和黑马程序员一起了解下C++学完之后,可以做什么:

  • 软件工程师:负责设计、开发、测试和维护各类型的软件应用程序;
  • 游戏开发:C++在游戏开发领域有广泛的应用,作为游戏开发工程师,可以参与游戏引擎、游戏逻辑和游戏性能优化等方面的开发工作。
  • 嵌入式开发:C++在嵌入式系统领域也有很多应用,作为嵌入式系统工程师,可以负责开发运行在各种嵌入式设备商的软件和固件。
  • 系统软件开发工程师:你可以在操作系统、数据库、网络协议等系统软件领域找到工作,负责开发、优化和维护底层系统软件。
  • 计算机图形学工程师:C++在计算机图形学领域有广泛应用,作为计算机图形学工程师,我们可以参与开发和优化图形渲染,计算机视觉和虚拟现实等相关技术。
  • 算法工程师:C++在算法实现方面有优势,作为算法工程师,我们可以负责研究和实现各种先进的算法,以解决实际问题。
  • 机器学习工程:虽然Python是机器学习领域的主导语言,但C++在某些性能关键领域(比如深度学习框架底层)也有应用。作为机器学习工程师,可以分参与开发和优化机器学习框架和库。

这!只是C++相关工作的一部分,实际上C++在许多其他领域也有应用,而且从上往下再细分的话又有很多岗位,以后台(服务端)举例:

  • 有做数据处理和分析的
  • 有做基础协议和通信的
  • 有做服务端底层应用优化的
  • 甚至还有做后台系统驱动和内核的
  • ……

所以,上面说C++学完了真的能当饭吃,而且基本上是越老越吃香!

一、要学什么东西?

— 语言本身的学习

C语言:

除了最基础的语法:变量、条件、循环、字符串、数组、函数、结构体等之外;

C语言最重要的就是:指针、内存管理,以后在企业吃饭就靠它们两个了!

C++:

C++是C语言的延伸,可以理解为在C语言里加入了面向对象的特性。因为只有面向对象特性的加持,代码才能更好地复用、扩展和工程化,这是大型项目的必备要素。

除了C语言所有的底子之外,还需要学习C++的面向对象(封装、继承与多态)特性、泛型、模板、STL等等。

— 编程基础「四大件」

基础四大件包括:数据结构和算法、计算机网络、操作系统、设计模式。

这跟学什么语言,后续从事什么编程方向无关,只要是做编程开发,这四个基础就无法避开。

  • 数据结构和算法,几种基础数据结构要烂熟于心,比如:字符串、链表、二叉树、堆、栈、队列、哈希等;基本的几大算法也要了如指掌,比如查找、排序、动态规划、分治等等。
  • 计算机网络,可以说是互联网通信的基石,无论如何一定要对TCP/IP的协议栈了如指掌,主要就是学习和掌握原理,包括:ARP协议、IP协议、ICMP协议、TCP和UDP协议、DNS协议、HTTP协议、HTTPS协议
  • 操作系统,该部分重点包括:进程和线程的相关原理(原子性、并发、锁)、内存相关原理(内存分布、内存调度)
  • 设计模式,倒不需要23种设计模式全部记住,常见的几个如:单例模式、工厂模式、代理模式、策略模式、模板方法模式建议熟练于心。

— 应用实践编程

这一部分会设计到一些工具、编程环境和具体编程实践,这部分内容学完后可以自己做出来点东西。

  • Linux操作系统的使用,很多人C/C++都是在Windows环境上进行的,但是实际企业开发基本都是在Linux,所以必须要学会,学习内容:常见的Linux操作命令,基本的shell编程。
  • 编译工具:很多人学C语言、C++都在类似Visual Studio这种集成IDE里进行代码编译,这个其实也用了编译器,只不过是微软自家的MS编译器,而且所有操作均可视化。而企业里开发很少会基于Windows系统,所以Linux平台上的编译器更为重要,最典型的当属 GCC,甚至有些公司有自己定制过的交叉编译工具,但没关系,只要 GCC熟悉,其他问题都不大。
  • 其次,大家自学C语言、C++,都借助类似VS这种IDE,点按钮即可对源文件编译。而企业里实际项目的编译动作叫 make,编译的实际动作和过程都是写在 makefile文件里,所以makefile的书写规则建议学习!
  • Linux系统编程,Windows系统编程里面有各种各样的Windows API,同理Linux系统API的使用就更加重要。
  • 多线程编程,包括:线程、资源、信号、同步、互斥、锁等等一些具体的编程方法。
  • 网络编程,此处的网络编程主要指的是具体Linux系统上的网络编程APIIO函数的编程实践。

二、入门知识点

  1. Unix/Linux:熟悉基本的Unix/Linux命令,学会在Unix/Linux环境下编译和运行C程序。
  2. C语言概述:了解C语言的历史、特点以及在编程领域的应用。
  3. 编程基础:掌握C语言的基本语法、数据类型、变量、常量、运算符、表达式、控制语句(如if、while、for等)、函数、数组、字符串等基本知识。
  4. 指针:理解指针的概念,学会使用指针进行内存访问和操作。
  5. 结构体和联合体:了解结构体和联合体的定义和用法,学会使用它们来表示复杂的数据结构。
  6. 动态内存管理:学会使用malloc、calloc、realloc和free等函数进行动态内存分配和回收。
  7. 文件I/O:了解文件的概念,学会使用fopen、fclose、fread、fwrite等函数进行文件操作。
  8. 预处理指令:了解C语言的预处理指令,如#define、#include、#ifdef等,以及它们在编程中的应用。
  9. 模块化编程:学会将代码分割成多个模块,通过头文件和源文件进行组织,提高代码的可读性和可维护性。

对于C高级编程,你可以学习以下知识点:

  • 高级数据结构:学习如何使用C语言实现链表、树、图等高级数据结构。
  • 算法:了解常用的算法,如排序、查找、动态规划等,并学会使用C语言实现这些算法。
  • 系统编程:学习如何使用C语言进行系统级编程,如进程管理、线程同步、信号处理等。
  • 网络编程:了解网络编程的基本概念,学会使用C语言进行套接字编程,实现TCP/IP和UDP通信。
  • 并发编程:学习使用C语言进行多线程编程,了解线程同步和互斥的概念,熟悉相关函数如pthread_create、pthread_join等。
  • 库函数:了解C语言的标准库函数,如数学库、时间库等,并学会在编程中使用这些库函数。
  • 优化与调试:学会使用调试工具,如gdb,进行程序调试。了解常用的代码优化技巧,提高程序的性能。
  • 设计模式:了解常用的设计模式,如单例模式、工厂模式等,并学会在C语言中应用这些设计模式。

这里只是给大家提供C语言的学习思路,尽量给自己设定好详细的学习计划,按照计划进行学习。从实际问题出发,可以尝试用C语言解决一些实际生活中的问题,这样可以提升我们的兴趣和动力。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多