别再自学架构了,那些让你降落的计算机系统此基础
我以后里的该文,写的大部分都是与计算机系统基本科学知识相关的,那些基本科学知识,就像他们的心法,如果在未来想走的更远,那些心法是要要修练的。架构变幻莫测,而那些通用的底层科学知识,却是几乎不变的,介绍了那些科学知识,能帮助他们更慢着自学两门科学知识,更加懂计算机系统的管理体制。总而言之,在复试中也时常会被问及,不光是对高职,对东周招,也能看看我前二周写过的该文经过两个月,我的秋招之路结束了!。也有听众时常问的计算机系统基本科学知识究竟是指啥?自学次序?推荐书刊?
总而言之,以下是我个人的许多经验,并且段小宇的许多科学知识,为准,也热烈欢迎我们进行补充
一、计算机系统网络
在他们用的流程中,99% 都有赖于网络,作为一个流程员,我觉得介绍计算机系统网络是要的,在大学的专业课程中,一般也单厢开办这两门课。
在我自学尖萼课以后,我就不光困惑,三台笔记本电脑是是不是把最新消息推送给另外三台笔记本电脑的呢?例如:
1、三台笔记本电脑啥公交线路也没有相连接,是不是就能把最新消息推送到他呢?
2、当今世界上的笔记本电脑所以多,咋就能找出那台特点的笔记本电脑呢?有人说他们能 MAC 或者 IP 来唯一标记啊,可是,我就有点困惑了,当今世界所以大,笔记本电脑所以多,有了这个标记,他们该是不是找出他呢?结点所有笔记本电脑?
3、多个流程同时发最新消息给三台笔记本电脑,笔记本电脑是怎样准确把那些最新消息寄给那些相同流程的呢?
4、推送的最新消息遗失了是不是办?
总而言之,一堆疑点,看了计算机系统网络之后,才奥尔奈。自己也写了一则评价不错的该文:该文看清楚三台计算机系统是怎样把数据推送到另三台计算机系统的
所以这儿,我是雷西县我们学呵呵的,在复试中,计算机系统网络也是低频考场,这儿我大致归纳呵呵许多recommend协定以及复试低频考场:
1、http协定,包括:PCB文件格式,常用积极响应码,相同版的区别,常用允诺方法,存在什么样隐患,啥是无状态协定等。
2、https协定:http 是明文传输,https 是加密安全的,需要知道 https 是怎样加密的、数字证书怎样形成,啥的对称加密、非对称加密。
3、TCP协定:三次握手、四次挥手、怎样保证可靠传输、流量控制、拥塞控制。
4、UDP:这个大致介绍即可,好像内容比较少
5、DNS、ICMP、ARP、DHCP(我就不一个一个写了)
上面写的那些协定,我觉得是比较重要的,不光是在复试中。
推荐书刊:《计算机系统网络:自顶向下》、《图解http》
书刊在这儿就能下载到了:

