安静
返回赛道首页

计算机基础

操作系统 / 网络 / 数据结构

扎实的计算机基础,是所有技术能力的根基。

图文 · 01 / 04

操作系统基础

为什么重要

操作系统把代码变成 CPU 时间、内存空间和 I/O 动作。学它,是为了看懂程序为什么会卡、会崩、会互相等待。

核心点

  • 进程 / 线程:资源归进程,执行在线程;并发问题常来自共享状态。
  • 内存 / I/O:内存负责隔离与映射,I/O 慢通常慢在等待。
  • 系统调用:应用请求内核完成高权限动作,是安全和性能的边界。

学习/实践建议

  • 排查性能时只问四件事:CPU 忙吗?内存够吗?I/O 堵吗?线程在等谁?
图文 · 02 / 04

计算机网络与协议

为什么重要

网络决定程序之间如何找到、连接、传输和回应。学它,是为了把“请求失败”拆成可定位的问题。

核心点

  • 分层:应用层讲语义,传输层讲交付,网络层讲路径。
  • 地址与连接:IP 找机器,端口找服务,TCP/UDP 决定传输方式。
  • HTTP:方法、路径、Header、状态码和正文共同表达一次交互。

学习/实践建议

  • 定位问题时按顺序看:DNS、连接、协议、业务处理。
图文 · 03 / 04

常用数据结构

为什么重要

数据结构决定数据怎样被访问、查找、修改和组织。选对了,代码自然;选错了,后面每一步都绕路。

核心点

  • 数组 / 链表:数组擅长随机访问,链表擅长插入删除。
  • 栈 / 队列:用受限访问管理流程,适合撤销、排队和搜索。
  • 哈希表 / 树 / 图:哈希表找值,树管层级,图管连接关系。

学习/实践建议

  • 先判断访问模式:查找多、插入多、顺序多,还是关系多。
图文 · 04 / 04

算法思维与复杂度

为什么重要

算法不是为了背题,而是为了判断一个方案在数据变大后还能不能跑。学复杂度,是为了在写代码前先估算代价。

核心点

  • 输入规模:先问数据有多少,是 100、1 万,还是 1 亿。
  • 时间复杂度:看核心操作会重复多少次,循环嵌套通常意味着代价放大。
  • 空间复杂度:看为了提速额外占用了多少内存,哈希表常用空间换时间。
  • 边界条件:空数据、重复数据、极端数据,往往最能暴露算法问题。

常见误区

  • 只背 O(n)O(log n) 的名字,却不知道它们对应什么操作。
  • 看到双重循环就紧张,但不先判断真实输入规模。
  • 只追求最优复杂度,却把代码写到难以理解和维护。

学习/实践建议

  • 做题或写功能前先写一句话:输入规模是多少,最贵的操作是什么,能不能接受。
  • 如果一个方案太慢,优先想三件事:能不能减少重复计算?能不能提前结束?能不能用额外空间换时间?