计算机科学一条线:从晶体管到机器学习
分类:计算机基础 标签:二进制 / CPU / 数据结构 / 算法 / 机器学习
摘要
本文以一条主线串联计算机科学核心概念:从最底层的晶体管与二进制,经逻辑门、CPU、内存、编程语言、数据结构、算法、编程范式,一路讲到机器学习与互联网/数据库,帮助读者建立整体认知框架。
一、从 0 和 1 开始
CPU 是一块硅片,集成着几十亿个晶体管,每个就是一个开关:通=1,断=0。一个开关是一个比特(bit),8 个比特组成一个字节(byte)。二进制就此存下信息。
# 字符经编码转为二进制(ASCII 示例)
print(ord('A')) # 65
print(bin(ord('A'))) # 0b1000001
二、逻辑门、编码与内核
晶体管搭出逻辑门,组合成按布尔代数运算的电路。电脑只认机器码,字符靠 ASCII 等编码转二进制,调度这一切的是操作系统内核。
三、CPU 和它的内存
CPU 自身不存数据,需配内存。访问内存分四步:取指 → 解码 → 执行 → 存结果(一个机器周期)。现代 CPU 每秒跑数十亿周期,多核并行。
四、编程语言与内存管理
- 解释型(Python):逐行翻译执行;
- 编译型(C、Go):先整体编译成可执行文件。
变量存数值,类型分文本与数字。浮点数底层是二进制分数,无限小数只能截断:
print(0.1 + 0.2) # 0.30000000000000004
print(0.1 + 0.2 == 0.3) # False
C 需手动分配/释放内存(易段错误、内存泄漏);Python 靠垃圾回收兜底。指针存变量地址,可加减遍历内存,最灵活也最危险。
五、数据结构
| 结构 | 特征 |
|---|---|
| 数组 | 连续存储、读快、长度固定 |
| 链表 | 动态伸缩、需从头遍历 |
| 栈 | 后进先出(LIFO) |
| 队列 | 先进先出(FIFO) |
| 哈希表 | 键→索引,冲突挂链表 |
| 图 | 点关系,最短路径/导航 |
| 二叉树 | 左小右大,查找快 |
六、算法
函数进调用栈;递归无终止条件会栈溢出;记忆化缓存已算结果。效率看大 O(数据规模增长的消耗趋势)。二分查找每次砍半,远胜暴力枚举。
七、编程范式与机器学习
命令式(一步步教)与声明式(只要结果);面向对象将数据和行封装进类,靠继承、多态复用。规则写不出的任务(如识图认蜜蜂)交给机器学习:训练集/测试集训练模型,用损失函数衡量差距并迭代调参。
八、互联网与数据库
互联网是铺在海底的线缆网络,设备有唯一 IP,TCP 拆消息为数据包(网差丢包)。万维网之上:浏览器用 DNS 解析域名、HTTP 收发、HTML/CSS/JavaScript 构建页面,404 表示页面不存在。数据存关系型数据库:主键唯一标识一行,外键关联表,SQL 操作;SQL 注入是往查询塞特殊字符篡改逻辑。
结语
懂这些只是第一步。计算机这行光看学不会,得自己动手敲、亲见运行结果。每天碎片化学几分钟,胜过囤一堆课。
浙公网安备 33010602011771号