核心整理那些让你起飞的计算机基础知识:学什么,怎么学帅地

当然,以下是我个人的一些经验,并且学过的一些知识,仅供参考,也欢迎大家进行补充

在我们用的程序中,99% 都离不开网络,作为一个程序员,我觉得了解计算机网络是必须的,在大学的课程中,一般也都会开设这一门课。

在我学习这门课之前,我就特别好奇,一台电脑是怎么把消息发给另外一台电脑的呢?例如:

1、两台电脑啥线路也没有相连,怎么就能把消息发送给他呢?

2、世界上的电脑那么多,咋就能找到那台特点的电脑呢?有人说我们可以 MAC 或者 IP 来唯一标识啊,可是,我就有点疑惑了,世界那么大,电脑那么多,有了这个标识,我们该怎么找到他呢?遍历所有电脑?

3、多个程序同时发消息给一台电脑,电脑是如何准确把这些消息拿给这些不同程序的呢?

4、发送的消息丢失了怎么办?

所以这里,我是强烈建议大家学一下的,在面试中,计算机网络也是高频考点,这里我大致总结一下一些必学协议以及面试高频考点:

3、TCP协议:三次握手、四次挥手、如何保证可靠传输、流量控制、拥塞控制。

4、UDP:这个大致了解即可,好像内容比较少

5、DNS、ICMP、ARP、DHCP(我就不一个一个写了)

对于新手推荐视频:可以看韩老师讲的视频,在哔哩哔哩搜索韩老师就可以找到 韩老师讲搞笑《计算机网络原理》。

我是先看了视频,在看这两本书的(文末我会给出电子版)。

操作系统也是一门非常重要的知识,在面试中也是问的非常多(当然,看公司,有些公司技术栈是 Java 的,可能问的比较少)。对于操作系统,要学的也挺多,例如:

啥是进程,啥是线程,他们的本质区别?我们运行一个程序时,数据放在哪里?代码放在哪里?咋就还要分堆和栈?线程切换时是上下文是啥意思?

虚拟地址是什么鬼东西?线程需要那么多种状态干啥子?什么是乐观锁、悲观锁?死锁是怎么造成的?解决死锁的策略有哪些?等等

有人说学操作系统太他妈枯燥了,确实挺枯燥,不过说实话,我还是学的挺有意思的,感觉可以学到很多种策略,一种比一种好,每次看完都是:我去,咋我就想不到呢。我觉得,对于前期,我们需要多参考别人的策略,看多了,有了一定的基础,慢慢形成自己的策略,总之,看这些书,不单要掌握这些知识点,更重要的是一种思维逻辑的提升

对于操作系统,我总结了下面一些比较核心,面试相对容易被考到的。

2、进程、线程究竟是由什么组成的?有哪些数据?

3、内存管理,包括:虚拟内存(重点)、分页、分段、分页系统地址映射、内存置换算法(重点)。

4、死锁的处理策略(死锁预防、死锁检测与恢复、死锁避免)

5、进程调度算法

6、磁盘寻道算法

上面说的这些,我认为是比较重要的,如果你没学过,我相信学了之后,你可以学到很多东西,知识点只是其中之一。

推荐视频:这个我没看过视频,所以想学的,我推荐去中国mooc大学找各大高校的课,也可以去国外找对应的课。

推荐书籍:我看过的书籍是《操作系统—精髓与设计原理(第八版)》,不过大佬们都推荐《深入理解计算机操作系统(原书第三版)》,我看过目录,感觉还不错,这里也推荐这一本。不过对于零基础的,我建议可以先看一本专门给小白看的书:《程序是如何跑起来的》。

操作系统的学习,还是挺枯燥的,不过,只有把最难的啃过去,才能变的更加强大

在大学的课程里,一般都会开设一门数据库的课程,不过这门数据库是没有针对某一种数据库语言的(例如 MySQL、Oracle)。不过我这里只讲 MySQL的学习,别问为什么,问就是我逃了二十分之十九的课。

把MySQL学好,还是特别重要的,千万不能停留在会用的层面上,而是应该要了解一下原理,特别是对于要面试的同学,会问挺多原理,我每次被问到 MySQL 我都会信心大增,因为我虽然不大好写 SQL,但是,知道挺多原理,记得腾讯、shopee面试时,面完 MySQL,面试官好像对我刮目相看了。好了,不吹了,说这些也是强大 MySQL 的重要性。下面就说我学过的一些知识以及推荐的学习资料吧。

对于 MySQL,需要学的还挺多的,例如,

1、一条 sql 语句是如何执行的?进行更新时又是怎么处理的?

2、索引是如何实现的?多种引擎的实现区别?聚族索引,非聚族索引,二级索引,唯一索引、最左匹配原则等等(非常重要)

6、数据库的主从备份、如何保证数据不丢失、如何保证高可用等等。

还有一些常用命令也要知道。

我觉得,只要你了解了以上的原理,那么对数据库调优的帮助是非常大的,上面除了第六点,其他五点,在应届生的面试中,极其高频。

推荐书籍:连 sql 都不会写的,推荐《SQL必知必会》,接着推荐《MySQL技术内幕:InnoDB存储引擎》。

这里我必须推荐下极客时间的一个专栏:《MySQL实战45讲》,讲的非常好,看完应付面试,我觉得够了,我每次面试 MySQL 几乎都加分,离不开这个专栏。如何你想要购买,可以在我的公众号回复『数据库』,我会给你发对应的购买链接(注意,这个可不是广告哈,大家买不买看自己)

