建设电影网站点击播放是乱页的,个人网页制作完整教程,wordpress版权信息修改,哈尔滨市延寿建设局网站作者#xff1a;黑马程序员 链接#xff1a;https://www.zhihu.com/question/597037176/answer/2999707086 先和我一起看看#xff0c;C/C学完了可以做什么#xff1a;
软件工程师#xff1a;负责设计、开发、测试和维护各类型的软件应用程序#xff1b;游戏开发#x…作者黑马程序员 链接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等等。
— 编程基础「四大件」
基础四大件包括数据结构和算法、计算机网络、操作系统、设计模式。
这跟学什么语言后续从事什么编程方向无关只要是做编程开发这四个基础就无法避开。
数据结构和算法几种基础数据结构要烂熟于心比如字符串、链表、二叉树、堆、栈、队列、哈希等基本的几大算法也要了如指掌比如查找、排序、动态规划、分治等等。计算机网络可以说是互联网通信的基石无论如何一定要对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系统上的网络编程API和 IO函数的编程实践。
二、C/C学习资源
2021年C学习路线以及知识整理汇总
【课程分享】
最适合自学的C语言基础C语言数据结构 培养架构师思维C语言提高深入浅出1小时透彻理解C语言指针最适合自学的C基础视频_深入浅出版全套资料匠心之作 C从0到1入门学编程基于STL泛化编程的演讲比赛C与分布式数据库开发C/C与数据库开发
【标准库】
C Standard Library是一系列类和函数的集合使用核心语言编写也是CISO自身标准的一部分。Standard Template Library标准模板库C POSIX library POSIX系统的C标准库规范ISO C Standards Committee C标准委员会
【框架和库】
Apache C Standard Library是一系列算法容器迭代器和其他基本组件的集合ASL Adobe源代码库提供了同行的评审和可移植的C源代码库。Boost 大量通用C库的集合。BDE 来自于彭博资讯实验室的开发环境。Cinder提供专业品质创造性编码的开源开发社区。Cxxomfort轻量级的只包含头文件的库将C 11的一些新特性移植到C03中。Dlib使用契约式编程和现代C科技设计的通用的跨平台的C库。EASTL EA-STL公共部分ffead-cpp 企业应用程序开发框架Folly由Facebook开发和使用的开源C库JUCE 包罗万象的C类库用于开发跨平台软件libPhenom用于构建高性能和高度可扩展性系统的事件框架。LibSourcey 用于实时的视频流和高性能网络应用程序的C11 evented IOLibU C语言写的多平台工具库Loki C库的设计包括常见的设计模式和习语的实现。MiLi 只含头文件的小型C库openFrameworks 开发C工具包用于创意性编码。Qt 跨平台的应用程序和用户界面框架Reason 跨平台的框架使开发者能够更容易地使用Java.Net和Python同时也满足了他们对C性能和优势的需求。ROOT 具备所有功能的一系列面向对象的框架能够非常高效地处理和分析大量的数据为欧洲原子能研究机构所用。STLport是STL具有代表性的版本STXXL用于额外的大型数据集的标准模板库。Ultimate C跨平台快速应用程序开发框架Windows Template Library用于开发Windows应用程序和UI组件的C库Yomm11 C11的开放multi-methods.
【人工智能】
btsk 游戏行为树启动器工具Evolving Objects基于模板的ANSI C演化计算库能够帮助你非常快速地编写出自己的随机优化算法。NeuC11框架编程语言集用于创建人工智能应用程序的多用途软件系统。
三、入门知识点
Unix/Linux熟悉基本的Unix/Linux命令学会在Unix/Linux环境下编译和运行C程序。C语言概述了解C语言的历史、特点以及在编程领域的应用。编程基础掌握C语言的基本语法、数据类型、变量、常量、运算符、表达式、控制语句如if、while、for等、函数、数组、字符串等基本知识。指针理解指针的概念学会使用指针进行内存访问和操作。结构体和联合体了解结构体和联合体的定义和用法学会使用它们来表示复杂的数据结构。动态内存管理学会使用malloc、calloc、realloc和free等函数进行动态内存分配和回收。文件I/O了解文件的概念学会使用fopen、fclose、fread、fwrite等函数进行文件操作。预处理指令了解C语言的预处理指令如#define、#include、#ifdef等以及它们在编程中的应用。模块化编程学会将代码分割成多个模块通过头文件和源文件进行组织提高代码的可读性和可维护性。
对于C高级编程你可以学习以下知识点
高级数据结构学习如何使用C语言实现链表、树、图等高级数据结构。算法了解常用的算法如排序、查找、动态规划等并学会使用C语言实现这些算法。系统编程学习如何使用C语言进行系统级编程如进程管理、线程同步、信号处理等。网络编程了解网络编程的基本概念学会使用C语言进行套接字编程实现TCP/IP和UDP通信。并发编程学习使用C语言进行多线程编程了解线程同步和互斥的概念熟悉相关函数如pthread_create、pthread_join等。库函数了解C语言的标准库函数如数学库、时间库等并学会在编程中使用这些库函数。优化与调试学会使用调试工具如gdb进行程序调试。了解常用的代码优化技巧提高程序的性能。设计模式了解常用的设计模式如单例模式、工厂模式等并学会在C语言中应用这些设计模式。
这里只是给大家提供C语言的学习思路尽量给自己设定好详细的学习计划按照计划进行学习。从实际问题出发可以尝试用C语言解决一些实际生活中的问题这样可以提升我们的兴趣和动力。
四、GitHub上C/C的项目
Awesome C/C (https://github.com/fffaraz/awesome-cpp) 这是一个精选的 C 库、框架和资源列表帮助您了解和学习各种 C 生态系统中的工具和技术。
C Primer (https://github.com/changkun/cppprimer-code) 这个仓库包含《C Primer》一书的示例代码适合初学者学习 C 基本概念。
C Algorithms (https://github.com/fragglet/c-algorithms) 这个仓库包含了一系列常见的 C 语言算法和数据结构实现对于学习和实现基本算法很有帮助。
cJSON (https://github.com/DaveGamble/cJSON) cJSON 是一个轻量级、易于使用的 C 语言 JSON 解析器。通过学习这个项目您可以了解如何处理 JSON 数据并将其应用于实际项目中。
SQLite (https://github.com/sqlite/sqlite) SQLite 是一个使用 C 语言编写的小型、快速、自包含的高可靠性的 SQL 数据库引擎。通过学习 SQLite您可以了解数据库系统的工作原理并提高您的 C 编程技能。
Redis (https://github.com/redis/redis) Redis 是一个使用 C 语言编写的高性能键值存储数据库。通过学习 Redis 源码您可以了解数据结构、网络编程和并发处理等高级概念。
FFmpeg (https://github.com/FFmpeg/FFmpeg) FFmpeg 是一个广泛使用的音视频处理库。通过学习这个项目您可以了解多媒体处理、编解码器、过滤器等相关知识。