C语言与C++学习路线、书籍、视频推荐和资料,值得收藏!
C语言
有人说:“C生万物,编程之本”,这一点都没有错!
C语言是最接近计算机的语言,很多时间,我们都会发现,C语言是非常有必要学习的。
刚开始就是泡书,然后就是抄代码,上机调试,模仿修改,看 n 遍,量变引起质变就会培养出编程思维!!!
- 数据类型、变量、内存布局、指针基础;
- 字符串、一维数组、二维数组;
- 一级指针,二级指针,三级指针,N级指针概念,指针数组和数组指针;
- 结构体、文件的使用;
- 动态库的封装和设计;
- 函数指针回调函数;
- .....
看完这个刷题笔记与代码规范,距大厂又近了一步!值得收藏!
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语言入门视频:
-
《郝斌C语言自学教程》
https://www.bilibili.com/video/BV1os411h77o?from=search&seid=15026475169248378667
-
《程序设计入门——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++ 语言越来越复杂,标准库就尤其重要,因为使用标准库才更有生产力!
面向对象编程思想:
- 类的封装,构造和析构、静态成员、对象管理;
- 类的构造(有参构造函数、无参构造、拷贝构造、默认构造函数)和析构;
- 对象动态管理、友元函数、友元类、操作符重载;
- C++编译器对象管理模型分析;
- 类对象的动态管理(new/delete);
- 友元函数和友元类;
- 运算符重载(一元运算符、二元运算符、运算符重载难点、项目开发中的运算符重载);
- 类的继承、多继承及其二义性、虚继承;
- 多态(概念、意义、原理剖析、多态案例);
- 虚函数、纯虚函数、抽象类(面向抽象类编程思想案例);
- 函数模板、类模板,模板的继承;
- C++类型转换;
- C++输入输出流(标准I/O 文件I/O 字符流I/O);
- C++异常处理(异常机制、异常类型、异常变量、异常层次结构、标准异常库);
- C++核心编程_打造你的核心编程技能
C/C++开发进阶
这一阶段的目标才是达到C/C++软件工程师开发行业的基本要求,这个阶段是我们走向C/C++开发的进阶之路,更是一个让自己找份薪水比较体面的工作的筹码。
如果在此部分遇到不懂的或者没有见过的知识点和名词,可先将本文收藏,供以后细细研读。
那么这个阶段,我们又应该掌握什么呢,继续往下看:
1.C++进阶之STL
STL = Standard Template Library,即标准模板库。这是提高开发效率的极品工具。通过学习此阶段,应掌握泛型编程技巧,理解容器类在C++语言中的应用模式,以及熟练掌握全部STL类的使用方法。
2.C++进阶之设计模式
决定一个项目成败最重要的因素是项目总体的设计,通过本阶段的学习,可掌握面向对象编程中重要的一环,是编码前建模的技巧所在。单例模式;工厂模式;代理模式;迭代模式等,这些都是你要掌握的哦。
3.C++进阶之数据结构基础
- 这是所有编程语言中最应该学习的部分,程序组成的基础之一。
- 顺序存储、链式存储、循环链表;
- 双向链表、栈(顺序和链式)、队列(顺序和链式);
- 栈的应用、树基本概念及遍历、二叉树;
- 排序算法、并归算法、选择、插入、快速、希尔。
4.C++进阶之UI界面开发
- 掌握QT类库构架,图形界面开发模型;
- 掌握QT开发技巧,消息机制,图形处理;
- 掌握QT网络编程,UDP,TCP使用方式;
- 掌握QT文件处理方式,序列化;
- 掌握QT在windows,linux,ios,android不同平台下的移植技术。
5.C++进阶之Unix/Linux网络服务器
- 掌握Unix/Linux平台开发方式;
- 熟练使用系统调用;
- 熟练Unix/Linux内存管理,进程,线程调度;
- 熟悉网络服务器开发方式,熟练编写TCP,UCP网络服务程序;
- 掌握同步/异步IO模型在网络编程中的使用方式。
6.C++进阶之数据库开发
掌握SQL语言的实用技巧。Oracle,MySQL数据库的使用方式。
如果你能熟练掌握以上列出的技能,具备解决复杂问题和技术难点的能力,而且你能独立开发一些比较复杂的功能模块,那么很荣幸地告诉你,你已经达到中级水平,薪资过万对你来说简直是小菜一碟。
C++开发高级
读到此处的你,相信你有更高的目标。即是当下炙手可热的全栈开发工程师,既晓前端,又通后台。快速定位问题,解决问题对他们来说已是小菜一碟,就是人们常说的神秘大牛,只在公司技术攻关的时候才会才看到他们的身影。
- 此阶段软件开发工作所需的知识和技能相对较难,高级软件工程师编码熟练度和规范性需要达到一定要求;
- 具备一定的项目能力(包括调试能力、文档编写能力、测试能力等)和综合技术素质(包括对软件生命周期的理解、对设计模式的理解、必备的行业知识和经验等);.
- 了解主流的后台技术和前后端协作方式,能从全局角度理解项目的整个生命周期。
如果你能熟练掌握以上三个阶段的知识技能,那么你就可以满足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++编程思想(两卷合订本)》等,介绍的这些书我都买了,不过说实话,后面的几本都是泛泛的看了下,当作工具书。
视频
-
清华大学-郑莉-C++语言程序设计(基础篇)
https://www.bilibili.com/video/BV1PA411b75a?p=92
-
侯捷老师的八部曲:
侯捷老师的八部曲:
https://github.com/tangtangcoding/C-C-
-
QT视频教程:
QT视频教程
https://www.bilibili.com/video/BV1jK4y1m7d4
最后
「超全!」谷歌大神 LeetCode 刷题笔记 PDF 分享
需要学习的东西还多,该收心学习和上班了,愿每个努力奋斗的小伙伴都会被时光温柔以待!
欢迎点赞+评论+转发。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
四本书、一个专栏,揉成这篇MySQL(一)
你好,我是 yes。 先来个,开局一张图,文末会给高清图获取方式。 这图算是第一版本,本来还想填充地更详细些,但是看着感觉好冗余,暂时就先这样吧,主要是用来标注一些关键点,便于复习。 其实对咱们后端开发而言,对 MySQL 接触有很多,但是又接触不多。接触很多指的是我们经常写 SQL 一直在用它,接触不多指的是我们也仅仅只是写 SQL,一些配置相关的包括第一手掌控那都是 DBA 在搞。 这系列文章我就筛选出和我们开发息息相关的 MySQL 知识点。我打算先做一个总览,只 BFS,也就是说不会很扣细节,先成面。 等之后的文章再慢慢 DFS,各个击破。当然面试题也会同步更新,后面都会有滴。 MySQL 体系结构 这个非常重要,理解了之后后面的一些知识点才能懂,比如索引下推。 MySQL 体系结构可以分为两大块来看,分别是:Server 和存储引擎。 当客户端与 MySQL 建立连接之后,一条 SQL 语句经过 TCP 从客户端传输到 Server ,Server 会先将语句进行词法分析与语法分析,这个工作是分析器做的。 如果语法有问题,那这个错误相信大家都不陌生:You have an e...
- 下一篇
pacebox-springboot 2020.0.2.3 发布
pacebox-springboot 融合封装已发布,旨在提供快速开发脚手架、打造更好的开源生态环境。 希望有志同道合的朋友一起维护该软件、打造一款快速应用开发级生态框架。 此版本对应spring cloud 2020.0.0版本,命名与spring cloud对应最后位为当时做的集成版 案例 inter-boot-demo boot版demo inter-micro-demo cloud版demo(nacos+sentinel体系+权限管理+elasticsearch日志+数据加解密+分布式追踪(基于opentracing)) inter-boot-generator 代码在线生成平台 inter-boot-fastdfs FastDFS权限文件管理(后续改名attachment、支持所有文件种类) inter-boot-demo 主要提供权限管理(菜单、角色、用户),elasticsearch入参出参日志,数据加解密,分布式追踪(基于opentracing), 文件存储一包集成(支持阿里云OSS,百度云BOS,腾讯COS支持、本地存储)、 短信存储一键集成(支...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS关闭SELinux安全模块
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作