二、操作系统
操作系统也是两门非常重要的科学知识,在复试中也是问的非常多(总而言之,看公司,有些公司技术栈是 Java 的,可能问的比较少)。对操作系统,要学的也挺多,例如:
啥是进程,啥是线程,他们的本质区别?他们运行一个流程时,数据放在哪里?代码放在哪里?咋就还要分堆和栈?线程切换时是上下文是啥意思?
虚拟地址是什么鬼东西?线程需要所以多种状态干啥子?什么是乐观锁、悲观锁?死锁是是不是造成的?解决死锁的策略有什么样?等等
有人说学操作系统太他妈枯燥了,确实挺枯燥,不过说实话,我还是学的挺有意思的,感觉能学到很多种策略,一种比一种好,每次看完都是:我去,咋我就想不到呢。我觉得,对前期,他们需要多参考别人的策略,看多了,有了一定的此基础,慢慢形成自己的策略,总而言之,看那些书,不单要掌握那些科学知识点,更重要的是一种思维逻辑的提升
对操作系统,我归纳了下面许多比较核心,复试相对容易被考到的。
1、进程的通信方式(我写过一则很不错的该文:记一次复试:进程之间究竟有什么样通信方式? —- 告别死记硬背)
2、进程、线程究竟是由什么组成的?有什么样数据?
3、内存管理,包括:虚拟内存(重点)、分页、分段、分页系统地址映射、内存置换算法(重点)。
4、死锁的处理策略(死锁预防、死锁检测与恢复、死锁避免)
5、进程调度算法
6、磁盘寻道算法
上面说的那些,我认为是比较重要的,如果你没段小宇,我相信学了之后,你能学到很多东西,科学知识点只是其中之一。
推荐书刊:我看过的书刊是《操作系统—精髓与设计原理(第八版)》,不过我推荐《现代操作系统)》,我看过目录,感觉还不错,这儿也推荐这一本。不过对零此基础的,我建议能先看一本专门给小白看的书:《流程是怎样跑起来的》。
三、数据库(这儿我用 MySQL)
在大学的专业课程里,一般单厢开办两门数据库的专业课程,不过尖萼数据库是没有针对某一种数据库语言的(例如 MySQL、Oracle)。不过我这儿只讲 MySQL的自学,别问为什么,问就是我逃了二十分之十九的课。
把MySQL学好,还是不光重要的,千万不能停留在会用的层面上,而是应该要介绍呵呵原理,不光是对要复试的同学,会问挺多原理,我每次被问及 MySQL 我单厢信心大增,因为我虽然不大好写 SQL,但是,知道挺多原理,记得腾讯、shopee复试时,面完 MySQL,复试官好像对我刮目相看了。好了,不吹了,说那些也是强大 MySQL 的重要性。下面就说我段小宇的许多科学知识以及推荐的自学资料吧。
对 MySQL,需要学的还挺多的,例如,
1、一条 sql 语句是怎样执行的?进行更新时又是是不是处理的?
2、索引是怎样实现的?多种引擎的实现区别?聚族索引,非聚族索引,二级索引,唯一索引、最左匹配原则等等(非常重要)
3、事务相关:例如事务的隔离是怎样实现的?事务是怎样保证原子性?相同的事务看到的数据是不是就不一样了?难道每个事务都拷贝一份视图?MVCC 的实现原理(重要)等等。
4、各种锁相关,例如表锁,行锁,间隙锁,共享锁,排他锁。那些锁的出现主要是用来解决什么样问题?(重要)
5、日志相关:redolog,binlog,undolog,那些日志的实现原理,为介绍决是不是问题?日志也是非常重要的吧,复试也问的挺多。
6、数据库的主从备份、怎样保证数据不遗失、怎样保证高可用等等。
还有许多常用命令也要知道。
我觉得,只要你了解了以上的原理,所以对数据库调优的帮助是非常大的,上面除了第六点,其他五点,在高职的复试中,极其低频。
推荐书刊:连 sql 都不会写的,推荐《SQL必知必会》,接着推荐《MySQL技术内幕:InnoDB存储引擎》。
书刊在这儿就能下载到了:
四、数据结构与算法
一、此基础数据结构
1、线性表
列表(recommend)
链表(recommend)
跳跃表(知道原理,应用,最后自己实现一遍)
并查集(建议结合刷题自学)
不用说,链表、列表要,不过重点是链表。
2、栈与队列
栈(recommend)
队列(recommend)
优先队列、堆(recommend)
多级反馈队列(原理与应用)
不光是优先队列,再刷题的时候,还是时常用到的,队列与栈,是最基本的数据结构,recommend。
3、哈希表(recommend)
碰撞解决方法:开放定址法、链地址法、再次哈希法、建立公共溢出区(recommend)
布隆过滤器(原理与应用)
哈希表相关的,推荐通过博客来自学,
Hash冲突之开放地址法
4、树
二叉树:各种结点(递归与非递归)(recommend)
哈夫曼树与编码(原理与应用)
AVL树(recommend)
B 树与 B+ 树(原理与应用)
前缀树(原理与应用)
红黑树(原理与应用)
5、十大排序算法
十大排序其实看我以后写过的该文,也差不多了,好评如潮
5、漫画:什么是归并排序算法?
书刊推荐:《数据结构与算法分析:c语言描述版》、《算法第四版》、《啊哈算法》。
书刊在这儿就能下载到了:
视频推荐:
五、汇编
我觉得,怎样有时间,自学下汇编是要的,自学了汇编,能够更好着帮助我们知道计算机系统是怎样处理流程代码的,例如寄存器和内存是怎样使用的?循环、函数调用、数组是怎样实现的?地址是是不是一回事?等等。
很多二进制代码是能反编译成汇编的,怎样你会汇编,所以能帮助他们更好着去理解许多东西。所以这儿建议我们自学下汇编,并且要动手写许多流程。
对汇编的资料,我可能没啥好推荐的,自己看的不多。看过两本书,对入门的,我建议看 王爽的那本书《汇编语言(第三版)》,不过这本只适合入门,如果想继续,能看《汇编流程设计》。
六、编译原理
说实话,编译原理还挺难,反正我觉得很难,不过有时间我觉得能学学,学了这个你能知道他们的编译器怎样分析他们的代码的,例如词法分析,语法分析,语义分析等等。总而言之,你未来可能会自己写个特定分析代码的编译器也不一定,这个时候,就更加需要学了。
对自学的资料,我觉得能看视频 + 书。视频的话中国 mooc 大学搜索即可,书的话,说时候,我也看的不多,只看过学校指定的教材,所以这儿给不了多少建议,自己当当自行搜索,哪本热门卖哪本勒。
归纳
暂时先介绍这么多吧,说实话,学了那些,不单单是多学了两门科学知识,更重要的是能提升你的罗辑思维,给你带来更多的 idea
上面提到的书刊,能在这两个地方快速下载到,帮你节省寻找资源的时间
只求不白嫖,给你赞,谢谢。