计算机408看不懂?那是你还不知道这套学习方法和资源

退休的龙叔 退休的龙叔     2022-10-24     346

关键词:

前言

《数据结构》、《操作系统》、《计算机组成原理》和《计算机网络》这4门课程(俗称408)对于学计算机的人来说至关重要,不管你是考研还是找工作都会用得到。

不管你现在的开发工作是否用得到它们,这些都是计算机必备的基础,跟计算机打交道这些都是必不可少的。

但学习的顺序不对,你可能会越看越糊涂,尤其是非科班的人在学习了一门编程语言之后找工作,想弥补自己的短板(培训机构一般不会教),那么如何学习它们将会至关重要。

今天就来给大家讲讲如何学习计算机的408,顺道还给大家推荐了对应的学习资源。


一、学习方法

我们先来讲一下408的学习方法,自学的话建议先去网上找视频把它们都过一遍,因为视频教学能够让你在学习这些抽象的知识时更加形象化,去中国大学MOOC或者B站都能找到很多高分好评的免费课程。

最后再去做针对性学习,建议是看书学习,书本我在后面会给大家做推荐

那么何谓针对性学习

就是你现在或者以后的工作岗位比较偏向于哪些东西?如果是后端开发的话就比较注重操作系统;前端更偏向于计算机网络;硬件方向的话自然就是计算机组成原理了;数据结构建议不管前后端都深入学习一下。

我私藏了很多技术干货,移步至CSDN社区自取


二、学习顺序

1.数据结构

第一门课都建议从数据结构入手。

业内一直都流传着这么一句话:程序=数据结构+算法

从某种意义上来讲,这也是最粗略区分码农和程序员的一门课。

为什么这么说呢?很简单,同样是玩,当成一个程序,我们的内存是否节省、数据存取是不是足够的高效等等,这些就决定了我们的程序是能跑就行,还是能做得非常优秀,甚至开源给其他人用,这就是我们学习数据结构的意义。

数据结构推荐的书籍有两本:《大话数据结构》和《数据结构与算法分析》,前者相对简单些,那这两本书具体怎么选,可以先到网上去找些电子档来看一看看哪本自己更能接受。

刷题的话可以去力扣,注意不要直接上手无序题或者这些热门题,先根据标签过知识点,巩固知识点的同时清楚各类结构在什么情况下去使用比较合理,过完一轮之后再去看这些热门题会好很多。

2.操作系统

第二门课建议可以看操作系统。

学操作系统也不是为了自己写一个操作系统,而是为了更好的理解所谓的软件工程思想

操作系统可以让我们更好的知道系统资源调配,编写程序的时候知道问题出在哪儿,知道更多的工程解决思路。

书籍的话推荐《操作系统导论推荐》和《深入理解计算机系统》。前者更适合初学者,后面这本则是盛名已久的操作系统好书,值得一看。

3.计算机网络

第三门课建议可以学计算机网络,程序数据的传输离不开网络,它的重要性自然不用多说,尤其是在面试的时候也经常会被问到,比如三次握手四次挥手等等,答不上来你可能就被PASS了。

计算机网络的话在之前我也推荐过,看《计算机网络:自顶向下方法》,一本很适合自学的书,讲解细致而富有条理,同时略去了很多细枝末节的信息,从而不至于让初学者无所适从。

4.计算机组成原理

为什么把它放在最后呢?因为对于大部分程序员来讲都是开发或者研发工作,计算机组成原理对搞硬件的人来说才是比较重要,所以一般你去互联网公司面试都不太会被问到计组。

但它必须得有所了解,因为就算你是个搞软件的,但凡你想有更高深的发展,你就会涉及到调优,那如果你不了解存储器、输入、输出系统、计算机的运算方法和指令系统等等,你如何调优?而这些都是计组的知识,所以必须得学。

书本的话推荐《计算机组成与设计:硬件/软件接口》,你只需一点点c语言和数字逻辑基础就能饮水般流畅得读懂绝大部分内容,读完之后对计算机组成原理的理解必然是清晰透彻的。


今天的分享到此结束了,如果对你有帮助,欢迎点赞收藏或者转发给有需要的朋友!

计算机408看不懂?那是你还不知道这套学习方法和资源

...机的408,顺道还给大家推荐了对应的学习资源。一、学习方法我们先来讲一下408的学习方法,自学的话建议先去网上找视频把它们都过一遍,因为视频教学能够让你在学习这些抽象的知识时更加形象化,去中国大... 查看详情

计算机408看不懂?那是你还不知道这套学习方法和资源

...机的408,顺道还给大家推荐了对应的学习资源。一、学习方法我们先来讲一下408的学习方法,自学的话建议先去网上找视频把它们都过一遍,因为视频教学能够让你在学习这些抽象的知识时更加形象化,去中国大... 查看详情

你还不懂二分查找?那是你没看这篇文章(代码片段)

