C 语言与 C++ 学习路线、书籍、视频推荐和资料,值得收藏!

2021-05-19 11:47:05 浏览数 (2)

C 语言

有人说:“C 生万物,编程之本”,这一点都没有错!

C 语言是最接近计算机的语言,很多时间,我们都会发现,C 语言是非常有必要学习的。

刚开始就是泡书,然后就是抄代码,上机调试,模仿修改,看 n 遍,量变引起质变就会培养出编程思维!!!

  1. 数据类型、变量、内存布局、指针基础;
  2. 字符串、一维数组、二维数组;
  3. 一级指针,二级指针,三级指针,N 级指针概念,指针数组和数组指针;
  4. 结构体、文件的使用;
  5. 动态库的封装和设计;
  6. 函数指针回调函数;
  7. .....

看完这个刷题笔记与代码规范,距大厂又近了一步!值得收藏!

60个适合练手的C语言/C 项目,值得收藏!

第一本书《C 程序设计语言》,机械工业出版社,作者 Brian W. Kernighan / (美)Dennis M. Ritchie。C 语言之父写的,入门经典书籍,建议大家作为 C 语言入门的第一本书。

《C Primer Plus》 ,人民邮电出版社,作者 Stephen Prata。 可以作为 C 语言工具书,也可以作为入门,内容循序渐进,能够锻炼编程思想。

《C 和指针》 深入了解指针,看完以后对指针不再害怕。

《C 陷阱与缺陷》 正如书上所说,“本书所揭示的知识,至少能够帮助你减少 C 代码和初级 C 代码中 90% 的 Bug”,看完后可以避免 C 语言开发的一些坑。

C 语言入门视频:

  1. 《郝斌 C 语言自学教程》

https://www.bilibili.com/video/BV1os411h77o?from=search&seid=15026475169248378667

  1. 《程序设计入门——C 语言》(浙大翁恺)

https://www.bilibili.com/video/BV1ME411h75N?p=45

C

C 语言->C with class -> C ;

由 C 的演变可以看出来,C 刚开始就是带类的 C 语言,C 语言和 C 的关系到底是什么呢?

看过侯捷老师的视频或者《Effective C 》这本书就知道,现如今我们提到 C ,都应该视其为一个庞大的「语言联邦」,最起码包含如下几个重要的组成部分:

  • 面向过程编程
  • 面向对象编程
  • 泛型编程
  • 元编程
  • 函数式编程
  • STL 标准库

其中「面向过程编程」,正是 C 提供的向后兼容 C 语言的部分。

C 演化(C 98 ->C 03 -> C 11 -> C 14 -> C 20 -> ..... )

C 由 C 语言和标准库构成,随着演变,C 语言越来越复杂,标准库就尤其重要,因为使用标准库才更有生产力!

面向对象编程思想:

  1. 类的封装,构造和析构、静态成员、对象管理;
  2. 类的构造(有参构造函数、无参构造、拷贝构造、默认构造函数)和析构;
  3. 对象动态管理、友元函数、友元类、操作符重载;
  4. C 编译器对象管理模型分析;
  5. 类对象的动态管理(new/delete);
  6. 友元函数和友元类;
  7. 运算符重载(一元运算符、二元运算符、运算符重载难点、项目开发中的运算符重载);
  8. 类的继承、多继承及其二义性、虚继承;
  9. 多态(概念、意义、原理剖析、多态案例);
  10. 虚函数、纯虚函数、抽象类(面向抽象类编程思想案例);
  11. 函数模板、类模板,模板的继承;
  12. C 类型转换;
  13. C 输入输出流(标准 I/O 文件 I/O 字符流 I/O);
  14. C 异常处理(异常机制、异常类型、异常变量、异常层次结构、标准异常库);
  15. C 核心编程_打造你的核心编程技能

C/C 开发进阶这一阶段的目标才是达到 C/C 软件工程师开发行业的基本要求,这个阶段是我们走向 C/C 开发的进阶之路,更是一个让自己找份薪水比较体面的工作的筹码。

如果在此部分遇到不懂的或者没有见过的知识点和名词,可先将本文收藏,供以后细细研读。

那么这个阶段,我们又应该掌握什么呢,继续往下看:

1.C 进阶之 STL

STL = Standard Template Library,即标准模板库。这是提高开发效率的极品工具。通过学习此阶段,应掌握泛型编程技巧,理解容器类在 C 语言中的应用模式,以及熟练掌握全部 STL 类的使用方法。

2.C 进阶之设计模式

决定一个项目成败最重要的因素是项目总体的设计,通过本阶段的学习,可掌握面向对象编程中重要的一环,是编码前建模的技巧所在。单例模式;工厂模式;代理模式;迭代模式等,这些都是你要掌握的哦。

3.C 进阶之数据结构基础

  1. 这是所有编程语言中最应该学习的部分,程序组成的基础之一。
  2. 顺序存储、链式存储、循环链表;
  3. 双向链表、栈(顺序和链式)、队列(顺序和链式);
  4. 栈的应用、树基本概念及遍历、二叉树;
  5. 排序算法、并归算法、选择、插入、快速、希尔。

