People often say you don't need to know any math to program a computer and that's truthy
Any sufficiently advanced technology is indistinguishable from Magic but magic isn't real
Math Explains It All
Developers often avoid learning math because it looks scary but it actually makes complicated magic like computer graphics and neural networks easier to understand
Understanding math unlocks the secrets of the entire physical Universe
There's a few abstract math concepts for programmers that you just can't ignore and understanding them will make you think more like a true engineer
The first person who survives until the end and cracks the code will win this one of a kind Balenciaga fireship hoodie
Boolean
A binary variable that can have two possible values: true or false
Boolean operators
And
Or
Not
Conjunction
And operation
Disjunction
Or operation
Negation
Not operation
Boolean logic example
If you're both rich and handsome you'll definitely get a girlfriend
If you're not rich and not handsome you'll have to pay for an only Fan's girlfriend
If you're rich or handsome you can still get a girlfriend but your selection is more limited
Boolean logic can be represented with Venn diagrams and truth tables
Numeral system
A system for representing numbers
Base 2 (binary)
The numeral system used by computers, where each place is multiplied by 2
Base 10 (decimal)
The numeral system commonly used by humans, where each place is multiplied by 10
Base 16 (hexadecimal)
A numeral system that uses the digits 0-9 and A-F, where each digit represents 4 bits
Base 64
A numeral system that uses 64 characters to represent binary data as text
Floating-point numbers
A way to represent very large or very small numbers by using an exponent
Floating-point numbers can have rounding errors due to the limited precision of the representation
Logarithm
The inverse of exponentiation, representing how many times a base number must be multiplied by itself to get a target number
Binary logarithm
A logarithm with base 2
Common logarithm
A logarithm with base 10
Set
An unordered collection of unique values
Intersection (inner join)
The set of elements common to two sets
Union (full outer join)
The set of all elements from two sets
Difference
The set of elements in one set that are not in another set
Discrete math
The study of mathematical structures that have a finite number of elements
Combinatorics
The study of counting and enumerating discrete structures
Graph
A collection of nodes (vertices) connected by edges
Directed graph
A graph where the edges have a direction
Undirected graph
A graph where the edges have no direction
Weighted edge
An edge with a numerical value assigned to it
Cyclic graph
A graph where a node can be reached from itself by traversing edges
Acyclic graph
A graph where no node can be reached from itself by traversing edges
Big O notation
A way to express the time and space complexity of an algorithm
Constant time (O(1))
An algorithm that takes the same amount of time regardless of input size
Linear time (O(n))
An algorithm where the time taken is proportional to the input size
Quadratic time (O(n^2))
An algorithm where the time taken is proportional to the square of the input size