计算机基础

想象一下,你在字节跳动的面试间里,面试官问:"HTTPS 为什么安全?TCP 三次握手过程中,如果第二个数据包丢了会发生什么?"

这些问题,本质上都在考察你的 CS 基础。

很多人以为"计算机基础"只是校招才会问的东西。错。大厂社招一样会问,而且问得更深——他们想知道你写的代码在操作系统层面是怎么跑的,你的系统设计为什么会选择 TCP 而不是 UDP,你的系统为什么会遭受 XSS 攻击。

计算机基础不是背的,是理解透才能答活的。 这套内容,就是用最直观的方式,带你把 OS、计网、数据结构与算法、安全四大模块全部过一遍。

【直观类比】 CS 基础就像建筑的钢筋水泥框架——你看不见它,但它决定了你的系统能盖多高、能承多少重量。框架没打牢,代码写得再漂亮也只是"纸糊的楼"。


知识全景

本模块覆盖四大核心领域:

模块内容定位核心目标
数据结构与算法cs/algorithm/理解每种结构的适用场景,能分析时间/空间复杂度
计算机网络cs/network/理解协议设计原理,能回答"为什么是这样"而不是"是什么"
操作系统cs/os/理解进程/线程/内存/IO 模型,能说清底层机制和生产表现
安全基础cs/security/理解常见攻击原理和防御策略,能在系统设计中规避安全风险

学习路径指引

第一步:理解框架,而非记忆结论

CS 基础最忌讳的就是死记硬背。比如 TCP 拥塞控制,很多人能背出"慢启动→拥塞避免→快速恢复"四个阶段,但面试官追问"为什么要有慢启动?初始窗口能不能直接设大?"就直接哑火了。

正确的学习方法:先理解问题背景(当时解决的是什么问题),再看方案设计(为什么这么设计),最后才是机制细节。

第二步:用类比建立直觉

每个知识点都有对应的现实类比。比如:

  • 进程 vs 线程 → 工厂 vs 车间
  • 虚拟内存 → 图书馆借书系统
  • TCP 流量控制 → 水管阀门
  • 哈希冲突 → 抽屉里的物品挤在一起

建立直觉后再看源码和细节,事半功倍。

第三步:通过追问链检验

学习完每个模块后,用这套追问链自我检验:

  1. 怎么用? → 基本概念和使用场景
  2. 为什么? → 设计原理和取舍原因
  3. 边界在哪? → 极端情况、潜在问题
  4. 和生产有什么关系? → 线上表现、排查工具

模块详解

数据结构与算法 cs/algorithm/

从最基础的数组和链表开始,逐步深入到红黑树、B+树、跳表等高级结构。每一篇不讲空话,直接告诉你:什么时候用什么结构,为什么,怎么实现

核心文章:

计算机网络 cs/network/

HTTP/TCP/UDP 是面试高频区,但大多数候选人只能背出状态码和三次握手。真正的高手能回答"QUIC 为什么这么快"、"HTTP/2 的头部压缩是怎么实现的"。

核心文章:

操作系统 cs/os/

进程、线程、内存管理、IO 模型——这些是理解 Java 并发和性能调优的前提。比如你搞不懂 Epoll 和 Select 的区别,就永远说不清楚 Netty 为什么快;你搞不懂虚拟内存,就理解不了 JVM 堆外内存的问题。

核心文章:

安全基础 cs/security/

安全不是运维的事,是每个后端工程师的必备常识。SQL 注入、XSS、CSRF 这些攻击方式你可能听说过,但你知道怎么防御吗?你知道 JWT 和 Session 各自的优缺点吗?

核心文章:


面试关联

CS 基础不是孤立的知识点,它和 Java 高级面试紧密相连:


阅读建议

你的阶段推荐顺序
面试冲刺期优先看计网(HTTP/TCP)+ 常见安全漏洞,时间不够就从高频开始
系统学习期按 模块路径:数据结构 → 操作系统 → 计网 → 安全,逐个击破
查漏补缺期根据面试中被问到的薄弱点,对照目录定向阅读

记住:CS 基础没有捷径,理解 > 记忆。能用自己的话把原理讲清楚的,才是真正掌握的。