CS From the Ground Up [0] – An Introduction

/ 0评 / 0

如果要问我在大学里究竟学了什么,我想最好的方法就是向费曼学习,围绕着所学展开的话题写一些内容。

当我们说自底向上的时候,我们必须划一个界限,让这个底不至于变成无底洞——毕竟,我的课程并不包括把沙子烧成单晶硅、在单晶硅上构建晶体管等非常神奇的内容。所以这个底,我们还是划在数字电路上比较好。

数字电路,但是暂时不包括高频电子电路部分,尽管无线网络本身是依赖于高电的,因为我也恰好没有这门课,很遗憾。

这个将会是一个非常非常大而且相互交错的系列,所以只标数字容易跟丢。我将为每个子话题标记一个字母,再缀加一个数字作为标号。

目录

要涵盖的内容是真的多,某种意义上这就是毕生所学了。这个目录仍然会随着之后内容的发布而更新。

A - 架构与运维

  • A0 - Architecting
  • A1 - Load Balancing
  • A2 - Redundancy and Backup
  • A3 - Scalability
  • A4 - Journaling and Monitoring
  • A5 - Incident Resolution
  • A6 - Continuous Integration and Continuous Deployment
  • A7 - Application Isolation
  • A8 - Robustness of Services
  • A9 - Human Error Prevention

B - 电路与硬件部分

  • B0 - Where the Circuit is Built
  • B1 - Logic Gates
  • B2 - Reading Datasheets
  • B3 - Sequential Logic
  • B4 - Buffers and Storages
  • B5 - Sum of the Parts
  • B6 - Fetch-Execute Cycle
  • B7 - Flag Register
  • B8 - Arithmetic Operations
  • B9 - Branching
  • B10 - Peripherals
  • B11 - Race Condition
  • B12 - Timings and Glitches
  • B13 - Pipeline
  • B14 - Branch Prediction

C - 编译

  • C0 - Compilers
  • C1 - Regular Expression
  • C2 - Context-free Grammar
  • C3 - Dumb Assembler
  • C4 - Pseudo-instructions
  • C5 - Machine Code Optimizing: Trimming Unreachable Code
  • C6 - Machine Code Optimizing: Trimming Ineffective Operations
  • C7 - Machine Code Optimizing: Out-of-order Execution
  • C8 - Intermediate Representation
  • C9 - LL, LR and LALR Grammar
  • C10 - Syntax and Semantics
  • C11 - Variables and Assignments
  • C12 - Branches
  • C13 - Loops
  • C14 - Subroutine
  • C15 - Functions
  • C16 - Scopes
  • C17 - Inclusion of Other Files
  • C18 - Macros
  • C19 - Static Typing System
  • C20 - Iterator
  • C21 - Generics
  • C22 - Metadata
  • C23 - Library and Linking
  • C24 - Reflection

D - 数据管理

  • D0 - Data Management
  • D1 - File Systems
  • D2 - Indexing a String
  • D3 - Relations in Data
  • D4 - Sorting a List
  • D5 - Indexing a List
  • D6 - Relational Database
  • D7 - Transactions and Eventual Consistency
  • D8 - Associative Array
  • D9 - Documents and Sets
  • D10 - Sorting a Set
  • D11 - Indexing a Set
  • D12 - Non-relational Database
  • D13 - Immutability and Concurrency
  • D14 - Key-value Storage

G - 计算机图形

  • G0 - Computer Graphics
  • G1 - Video Signals
  • G2 - Implementing a Graphics Card
  • G3 - Drawing Pixels One Clock at a Time
  • G4 - Drawing Lines and Rasterization
  • G5 - Filling Areas
  • G6 - Drawing Circles
  • G7 - Rotate and Resize
  • G8 - Into a 3D World
  • G9 - Path Tracing
  • G10 - Normals and Normal Maps
  • G11 - Vertex-based Shading
  • G12 - Motion Blur
  • G13 - Depth of Field

