计算机基础知识的最小集合

集合论导引:最小无穷传递集合 集合论导引:最小无穷传递集合 关键词: 集合论 最小无穷集合 传递集合 无限序数 阅读详情

码农翻身的老读者们估计要烦了: 老刘真是老了,怎么老是在这里啰嗦计算机基础?

没办法,问的人特别多, 我还是要再啰嗦一次,希望这是最后一次。

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

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

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

计算机组成原理

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

但是还必须理解冯诺依曼体系的结构,CPU和内存,硬盘,各种外设之间的关系,寄存器、缓存等知识。

CPU有哪些指令,如何执行这些指令,如果实现数组,结构体,函数调用,这就涉及到汇编的知识。

像原码,反码,补码,定点数、浮点数的表示和运算也是编程中必备的知识,几乎每种语言都要涉及。

现在很多语言都是在虚拟机上运行的,你只要是了解了计算机的组成原理,再去看哪些虚拟机,就会发现概念都是相通的。

另外CPU中的缓存,缓存一致性协议,DMA的异步思想都会在应用层中有所体现。

如果能找一本书,尽可能多的囊括这些知识的话,我觉得还是神书《深入理解计算机系统》的前4章, 我之前还对它写过一个书评,在这里: 为什么说《深入理解计算机系统》是一本神书?

《编码》是一个更加科普性,但是也更加有趣的讲组成原理的书。

操作系统

操作系统是比较枯燥的, 站在应用层的角度,我认为重点是掌握操作系统对外提供的抽象,包括进程、线程,文件,虚拟内存,以及进程间的通信问题。

几乎所有的编程语言都会涉及到对多进程或者多线程编程的支持, 特别是多线程的并发编程,所以必须得搞明白他们的本质是什么,线程都有哪些实现方式(对以后学习各种语言和并发模型有极大好处)。 得真正地体会到“进程是资源分配的最小单位,线程是调度的最小单位。” 这句话的含义。

几乎所有的编程语言都会涉及到锁和死锁,最好在最底层理解锁是怎么实现的。

需要理解虚拟内存和物理内存直接的关系,分段和分页,文件系统的基本原理。

对于进程的调度,页面分配/置换算法,磁盘的调度算法,I/O系统,我认为优先级比较低。

计算机网络

我认为必须要理解的是这些:

什么分组交换

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

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

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

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

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

还有一个重要的知识点,一般的网络书都没提,就是I/O多路复用,涉及到同步/异步,阻塞/非阻塞,select/epoll ,这个是很多软件的基础,在《Unix网络编程》,《深入理解计算机系统》中有讲述。

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

数据库

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

编译原理

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

学习了编译与原理,会对语言的一些设计有更深的理解,比如LISP。

分布式的理论知识

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

数据复制与一致性:

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

Paxos , Raft , Gossip

数据分片和路由:

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

范围分片

最后想说的是,不能带着特别功利的目的去学习这些基础,不能想着立刻、马上就应用到实战中,从中获益。更重要的理解掌握它们背后的思想,有一天你会发现:奥,这个问题我在哪里见过,可以用类似的办法来解决啊!

640?wx_fmt=png

知识星球终于回归了,开门优惠一天压压惊。

原价149,今天仅需99元,平均每天2毛多,即可加入我的专属小密圈,和来自腾讯、阿里、京东、滴滴、IBM、SAP等大厂的各路大神一起讨论技术,分享职场经验,组队读书,刷leetcode,学英语......  还免费赠送15个计算机基础知识的视频。

详细介绍猛戳:我在知识星球这一年

我在知识星球等你:

640?wx_fmt=png

【QGIS】【OsGeo4w】安装方法 every blog every motto: You will never know unless you try 0. 前言 因为目前要使用QGIS,然而环境配置就整了大半天,哎,进行简单记录,方便自己方便他人。 一共分为两种方式安装: 独立安装包 网络安装包(下载osgeo4w-setup) QGIS提供了不同的版本: 长期发行版(LTR) 最新版(LR) 开发人员版本(DEV,母版或测试版) 说明: 本文推荐第二种 1. 正文 1.1 下载osgeo4w 下载链接 下载完成: 1.2 阅读详情

相关推荐

国产麒麟系统中的PaddleOCR离线绿色部署:高效安全的文字识别新纪元

摘要:本文详细介绍了PaddleOCR在银河麒麟V10SP1系统上的离线部署方案。通过Conda虚拟环境隔离依赖,采用离线包安装方式实现无网络部署,支持80+语言识别。重点讲解了模型量化剪枝优化、多线程处理等性能调优技巧,并提供了完整的OCR识别代码示例。该方案具有数据本地化处理的安全优势,适用于医疗票据数字化等对隐私要求严格的场景,同时解决了模型加载失败、内存不足等常见问题。

墨夶的博客 1227

数据库/范式

