mirror of
https://github.com/kaka111222333/kaka111222333.github.io.git
synced 2025-12-19 00:04:46 +08:00
update note
This commit is contained in:
@@ -7,19 +7,21 @@ comments: true
|
||||
author: lemonchann
|
||||
---
|
||||
|
||||
经常被邀请回答类似如何学习C++和C++后台开发应该具体储备哪些基础技能的问题。所以写这篇文章,总结自己的C++后台开发学习路径,分享具体有哪些技能树是必须要点的,希望能给后来想从事后台开发的同学一点参考,能帮你少走些弯路就更好。工欲善其事必先利其器,好的书籍能让学习事半功倍,所以每个技能点之后我会推荐一些书,都是我读过且口碑不错的书,供参考。
|
||||
经常被邀请回答类似如何学习C++和C++后台开发应该具体储备哪些基础技能的问题。所以写这篇文章,总结自己的C++后台开发学习路径和点过的技能树,希望能给后来想从事后台开发的同学一点参考,能帮你少走些弯路就更好。
|
||||
|
||||
分享的是我的学习路径,如果你也能顺着这个学习路径认真学一遍,我想通过大部分大厂面试是没有问题的。后续还会继续分享关于C++编程和后台开发技术,感兴趣的同学可以关注我和专栏。
|
||||
工欲善其事必先利其器,好的书籍能让学习事半功倍,所以每个技能点之后我会推荐一些书,都是我读过且口碑不错的书,供参考。
|
||||
|
||||
**分享的是我的学习路径,如果你也能顺着这个学习路径认真学一遍,我想通过大部分大厂面试是没有问题的。后续还会继续分享关于C++编程和后台开发技术,感兴趣的同学可以关注我和专栏。**
|
||||
|
||||
## 计算机基础综合
|
||||
|
||||
考过CS或者软件工程研究生的同学可能对这个标题`计算机专业基础综合` 不陌生,是的,我说的就是专业课代号408的**计算机基础综合**。这门专业课包含:数据结构、计算机组成原理、计算机网路、操作系统。
|
||||
考过CS或者软件工程研究生的同学可能对这个标题不陌生,是的,我说的就是专业课代号408的**计算机基础综合**。这门专业课包含:数据结构、计算机组成原理、计算机网路、操作系统。
|
||||
|
||||
为什么提起这门课程呢,因为基础知识太重要了!这是科班区别于培训班的最大不同,理论知识不一定马上能用于项目上,但当与人讨论起某个技术问题时你能够知道它深层次的原因,看问题的角度会更加全面和系统。
|
||||
|
||||
打个比方,你可能听过堆栈的名词,但知道它的具体结构和不同吗?学完数据结构就明白了;你知道计算机会算加减乘除,但具体是如何实现的呢?组成原理会告诉你;知道程序执行的时候怎么区分指令地址和数据地址的吗?操作系统会告诉你答案。
|
||||
|
||||
所以,如果你大学不是计算机相关专业,或者是本专业但是没有好好学习基础的话,强烈建议你务必抽时间好好学习这几门课程。
|
||||
所以如果你大学不是计算机相关专业,或者是本专业但是没有完全吃透基础的话,强烈建议你务必抽时间好好学习这几门课程。
|
||||
|
||||
#### 推荐书:
|
||||
|
||||
@@ -75,25 +77,29 @@ author: lemonchann
|
||||
|
||||
## C++和C语法基础
|
||||
|
||||
学任何语言首先要懂的都是他的语法,C++的基础语句和语法和C是很像的,最大的不同在class和异常处理机制,还有模板的应用,所以有C基础语法学起来是很快,没有C基础也没关系,啃完下面推荐的书也差不多,光说不练假把式,看完之后趁热把课后习题敲一遍并且自己编译通过才算看完。
|
||||
**语法是一门语言的基础。**C++的基础语句和语法和C是很像的,最大的不同在class和异常处理机制,还有模板的应用,所以有C基础语法学起来是很快,没有C基础也没关系,啃完下面推荐的书也差不多,光说不练假把式,看完之后趁热把课后习题敲一遍并且自己编译通过才算看完。
|
||||
|
||||
#### 推荐书:
|
||||
|
||||
[《C++ Primer 中文版(第 5 版)》](https://book.douban.com/subject/25708312/) 经典的入门书籍,不要拿大学教材XX强来对比,不是一个等级。
|
||||
|
||||
|
||||
|
||||
## 标准库STL学习
|
||||
|
||||
C++标准库提供了包括最基础的标准输入输出`iostrem`、各种容器`vector、set、string` 这些都是需要熟练掌握的。
|
||||
**STL提供了丰富的算法库支持和各种容器。**C++标准库提供了包括最基础的标准输入输出`iostrem`、各种容器`vector、set、string` ,熟练掌握标准库,不用重复造轮子(练手学习目的的造轮子除外)写出更C++的代码。
|
||||
|
||||
#### 推荐书:
|
||||
|
||||
[《C++ Primer 中文版(第 5 版)》](https://book.douban.com/subject/25708312/)
|
||||
|
||||
[《STL源码剖析》]( https://book.douban.com/subject/1110934/ )
|
||||
|
||||
|
||||
|
||||
## C++进阶
|
||||
|
||||
学完了C++基础你就能够在项目中用起来了,但是距离用好还有很大一段距离。不过没关系,你没踩过的坑前人已经踩过一遍,关于一些语言细节和更好的编码习惯有很多优秀的书籍可以查阅。站在巨人的肩膀上写出更健壮高效的代码。
|
||||
**学完了上面的C++基础只是会用,要用好还需要不断学习进阶。**站在巨人的肩膀上写出更健壮高效的代码,你没踩过的坑前人已经踩过一遍,关于一些语言细节和更好的编码习惯,有很多优秀的书籍可以学习。
|
||||
|
||||
#### 推荐书
|
||||
|
||||
@@ -109,7 +115,7 @@ C++标准库提供了包括最基础的标准输入输出`iostrem`、各种容
|
||||
|
||||
## C++11新标准
|
||||
|
||||
现行的大部分C++软件还是C++98的标准,C++98是C++的第一个标准,经历这么多年的发展,从前你需要从Boost库(一个在C++98年代的准C++标准)获得的对C++的扩充支持的大部分功能已经纳入了C++11和甚至C++2X更新的标准当中,你需要与时俱进拿起更加先进的生产工具了,工具就是效率。
|
||||
**新标准提供了解决现有问题更优雅、更C++的实现**。现行的大部分C++软件还是C++98的标准,C++98是C++的第一个标准,经历这么多年的发展,从前你需要从Boost库(一个在C++98年代的准C++标准)获得的对C++的扩充支持的大部分功能已经纳入了C++11和甚至C++2X更新的标准当中,与时俱进拿起更先进的生产工具,工具就是效率。
|
||||
|
||||
#### 推荐书:
|
||||
|
||||
@@ -119,7 +125,7 @@ C++标准库提供了包括最基础的标准输入输出`iostrem`、各种容
|
||||
|
||||
## Linux系统基础和shell script
|
||||
|
||||
如今**几乎**所有的互联网服务都是跑在linux系统上面的,如果你还对这个系统一无所知那更加谈不上后台开发了,所以要先学习linux系统操作,不如**文件管理,系统命令,文件系统,权限管理,系统服务**等等。
|
||||
**如今几乎所有的互联网服务都是跑在linux系统上面的。**对Linux系统一无所知那更加谈不上后台开发了,所以要先学习linux系统操作,不如文件管理,系统命令,文件系统,权限管理,系统服务等。
|
||||
|
||||
至于shell script 就类似win的批处理脚本,相信我,你在linux下干活早晚会需要它,所以趁早系统学起来。
|
||||
|
||||
@@ -135,9 +141,9 @@ C++标准库提供了包括最基础的标准输入输出`iostrem`、各种容
|
||||
|
||||
## Linux环境高级编程
|
||||
|
||||
如果说linux系统基础是打基础,那么打完基础之后就要学习一些更高级的技巧。上一阶段你已经能够完成熟练操作Linux系统,知道一些**常规的系统命令和服务,并且能够利用shell script写一些小工具**提高日常开发效率。
|
||||
**普通用户只需懂系统操作,软件开发人员还要懂编程接口。**上一阶段你已经能够完成熟练操作Linux系统,知道一些常规的系统命令和服务,并且能够利用shell script写一些小工具提高日常开发效率。
|
||||
|
||||
我们的目标是星辰大海,你还需要更加深入的掌握linux系统编程技巧,**学习系统编程接口、系统调用api、网络编程套接字、进程间通信(IPC)**,这是本阶段的学习目的。
|
||||
我们的目标是星辰大海,作为软件工程师,还需要更加深入的掌握linux系统编程技巧,**学习系统编程接口、系统调用API、内存管理、进程间通信(IPC)**,这是本阶段的学习目的。
|
||||
|
||||
#### 推荐书:
|
||||
|
||||
@@ -180,6 +186,16 @@ C++标准库提供了包括最基础的标准输入输出`iostrem`、各种容
|
||||
|
||||
|
||||
|
||||
## 算法
|
||||
|
||||
如今校招社招大厂笔试都会考察算法,即使不是为了笔试作为软件从业者也应该经常练手,保持手感。学习算法是学习解决问题的通用性方法有助于提高逻辑思维能力。
|
||||
|
||||
算法可以在[牛客](https://www.nowcoder.com/activity/oj)或者 [leetcode](https://leetcode-cn.com/ )上刷题。在线刷题的好处是你可以每天定目标,享受刷题通过的快感,有正向反馈更容易坚持下来。
|
||||
|
||||
## 架构
|
||||
|
||||
学了这么多,怎么在项目上运用呢?你还需要根据
|
||||
|
||||
## 更多的练习
|
||||
|
||||
说了这么多,最最重要的还是练习 练习 练习,重要的事情说三遍。理论知识储备是必要条件,现在大家接触到的碎片化信息知识太多,高浓度的知识精华还是需要在大师的书本中汲取,所以看书是最正确和快速的学习路径,没有捷径可走。
|
||||
|
||||
Reference in New Issue
Block a user