diff --git a/math.md b/math.md index cf5a2f6..53a3d59 100644 --- a/math.md +++ b/math.md @@ -8,4 +8,19 @@ On the other hand, one does not have be a math PhD in order to be a great progra ## Overview -TODO \ No newline at end of file +Following are some areas of math one, as a programmer, should be familiar with: + +TODOOOOOOOOOOOOOOOOO + +- **basics** (high-school level math): arithmetic, expression simplification, equations, geometry, trigonometry, systems of linear equations, quadratic equations, [complex numbers](complex_number.md), logarithms, ... +- **advanced notation**: ability to understand the notation that's often used in papers etc. (the big sigma for sum etc.) +- **formal [logic](logic.md)**: computers are based on Boolean logic, knowing basic formulas and theorems here is crucial (e.g. the completeness of [NAND](nand.md)), formal logic is also just generally used in formal texts, one should know about predicate vs propositional logic, the notation symbols, etc. +- **[linear algebra](linear_algebra.md)**: aka "vectors and matrices", essential in many fields such as [graphics](graphics.md) and [machine learning](machine_learning.md). +- **[calculus](calculus.md) and differential equations**: just essential for advanced math and many fields (graphics, physics, machine learning, electricity, physics, any optimization, ...). +- **theoretical [computer science](compsci.md)**: [computational complexity](computational_complexity.md) (very important), [computability](computability.md), [formal languages](formal_language.md), computational models ([automata](automaton.md), [Turing machines](turing_machine.md), ...), ... +- **number and set theory**: sets of numbers (natural, rational, real, imaginary, ...), [prime numbers](prime.md) (important e.g. for [cryptography](cryptography.md)), ... +- **discrete math**: basic structures such as [groups](group.md) and [fields](field.md) and their properties. +- **[signal processing](signal_processing.md)**: [Fourier transform](fourier_transform.md) and other integral transforms (important e.g. for [compression](compression.md) and analysis of signals), [aliasing](aliasing.md), filter theory, ... +- **[numerical methods](numerical.md)**: for simulations and approximations of solutions to problems we can't solve exactly. +- **[probability](probability.md)/statistics**: encountered practically everywhere but very important e.g. in [cryptography](cryptography.md). +- **other**: things important in specific fields, e.g. [quaternions](quaternion.md) (graphics, physics), [lambda calculus](lambda_calculus.md), [game theory](game_theory.md), ... \ No newline at end of file