给定关系模式R<U,F>,U={ABCXYZ},F={AB->Y,C->BX,BX->A,B->X} 求Fmin 试问属于R的关系是第几范式 写出分解算法,将R分解为3NF并保持函数依赖和具有无损连接性 求最小化基本集的方法如下: 一般直接从题目所给的FD集合开始推,先将右边有多个属性的FD分解,然后删去集合中能被其他FD推出来的FD;对于左边有至少两个以上属性的FD,例如本题中的AB->Y,将其分为A->Y(或B->Y),观察A->Y(或B-

corn6的博客 2841

用AI免费制作30分钟电影:完整工作流与实操解析

AI视频生成技术正大幅降低影视创作门槛,但真正制作一部完整电影并非一键生成,而是涉及剧本、分镜、画面、配音、剪辑的复杂流水线。理解其基本原理,是将文本转化为连续视觉叙事的关键。对于创作者而言,掌握角色一致性控制、素材批量管理、免费额度合理分配等技术价值,能有效避免生成结果崩坏与资源浪费。该能力可广泛应用于短视频创作、独立电影预演、教学演示等场景。本文以30分钟AI电影制作为例,拆解从工具选择到成片输出的全流程,重点分析免费方案下的时间与积分成本,以及最容易翻车的环节,并给出基于实践验证的排查与优化策略。

weixin_29056865的博客 319

数据库系统基础教程二:关系数据库设计理论

在前一篇里介绍了关系代数,本节将基于关系代数说明关系数据库设计的理论。其中函数依赖作为基础部分,在模式设计的约束中引入各种范式及其应对的问题。         3.1 函数依赖         关系设计理论使人们可以根据少数简单的原则来检验一个设计并进行改进。设计理论规定了作用在关系上的约束,最常见的约束为函数依赖FD。         3.1.1 FD的定义         关系R上的函

zzulp的专栏 3595

DPO(Direct Preference Optimization)实战全流程指南

《DPO实战全流程指南》摘要 本文提供了端到端的DPO(直接偏好优化)实战方案,包含数据准备、模型训练、评估部署全流程。核心内容包括: 数据构建:推荐UltraFeedback等高质量数据集,提供数据预处理代码 训练配置:基于HuggingFace TRL库的DPO实现,详解beta值等关键参数调优 工业优化:显存节省技巧(LoRA、梯度检查点)、领域自适应方法和在线学习架构 效果评估:量化对比显示DPO可降低86%有害回复率,提升24%用户满意度 常见问题:针对灾难性遗忘、过度安全化等问题给出解决方案 附

技术引领业务创新 1466

激光SLAM算法性能对比:在Ubuntu20.04上实测Point-LIO/FAST_LIO2/Faster-LIO的运行效果

本文在Ubuntu 20.04平台上对Point-LIO、FAST-LIO2和Faster-LIO三款激光SLAM算法进行了深度实测与性能对比。通过量化分析绝对轨迹误差、CPU/内存占用及单帧处理延迟等核心指标,结合室内外场景数据,为高精度测绘、服务机器人及自动驾驶等不同应用场景提供了清晰的选型指南和实战调优建议。

weixin_28335283的博客 368

数据库求最小依赖集【自用】

开局一张图,内容全靠蒙。???? 三个步骤: 1、右切,把箭头右边的元素都变成一个 2、规则最小化,看看有没有能去掉的 3、左边最小化,看看箭头左边的元素能不能简化 留个视频(以后忘了再看) 数据库必考习题2--最小依赖集(偷的 B站UP主 小谢Student 的视频) ...

游坦之的博客 1632

ClickHouse集群扩容实战:用clickhouse-copier搞定数据迁移与分片重平衡

本文详细介绍了使用clickhouse-copier工具实现ClickHouse集群从3分片到5分片的平滑扩容实战。通过分片级并行处理、原子性保证等核心机制,该工具能高效完成数据迁移与分片重平衡,同时保持服务连续性。文章涵盖集群拓扑规划、表结构检查、迁移配置、执行监控及迁移后优化等关键步骤,为大数据量场景下的ClickHouse扩容提供完整解决方案。

weixin_29091837的博客 292

关系数据库设计理论

  一、关系数据库模型关系模型是一种基于表的数据模型,以下为关系学生信息,该表有很多不足之处,本文研究内容就是如何改进它:下面是一些重要术语:1.属性(attribute):列的名字,上图有学号、姓名、班级、兴趣爱好、班主任、课程、授课主任、分数。2.依赖(relation):列属性间存在的某种联系。3.元组(tuple):每一个行,如第二行 (1301,小明,13班,篮球,王老师,英语,赵英,7...

Calcular的博客 1万+

N32串口DMA接收不定长数据:空闲中断与DMA通道的协同处理

本文详细解析了在N32系列MCU中,利用串口空闲中断与DMA通道协同处理不定长数据的核心机制与实战方法。通过剖析空闲中断的触发时机、DMA的配置要点以及两者协同工作的关键时序,提供了避免数据错乱的避坑指南和完整的代码实现,旨在帮助开发者构建高效、可靠的嵌入式串口通信子系统。

weixin_29191669的博客 122

【CloudCompare教程】017:点云快速全局配准

点云数据的配准分为基于特征(特征点、特征线)的拼接和无特征拼接。特征点匹配的方法和全局ICP的方法。特征点的方法通过全局特征匹配达到全局配准,全局ICP的方法通过对变量空间进行搜索的方法达到全局最优解。

智慧空间实验室 3929

[DP][容斥原理] BZOJ 4762: 最小集合

DescriptionDescription定义一个非空集合是合法的,当且仅当它满足以下两个条件。 1、集合内所有元素andand和为00。 2、它的非空子集中仅有它本身满足11。 给出一个集合SS,求它的合法非空子集数。 n≤1000,ai≤1024n\le1000,a_i\le1024SolutionSolution设f(S)=⋀a∈Saf(S)=\bigwedge_{a\in S}aSaS_

Vectorxj的博客 924

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

计算机基础知识_计算机基础知识的最小集合

码农翻身的老读者们估计要烦了:老刘真是老了,怎么老是在这里啰嗦计算机基础?没办法,问的人特别多,我还是要再啰嗦一次,希望这是最后一次。很多人工作后痛感计算机基础知识的缺乏,那计算机基础知识都有哪些呢?我觉得首先计算机专业的那六大件:组成原理,操作系统,数据库,编译原理,计算机网络,数据结构(这个说太多遍了,这次不再讲了),其次还得加上分布式的基础知识,因为现在的系统都变成分布式...

weixin_39626369的博客 476

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

计算机基础中哪些知识最有用,计算机基础知识的最小集合

来自:码农翻身(微信号:coderising)很多人工作后痛感计算机基础知识的缺乏, 那计算机基础知识都有哪些呢?我觉得首先计算机专业的那六大件:组成原理,操作系统,数据库,编译原理,计算机网络,数据结构(这个说太多遍了,这次不再讲了), 其次还得加上分布式的基础知识, 因为现在的系统都变成分布式的了。如果你是做应用层开发的,那几门课程中的有些内容和日常工作关联度不大,我挑那些最重要的来说一说,也...

weixin_39705069的博客 323

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

2021-01-10

软基部分基础知识 1.什么是计算机软件? 计算机软件是计算机应用程序、程序所用的数据以及有关文档资料的合集。软件=程序+数据+文档。 2.软件按照功能分为系统软件、应用软件。 1).系统软件是直接协调与控制计算机、通信设备与其他有关外部设备的软件。紧靠硬件。在用户与计算机连接的第一层。 2).应用软件是用户通过系统软件而开发编制的用于解决各类实际问题的软件。位于计算机软件层的最外层。 ...

