Computer science learning path

My number #2 learning path.

Learning goals:

  • Unlock potential to solve complex, challenging problems.
  • Give me opportunity for properly organize the architecture of program/computing system.
  • Make world better with efficient written programs, which solve human problems.

Computer science is closely related to programming learning path.

High-level topics

Optional Extra Topics & Resources

  • System Design, Scalability, Data Handling
  • Additional Learning
    • compiler
    • Emacs and Neovim
    • Unix commands
    • information theory
    • Parity & Hamming Code
    • Entropy
    • cryptography
    • Compression
    • computer security
    • garbage collection
    • Parallel Programming
    • Messaging, Serialization, and Queueing Systems
    • A*
    • Fast Fourier Transform
    • Bloom Filter
    • HyperLogLog
    • Locality-Sensitive Hashing
    • van Emde Boas Trees
    • Augmented Data Structures
    • Balanced search trees
      • AVL trees
      • Splay trees
      • Red/black trees
      • 2-3 search trees
      • 2-3-4 Trees (aka 2-4 trees)
      • N-ary (K-ary, M-ary) trees
      • B-Trees
    • k-D Trees
    • Skip lists
    • Network Flows
    • Disjoint Sets & Union Find
    • Math for Fast Processing
    • Treap
    • Linear Programming
    • Geometry, Convex hull
    • Discrete math

Cheat sheets, glossaries, outlines

Resources