数据结构与算法,我就不想多说了,看我文章的都知道,我写的文章 80% 是数据结构与算法相关的,重要性不用说。我秋招最大的优势估计就是数据结构与算法的掌握了。上面三门课程的学习,基本也都是离不开数据结构的,对于如何学习数据结构与算法,我觉得可以在写一篇文章了,所以数据结构与算法的学习,我这里不写了,可以关注我的文章,我明天会写一篇与算法相关的。

论面试,我觉得 操作系统+计算机网络+数据库 + 算法 这三个是问的最多的,所以我写的比较详细,对于学习计算机基础,不为了面试的话,我觉得下面的也及其重要。我分出来说,是为了那些要急着面试的人,可以重点学习下上面这四个。

我觉得,如何有时间,学习下汇编是必须的,学习了汇编,能够更好着帮助我们知道计算机是如何处理程序代码的,例如寄存器和内存是如何使用的?循环、函数调用、数组是如何实现的?地址是怎么一回事?等等。

很多二进制代码是可以反编译成汇编的,如何你会汇编,那么可以帮助我们更好着去理解一些东西。所以这里建议大家学习下汇编,并且要动手写一些程序。

对于汇编的资料,我可能没啥好推荐的,自己看的不多。看过两本书,对于入门的,我建议看 王爽的那本书《汇编语言(第三版)》,不过这本只适合入门,如果想继续,可以看《汇编程序设计》。

说实话,编译原理还挺难,反正我觉得很难,不过有时间我觉得可以学学,学了这个你可以知道我们的编译器如何分析我们的代码的,例如词法分析,语法分析,语义分析等等。当然,你未来可能会自己写个特定分析代码的编译器也不一定,这个时候,就更加需要学了。

对于学习的资料,我觉得可以看视频 + 书。视频的话中国 mooc 大学搜索即可,书的话,说时候,我也看的不多,只看过学校指定的教材,所以这里给不了多少建议,自己当当自行搜索,哪本热门卖哪本勒。

暂时先介绍这么多吧,说实话,学了这些,不单单是多学了一门知识,更重要的是可以提升你的罗辑思维,给你带来更多的 idea。在之后我的公众号里,我也是主要写计算机基础 + 算法。而这些,是值得每一个程序员去学习的,无论你是什么岗位。而且知识知识学了之后,你去学习其他知识,我相信可以上手的更快滴。

THE END
0.电脑小知识:计算机基础知识盘点(小白入门篇)★★★博文创作不易,我的博文不需要打赏,也不需要知识付费,可以白嫖学习编程小技巧。使用代码的过程中,如有疑问的地方,欢迎大家指正留言交流。喜欢的老铁可以多多点赞+收藏分享+置顶,小红牛在此表示感谢。★★★ ---电脑小知识集合--- 电脑小知识:Windows常用的快捷键整理 电脑小jvzq<84yyy4489iqe0ipo8hqpvkov8761372;87213865:=:6a725B<:37<80|mvon
1.计算机基础学习(非常详细)零基础入门到精通,收藏这篇就够了计算机伦理:了解计算机使用中涉及的道德和伦理问题,如隐私保护、知识产权等。 七、程序设计基础 编程语言:了解常见的编程语言(如C、C++、Java、Python等)及其特点和应用领域。 程序设计方法:学习基本的程序设计方法,如结构化程序设计、面向对象程序设计等。 jvzquC41dnuh0lxfp0tfv8Ocxciiklmk1cxuklqg1fkucrqu13:4796963
2.生活常用电脑入门基础知识大全生活常用电脑入门基础知识有哪些?如今,电脑已成为人们办公的主要工具,不管从学习、工作还是娱乐都成为日常生活的重要组成部分。下面就让小编带你去看看生活常用电脑入门基础知识大全,希望能帮助到大家! 新手入门最全电脑知识干货一、电脑软硬件基础知识 1、CPU型号怎么看? jvzq<84yyy4489iqe0ipo8hqpvkov8761272385714=72<>:;:4tj}rn
3.Python入门学习指南分享python这篇文章主要为大家详细介绍了Python入门的学习指南,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 对于初学者,入门至关重要,这关系到初学者是从入门到精通还是从入门到放弃。以下是结合Python的学习经验,整理出的一条学习路径,主要有四个阶段 NO.1 新手入门阶段,学习基础知识 jvzquC41yy}/lk:30pku1jwvkerf1:8:32>/j}r
4.学习电脑零基础入门8、学习简单的安全防护知识:了解如何保护自己的电脑不受病毒和恶意软件的侵害,学习如何进行基本的系统维护和清理。 9、参加培训课程:如果自学遇到困难,可以参加一些电脑基础培训课程,通过专业老师的指导来提高自己的电脑技能。 以上就是电脑零基础入门的一些基本步骤,希望对你有所帮助。jvzquC41yy}/vniw0et0pxygu1::6<>70jznn
5.零基础学电脑从入门到精通:视频自学版.pptx零基础学电脑从入门到精通:视频自学版 演讲人 2011-11-11 01 如何获取云空间资料 ONE 如何获取云空间资料 02 1 电脑并不难学,多玩就能会 ONE 1 电脑并不难学,多玩就能会 1 1.1 怎样选择适合自己的电脑 2 1.2 使用电脑的注意事项 3 1.3 开机、关机相关操作 4 1.4 鼠标的正确握姿和使用方法 5 1.5 数码设备的连 jvzquC41o0hpqt63:0ipo8mvon532;7129851?6673;13952268267xjvo