m0_52047108的博客 181

2012网易校园招聘笔试题

第一部分(必做):计算机科学基础 1、长为N的字符串中匹配长度为M的子串的算法复杂度是() A.  O(N)  B. O(M+N)   C. O(N+logM)  D. O(M+logN) 答:B 分析:我查了查,O(M + N)。KMP能做到。 这里:http://blog.youkuaiyun.com/meixr/article/details/6456896 2、以下

GOON 2224

网易2012校园招聘笔试题目

第一部分(必做):计算机科学基础 1、长为N的字符串中匹配长度为M的子串的算法复杂度是() A. O(N) B. O(M+N) C. O(N+logM) D. O(M+logN) 答:B 2、以下排序算法中,哪些是稳定的排序算法(多选)() A.冒泡B.插入C.合并D.希尔E.快速排序 答:ABC 3、以下是一颗平衡二叉树,请画出插入键值3以后的这颗平衡二叉树。 ...

weixin_30496751的博客 128

计算机二级公共基础知识笔记

计算机二级公共基础知识 计算机系统 考点一:计算机概述 1.计算机的发展历程 目前公认的第一台电子数字计算机是ENIAC,它于1946年在美国宾夕法尼亚大学研制成功。 根据计算机本身采用的物理器件不同,将其发展分为4个阶段 第一阶段是电子管计算机时代,时间为1946年到20世纪50年代 第二阶段是晶体管计算机时代,时间为20世纪50年代后期到50世纪60年代中期 第三阶段是中小规模集成电路计算机时代,时间是20世纪60年代中期到20世纪70年代初期 第四阶段是大规模和超大规模集成电路计算机时代,时间是20

m0_52802869的博客 1万+

计算机基础知识

一、计算机基础知识 1 计算机的几个重要概念 1.1 位:表示信息的最小单位,是存储信息的最小单位,用来表示一位二进制信息(0,1),b—>bit(比特)。 1.2 字节:八位二进制信息称为一个字节,字节是计算机处理信息的最小单位,计算机中以字节为单位存储和解释信息,以B(Byte)表示。 1.3 字长:一个字所包含二进制数的位数,例:10000111字长位8。 1.4 存储单位的转换: 1KB=1024B 1MB=1024KB 1GB=1024MB 2 计算机系统概述

weixin_52584462的博客 1万+
上一篇: 考研到底值不值得?
下一篇: 深度评论 | 雷军这么努力,为什么小米还是干不过OV
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值