很多人工作后痛感计算机基础知识的缺乏, 那计算机基础知识都有哪些呢?

我觉得首先计算机专业的那六大件:组成原理,操作系统,数据库,编译原理,计算机网络,数据结构(这个说太多遍了,这次不再讲了), 其次还得加上分布式的基础知识, 因为现在的系统都变成分布式的了。

如果你是做应用层开发的,那几门课程中的有些内容和日常工作关联度不大,我挑那些最重要的来说一说,也算是一个最小集合吧!

1、计算机组成原理

如果你不是做操作系统/驱动程序的,直接和硬件打交道的机会很少,因为操作系统已经把他们屏蔽掉了,提供了抽象的API给我们使用。

但是还必须理解冯诺依曼体系的结构,CPU和内存,硬盘,各种外设之间的关系,寄存器、缓存等知识。CPU有哪些指令,如何执行这些指令,如果实现数组,结构体,函数调用,这就涉及到汇编的知识。像原码,反码,补码,定点数、浮点数的表示和运算也是编程中必备的知识,几乎每种语言都要涉及。

现在很多语言都是在虚拟机上运行的,你只要是了解了计算机的组成原理,再去看哪些虚拟机,就会发现概念都是相通的。另外CPU中的缓存,缓存一致性协议,DMA的异步思想都会在应用层中有所体现。《编码》是一个更加科普性,但是也更加有趣的讲组成原理的书。

2、操作系统

操作系统是比较枯燥的, 站在应用层的角度,我认为重点是掌握操作系统对外提供的抽象,包括进程、线程,文件,虚拟内存,以及进程间的通信问题。几乎所有的编程语言都会涉及到对多进程或者多线程编程的支持, 特别是多线程的并发编程,所以必须得搞明白他们的本质是什么,线程都有哪些实现方式。得真正地体会到“进程是资源分配的最小单位,线程是调度的最小单位。” 这句话的含义。

几乎所有的编程语言都会涉及到锁和死锁,最好在最底层理解锁是怎么实现的。需要理解虚拟内存和物理内存直接的关系,分段和分页,文件系统的基本原理。对于进程的调度,页面分配/置换算法,磁盘的调度算法,I/O系统,我认为优先级比较低。

3、计算机网络

必须要理解的是这些:

①什么分组交换。

②TCP可靠性传输原理,TCP/IP的协议细节, 三次握手,四次挥手,TCP状态转换。

③几个重要的协议DHCP,UDP, ARP, DNS。

④能够说出一个客户端如何在接入网络以后,通过这些协议,跨域网络和服务器通信的。

⑤和应用层结合非常紧密的Socket知识和网络安全(对称加密,非对称加密,Hash, 数字签名,以及集大成者Https)

⑥至于网络层的路由选择算法,链路层的各种协议,我认为优先级比较低。

以上这些知识,在你学习Redis ,Ngnix, Tomcat, LVS等软件时将有极大的帮助。

4、数据库

这个和日常工作结合极其紧密,不用我再多说,包括最基本的MySQL,各种范式,事务及其隔离级别,事务的实现方式,索引及其实现方式,B+树等等。

5、编译原理

你一辈子也许都不会去写一个编译器,但是很有可能会利用现成的工具去生成/操作一个抽象语法树(AST),甚至可以会写一个DSL(领域特定语言)。所以你得理解词法分析、语法分析、语义分析,中间代码生成,代码优化这个基本编译的过程。

6、分布式的理论知识

由于现在的系统慢慢地变成了分布式, 所以又扩展出了很多相关基础知识需要学习:

01、数据复制与一致性

CAP理论, BASE原则,幂等性, 2PC, TCC,Paxos , Raft , Gossip

02、数据分片和路由

Hash分片:Hash取模(实际中非常常见的算法), 虚拟桶(Redis使用),一致性Hash(memcached使用)

7、总结

最后想说的是,不能带着特别功利的目的去学习这些基础,不能想着立刻、马上就应用到实战中,从中获益。更重要的理解掌握它们背后的思想!

编辑推荐:

欢迎关注网站微信公众号:「面试大全」