4.C 进阶之 UI 界面开发

  1. 掌握 QT 类库构架,图形界面开发模型;
  2. 掌握 QT 开发技巧,消息机制,图形处理;
  3. 掌握 QT 网络编程,UDP,TCP 使用方式;
  4. 掌握 QT 文件处理方式,序列化;
  5. 掌握 QT 在 windows,linux,ios,android 不同平台下的移植技术。

5.C 进阶之 Unix/Linux 网络服务器

  1. 掌握 Unix/Linux 平台开发方式;
  2. 熟练使用系统调用;
  3. 熟练 Unix/Linux 内存管理,进程,线程调度;
  4. 熟悉网络服务器开发方式,熟练编写 TCP,UCP 网络服务程序;
  5. 掌握同步/异步 IO 模型在网络编程中的使用方式。

6.C 进阶之数据库开发

掌握 SQL 语言的实用技巧。Oracle,MySQL 数据库的使用方式。

如果你能熟练掌握以上列出的技能,具备解决复杂问题和技术难点的能力,而且你能独立开发一些比较复杂的功能模块,那么很荣幸地告诉你,你已经达到中级水平,薪资过万对你来说简直是小菜一碟。

C 开发高级

读到此处的你,相信你有更高的目标。即是当下炙手可热的全栈开发工程师,既晓前端,又通后台。快速定位问题,解决问题对他们来说已是小菜一碟,就是人们常说的神秘大牛,只在公司技术攻关的时候才会才看到他们的身影。

  1. 此阶段软件开发工作所需的知识和技能相对较难,高级软件工程师编码熟练度和规范性需要达到一定要求;
  2. 具备一定的项目能力(包括调试能力、文档编写能力、测试能力等)和综合技术素质(包括对软件生命周期的理解、对设计模式的理解、必备的行业知识和经验等);.
  3. 了解主流的后台技术和前后端协作方式,能从全局角度理解项目的整个生命周期。

如果你能熟练掌握以上三个阶段的知识技能,那么你就可以满足 C 开发行业的高级需求。

《C Primer 中文版》本书面向 C 语言的初学者,是一本很友好的自学教材。作者把 C 语言的基础概念和需要注意的编程细节说得很清楚,并且例程和习题丰富,相信认真读过之后,可以完成 C 语言入门这个目标。

《高质量程序设计指南》,墙裂推荐,这本书看得比较过瘾,书里面有一些编程规范的东西,对于写程序的人来说,还是不错的,可以培养好的编码习惯,加深了一些知识的巩固。比较实用,也适合面试前看看。

《Essential C 中文版》是一本内容不多但很实用的 C 入门书籍,强调快速上手与理解 C 编程。本书主要围绕一系列逐渐复杂的程序问题,以及用以解决这些问题的语言特性展开讲解。你不只学到 C 的函数和结构,也会学习到它们的设计目的和基本原理。

《More Effective C (中文版)》,该书围绕 55 条准则,每一条都介绍了一个可让你写出更好的 C 程序代码的方法,并以特别设计过的例子详加讨论。

《提高 C 性能的编程技术》,本书认为 20% 的性能缺陷将会占用我们 80% 的时间。因此我们把精力集中在最有价值的地方。本书详细讨论了临时对象、内存管理、继承、虚函数、内联、引用计数以及 STL 等一切有可能提升 C 效率的细节内容。无论你是相关领域的从业人员,还是 C 程序设计爱好者,或者是渴望突破编程瓶颈、大幅提升自我修为的程序设计爱好者,本书都必将使你获益良多。

《从缺陷中学习 C/C 》从本质上来说,这就是一个 C/C 的错题集。全书中包括 63 个问题引发的错误,即书名中的缺陷。也是避坑指南。

《C Templates 中文版》,深入了解现代 c 模板的实用书籍。本书不仅是对 C 模板的权威解释,而且本书还深入地介绍了其他一般的 C 思想。

《STL 源码剖析》详细地了解 STL 的底层实现机制,同时也可以对常用数据结构,C 内存管理拥有更深的理解。

其实还有《C 标准库(第 2 版)》、《C 并发编程实战》、《C 编程思想(两卷合订本)》等,介绍的这些书我都买了,不过说实话,后面的几本都是泛泛的看了下,当作工具书。

视频

  1. 清华大学-郑莉-C 语言程序设计(基础篇)

https://www.bilibili.com/video/BV1PA411b75a?p=92

  1. 侯捷老师的八部曲:

侯捷老师的八部曲:

https://github.com/tangtangcoding/C-C-

  1. QT 视频教程:

QT 视频教程

https://www.bilibili.com/video/BV1jK4y1m7d4

最后

这个宝藏Github整理的资料,爱了爱了

「超全!」谷歌大神 LeetCode 刷题笔记 PDF 分享

字节跳动「50道高频算法题」

无意间发现 Google 代码模板,分享给大家!

需要学习的东西还多,该收心学习和上班了,愿每个努力奋斗的小伙伴都会被时光温柔以待!

欢迎点赞 评论 转发。

0 人点赞