L - 机器学习

  • L0 - Machine Learning
  • L1 - Linear Algebra Recap
  • L2 - Simple Neural Network
  • L3 - Gradient Descend
  • L4 - Features of Data
  • L5 - Convolutional Neural Network
  • L6 - Long-Short-Term Memory Network
  • L7 - Alchemy of the Data
  • L8 - Generative Network
  • L9 - Genetic Algorithm
  • L10 - The Score of the Game
  • L11 - Generative Adversarial Network
  • L12 - The Imitation Game
  • L13 - Pattern Matching and Reasoning

M - 数学部分

  • M0 - Computer in Math
  • M1 - Turing Machine
  • M2 - Lambda Calculus
  • M3 - Typing
  • M4 - Finite State Machine
  • M5 - Stack Machine and Register Machine
  • M6 - Incompleteness of Logic
  • M7 - Formal Verification

N - 计算机网络

  • N0 - Computer Networks
  • N1 - Network Interface Card
  • N2 - Layers of Protocols
  • N3 - Ethernet
  • N4 - Internet Protocol and User Datagram Protocol
  • N5 - Transmission Control Protocol
  • N6 - Address Resolution Protocol
  • N7 - Internet Control Message Protocol
  • N8 - Domain Name Resolution Protocol
  • N9 - Other Related Application Protocols

O - 操作系统

  • O0 - Operating Systems
  • O1 - Basic Input/Output System
  • O2 - Simple Memory Management
  • O3 - Task Scheduling
  • O4 - Macro-kernel and Micro-kernel
  • O5 - Inter-task Operations
  • O6 - Task Privileges
  • O7 - Paging and Virtual Memory
  • O8 - System calls
  • O9 - File Systems
  • O10 - Userspace Programs
  • O11 - Bootstrapping
  • O12 - Overcommitting
  • O13 - Threading
  • O14 - Deadlock Prevention

S - 数据结构(与算法?)

  • S0 - Data Structure
  • S1 - Memory Model
  • S2 - Linear Container
  • S3 - Semi-linear Container
  • S4 - Hierarchical Container
  • S5 - Discrete Container
  • S6 - Complexity of Code
  • S7 - Time-Space Tradeoff
  • S8 - Generators and Streams
  • S9 - Purity of Functions
  • S10 - Lazy Evaluation and Result Caching
  • S11 - Dynamic Programming
  • S12 - More on Recursive Calls

T - 一般技巧

  • T0 - Tips for Git Gud
  • T1 - Coding Style
  • T2 - Reusing Snippets
  • T3 - Divide and Conquer
  • T4 - Human Compatibility
  • T5 - Documenting a Code
  • T6 - Testing and Debugging
  • T7 - Assumes Nothing, Asserts Everything
  • T8 - Build Your Knowledge Base
  • T9 - Meet Arbitrary Deadlines*

V - 计算机视觉

  • V0 - Computer Vision
  • V1 - Colour Space
  • V2 - Edge Detection
  • V3 - More Experiments with Convolution Cores
  • V4 - Colour Blob Tracking
  • V5 - Optic Flow
  • V6 - Feature Tracking
  • V7 - Panning Solver
  • V8 - Rotation Solver
  • V9 - Scale Solver
  • V10 - Combining Solvers
  • V11 - Depth Perception
  • V12 - Rolling Shutter and Global Shutter
  • V13 - Compensate for Distortion
  • V14 - Handwritten Glyph Recognition
  • V15 - Face Recognition

X - 密码

  • X0 - Encryptions
  • X1 - Simple Ciphers
  • X2 - Stream Ciphers
  • X3 - Block Ciphers
  • X4 - Symmetric Ciphers
  • X5 - Asymmetric Ciphers
  • X6 - Authentication and Trust
  • X7 - Key Distribution and Negotiation
  • X8 - Secret Distribution
  • X9 - Side-Channel Attack
  • X10 - Social Engineering
  • X11 - Post-quantum Ciphers

那么,祝好运!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Your comments will be submitted to a human moderator and will only be shown publicly after approval. The moderator reserves the full right to not approve any comment without reason. Please be civil.