计算机基础知识整理 世上最全,IT小白必看:计算机基础知识整理大全相关推荐

  1. 计算机基础cpu知识,CPU基础知识: DIY装机小白必看的CPU知识扫盲

    CPU也就是中央处理器,全拼为Central Processing Unit,在计算机中可以比喻成人的大脑.它是一块超大规模的集成电路,是一台计算机的运算核心和控制核心.它的功能主要是解释计算机指令以 ...

  2. 计算机cpu的相关知识,电脑硬件知识:DIY小白必看的CPU知识扫盲 (全文)

    CPU也就是中央处理器,全拼为Central Processing Unit,在计算机中可以比喻成人的大脑.它是一块超大规模的集成电路,是一台计算机的运算核心和控制核心.它的功能主要是解释计算机指令以 ...

  3. Neo4j 小白必看的电影知识图谱(Movie Graph:Try Neo4j with live data)

    Neo4j 电影知识图谱 Movie Graph初探 前言 1. 创建Graph 2. 查找Data 3. 查询Relation 4. 解决方案 前言 使用实时数据尝试Neo4j,演示常见查询模式的完 ...

  4. Python 基础入门大合集,新手小白必看!

    Python 入门 一.第一个 Python 程序 >>> print("Hello world!") 二.变量和简单数据类型 >>> mess ...

  5. 计算机基础知识整理 世上最全,计算机基础知识整理[世上最全]

    010在线为您甄选多篇描写计算机基础知识整理[世上最全],计算机基础知识整理[世上最全]精选,计算机基础知识整理[世上最全]大全,有议论,叙事 ,想象等形式.文章字数有400字.600字.800字.. ...

  6. 计算机硬件知识硬盘,DIY硬件知识:小白必看的硬盘基础知识大全

    硬盘是DIY硬件最为重要的存储设备,如果没有硬盘,虽然能够点亮机器,但是你不能进入系统并且保存任何资料文件.众所周知,目前主流的硬盘类型有两种,一种为机械硬盘,另一种为固态硬盘,固态硬盘是目前最流行的 ...

  7. matlab 预设变量大小,新手必看MATLAB基础知识2:基本数据操作(其一):变量和赋值...

    大家好,今天小尼比继续来给大家讲解和MATLAB有关的知识,在<新手必看MATLAB基础知识1:MATLAB操作界面与MATLAB设置>中,有人评论留言,提出了"有点看不懂这些操 ...

  8. 通俗易懂计算机知识,内存条是什么 有什么用?小白必看内存知识扫盲 通俗易懂!...

    我们日常使用电脑系统.软件.游戏等都是安装在硬盘中的,那么内存条是什么,到底有啥用?下面本文将通过通俗易懂的理解,来跟大家说说这个电脑内存条,希望大家看完以后心里都能有个谱,这几乎是史上最通俗易懂的内 ...

  9. 如何选择一台高性能计算机,【小白必看】如何选购电脑?

    原标题:[小白必看]如何选购电脑? 作为21世纪现代人,电脑早就成为我们生活和办公的"标配"了!工(wang)作(yin)狂(shao)人(nian)质量君也是一天都离不开它. 但 ...

  10. stm32正常运行流程图_STM32单片机学习笔记(超详细整理143个问题,学习必看)...

    原标题:STM32单片机学习笔记(超详细整理143个问题,学习必看) 1.AHB系统总线分为APB1(36MHz)和APB2(72MHz),其中2>1,意思是APB2接高速设备 2.Stm32f ...

最新文章

  1. Makefile总结
  2. qt linux 串口eventdriven,详解 Qt 串口通信程序全程图文 (1)
  3. 计算机系统基础:磁盘调度知识笔记
  4. php引号变量_下列PHP数据库insert语句中变量前后的点和双引号有什么作用?
  5. linux block挂io,linux:在qemu中运行自编译内核:VFS:无法在未知的wn-block(0,0)上挂载root fs...
  6. TCMalloc:线程缓存Malloc以及tcmalloc与ptmalloc性能对比
  7. WebView 简介
  8. 其实你的领导也有中年危机
  9. [笔记] 《Windows网络编程(第2版)》
  10. android 模拟器 锁屏,锁屏桌面全模拟 Android 4.0伪装教程
  11. java前后端分离(增删查改)
  12. php 图片裁剪后保存,php – 如何保存裁剪的图像
  13. HTML表格表格标签的属性
  14. 工业级路由器和家用路由器的区别_工业级路由器和家用路由器有何区别?
  15. Mr.Alright--- Android 11(R)桌面文件夹预览布局类似9宫格的实现
  16. 抖音直播带货gmv是什么意思?丨国仁网络资讯
  17. 常见的弱口令爆破工具
  18. 论文阅读 Adaptive Consistency Regularization for Semi-Supervised Transfer Learning
  19. Blender新手入门试水作品:Low poly版敲击兽
  20. WIN10管理员权限设置、更改用户名被“拒绝访问”

热门文章

  1. PADS2007小技巧收集----本人总结
  2. unity3d 挂载脚本_Unity3D加载资源的四种方式
  3. python grasshopper_Grasshopper操作shp
  4. win98万能显卡驱动_万能显卡驱动下载
  5. 抖音计算机音乐的id,抖音卡点音乐叫什么名字 抖音卡点bgm介绍
  6. Android仿miui11风格,华为手机适配MIUI11图标风格主题-适配EMUI9.1/9.0
  7. 网站的版面设计,商业Web站点设计策略,网站CI形象设计,网页色彩的搭配
  8. BXP因为时间错误而丢失license的修复方法(转)
  9. JavaScript入门到精通,需要掌握的技能盘点
  10. 惠普打印机故障代码_HP激光打印机常见故障代码