记录关于C/C++的自学路线
Posted 城子编程特讯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录关于C/C++的自学路线相关的知识,希望对你有一定的参考价值。
一、前言
二、C/C++语言学习
三、编程四大件
1.数据结构与算法
2.计算机网络
3.操作系统
4.设计模式与SQL数据库编程
四、总结
一
前言
博主,一名小硕,写这篇博文目的其一是为了记录下自己的学习经历,其二是为了与大家分享和交流心得。以下就分享下个人的部分学习过程。
二
C/C++语言学习
C语言的学习,应该学习如下内容:编译四步骤(预处理、编译、汇编、链接)、变量、条件循环、结构体、字符串、函数、指针和内存管理等。其中最为重要的是指针和内存管理。尤其是做linux软件开发必须掌握的。个人的学习书籍:**《C Primer Plus》、《C 和指针》、《C陷阱与缺陷》、和《C语言开发从入门到精通》**。
C++语言我个人认为是一门学了几年还感觉算入门的编程语言。其语言的细腻度相当的高。除了和C语言一样的基础内容外,还应该重点再重点学习的内容为:对象与类、封装、继承、多态、泛型编程(模板)、智能指针(shared_ptr等)、C++的STL(IO、容器、泛型算法、内存)等。个人强烈推荐书籍:**《C++ Primer Plus第6版超清中文版》、《More Effective C++中文版》、《More Exceptional C++ 中文版》、《STL源码剖析》、《C++标准程序库(中文版)》《C++ STL程序员开发指南》、《C++沉思录》**。其中最为经典的是第一本,看几遍都不为过。STL源码剖析杀伤性极强,可以悠着点,可以先尝试C++标准库程序去理解STL。另外这两本**《More Effective C++中文版》、《More Exceptional C++ 中文版》**是C++提高篇,细细品可以提高综合能力。
图片来自于:https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2695866592,986446199&fm=26&gp=0.jpg
三
编程四大件
01
数据结构与算法
个人最为感兴趣的是数据结构与算法。相比于编程四大件,我认为数据结构与算法考验的不仅仅是一个人的思维能力,更是编程的核心基础。其中应该学习的内容为:**数组、链表、栈、队列、散列表、二叉树、B+树、红黑树、堆、图等;算法有:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法等**。其内容相当大。个人学习的书籍有:**《剑指offer》、《跟我学数据结构(清华出版社)》、《数据结构(C++语言版)第三版_邓俊辉》、《C++数据结构与算法(第4版)》、《啊哈!算法》等,其中需要细读的是《C++数据结构与算法(第4版)》**,看多少遍都不为过,其次就是需要动手多实践多思考。
02
计算机网络
03
操作系统
操作系统的相对较深,学习相当费时枯燥。对于操作系统的学习,需要了解**操作系统、计算机软硬件知识、进程与线程、内存管理、文件管理、IO管理、锁和相关CPU算法**等。就目前正学习Linux系统,其中需要知道内容有(:**Linux常用命令、Linux系统编程、Linux网络编程**等。个人推荐学习书籍:**《Linux就该这么学》、《鸟哥的Linux私房菜》、《深入理解计算机系统》、《天勤操作系统》、《Ubuntu_Linux从入门到精通》等。**
04
设计模式与SQL数据库编程
针对23种设计模式,可根据需求进行相应的学习。个人觉得不能局限于固有的框架。根据特殊需求、特殊目的,才能有效地使用设计模式。其中设计模式学习有:**单例模式、工厂模式、代理模式、策略模式、模板方法模式**等23种,建议部分常用模式还是需要深入并记住的。个人建议b站或者博客学习设计模式更佳,这个因人而异且目前还在学习阶段。学习书籍有:**《java 23种设计模式》、《设计模式之禅》。基础的视频有b站的C++设计模式-免费课程**。
数据库(以mysql为例)的基础是CURD增删改查。其学习内容为:**MYSQL基础知识,数据库的CURD、表的CURD、各类指令和相关函数、多表查询和表的约束、底层原理(如hashmap 的JDK1.8底层用红黑树+链表)等等**;个人数据库学习主要是通过视频学习,感觉效果更佳,且目前还在学习阶段。
四
总结
以上就是今天的内容,主要是记录了个人的学习过程和学习路线。知识和技术日新月异,个人学习有限,目前就根据需求进行相关编程的学习。故而,在这篇博文仅罗列了目前编程基础的学习,其他相关编程内容如人工智能、深度学习等日后再进行深度的学习。
以上是关于记录关于C/C++的自学路线的主要内容,如果未能解决你的问题,请参考以下文章