⭐前言关于二分查找,我之前写过一篇简单的文章,但是因为太过于简单,加上各方面考虑不周,所以自己利用空余时间,重新看了书籍,阅读了大量博客,重新写了一篇进阶版😎二分法的思想十... 查看详情

动态规划不信看完你还不懂动态规划(代码片段)

1.什么是动态规划?维基百科:动态规划(Dynamicprogramming,简称DP)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。使用场景:动态规划常常适用于有重叠子问题和最优子结构性质的问题。d... 查看详情

动态规划不信看完你还不懂动态规划(代码片段)

1.什么是动态规划?维基百科:动态规划(Dynamicprogramming,简称DP)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。使用场景:动态规划常常适用于有重叠子问题和最优子结构性质的问题。d... 查看详情

爆肝整理jvm十大模块知识点总结,不信你还不懂

01JVM内存结构Java虚拟机的内存空间分为5个部分:程序计数器Java虚拟机栈本地方法栈堆方法区JDK1.8同JDK1.7比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对JVM规范中方法区的实现... 查看详情

你还不懂云计算吗?(代码片段)

...说说云计算怎么产生的。我们聊聊互联网的变迁,从当年计算机发明开始,计算机的主要功能是服务业科研和军事单位的科学技术,如弹道导弹数据的技术等;后来慢慢开始商业应用,个人计算机出现,我们每人人也进入到了互... 查看详情

作为前端你还不懂mutationobserver?那out了(代码片段)

🐱个人主页:不叫猫先生🙋‍♂️作者简介:前端领域新星创作者、华为云享专家、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀!💫系列专栏:vue3从入门到... 查看详情

动态规划不信看完你还不懂动态规划(代码片段)

1.什么是动态规划?维基百科:动态规划(Dynamicprogramming,简称DP)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。使用场景:动态规划常常适用于有重叠子问题和最优子结构性质的问题。d... 查看详情

还在苦恼学python不知道方向,你还不看吗?未来python就业方向

...几种语言的,都知道为什么。因为Python语言简单,没有学计算机语言的0基础的,学起来快,作用大,是不少新手入门计算机应用,程序员入门的首选。Python是一门脚本语言,因为Python编程语言能将其他各种编程语言写的模块粘... 查看详情

只会懒汉式和饿汉式你还不懂单例模式!(代码片段)

只会懒汉式和饿汉式你还不懂单例模式!一.文章导读设计模式是每一位技术人员都应该掌握的技术,但是现在根据实际情况来看,大家对于设计模式也仅仅限于面试八股文,知其然不知其所以然。你说设计模式很难吧,其实也没有,你... 查看详情

关于线程池,那些你还不知道的事

一、背景  最近在学习线程相关的知识,然后顺理成章少不了学习线程池,刚开始在没有深入的学习之前,感觉线程池是很神秘的东西,而且完全想不到怎么才能实现一个自己的线程池,然后还能保证它的可用性,然后就一直... 查看详情

这些自动化测试框架知识你还不知道?

这些自动化测试框架知识你还不知道?!  无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架。之前学习自动化测试的过程中,一直对“框架”这个词知其然不知其所以然。  最近看了很多自动化相关的资... 查看详情

如果看了此文你还不懂傅里叶变换,那就过来掐死我吧完整版

如果看了此文你还不懂傅里叶变换,那就过来掐死我吧【完整版】转自 https://blog.csdn.net/u012361418/article/details/46277779 还记得上大学的时候的机械振动还有工程测试利用的傅立叶变化,当时感觉云里雾里的,感觉好难,也就... 查看详情

云原生时代,你还不懂gitops?

云原生时代,你还不懂GitOps?GitOps:又一次造词运动?伴随着DevOps在近些年的火爆,围绕xOps产生了很多概念,诸如DevSecOps,AIOps,MLOps,ChatOps等等,当然还有今天讲述的主角GitOps。人们在xOps... 查看详情

你还不懂jvm垃圾回收及收集器么?(代码片段)

Serial收集器这个收集器是一个单线程工作的收集器,但它的“单线程”的意义并不仅仅是说明它只会使用一个处理器或一条收集线程去完成垃圾收集工作,更重要的是强调在它进行垃圾收集时,必须暂停其他所有工作... 查看详情

python实操马上毕业了,你还不懂什么是守护线程线程进程?(附12306抢票程序-源代码)(代码片段)

...发经验,跨域学习者,目前于海外某世界知名高校就读计算机相关专业。荣誉:阿里云博客专家认证、腾讯开发者社区优质创作者,在CTF省赛校赛多次取得好成绩。跨领域学习,喜欢摄影、弹吉他、咏春拳。文章深... 查看详情

听说你还不懂依赖任务启动框架?带你撸一个(代码片段)

作者:王晨彦前言我们在开发应用的时候,一般都会引入SDK,而大部分SDK都要求我们在Application中初始化,当我们引入的SDK越来越多,就会出现Application越来越长,如果SDK的初始化任务相互依赖,还要处... 查看详情