之前我们聊过 Shell、Git、数据结构这些 CS 基础,这次来补一个更底层的知识——TCP/IP 协议栈。不管你是做 Web 开发、写爬虫还是搞分布式系统,网络协议都是绕不开的。今天我们用学习笔记的方式,从上到下把四层模型过一遍,顺便用 Python socket 写个小程序加深理解。 一、TCP/IP 四层模型概览 你可能听过 OSI 七层模…
最近在整理数据库相关知识,发现 SQL 和关系代数这两个东西其实是同一枚硬币的两面。关系代数给你理论基础,SQL 给你实践工具。这篇文章就来聊聊这两个核心概念,算是我学习数据库的一份笔记。 什么是关系模型? 在聊 SQL 之前,我们先搞清楚关系模型(Relational Model)。这是 E.F. Codd 在 1970 年提出的,核心思想其实很…
学操作系统的时候,进程(Process)和线程(Thread)绝对是绕不开的核心概念。今天我们来聊聊这俩兄弟到底是什么、有啥区别,以及在 Python 里怎么玩多进程和多线程。 什么是进程? 简单来说,进程是操作系统资源分配的基本单位。当你双击打开一个程序(比如 Chrome),操作系统就会为它创建一个进程,分配独立的内存空间、文件描述符等资源。 …
之前我们聊过了 Transformer 架构和 PyTorch 框架的基础,今天来聊聊深度学习里的另一个经典架构 —— CNN (Convolutional Neural Network,卷积神经网络)。如果说 Transformer 是 NLP 领域的王者,那 CNN 就是计算机视觉 (Computer Vision) 的开山鼻祖。虽然现在 Vi…
写 Python 的时候,你有没有遇到过这种情况:明明一个简单的数据转换,却要写好几行 for loop + append?或者处理一个超大文件,内存直接爆了?今天就来聊聊 Python 里两个特别好用的语法糖:comprehension 和 generator expression。掌握它们,你的代码会变得更简洁、更高效、更 Pythonic。 …
在学编程的过程中,你一定听过「数据结构」这个词。简单来说,数据结构就是组织和存储数据的方式。选对了数据结构,代码写起来轻松,运行效率也高。今天我们来聊三个最基础、面试也最爱问的数据结构:Stack(栈)、Queue(队列)和 Hash Table(哈希表)。都是 Python 里天天用到的东西,搞明白它们的原理和时间复杂度,对写代码帮助很大。 一、…