Update
This commit is contained in:
parent
47934a4bdb
commit
48f8166921
17 changed files with 121 additions and 35 deletions
20
math.md
20
math.md
|
@ -1,24 +1,26 @@
|
|||
# Mathematics
|
||||
|
||||
Mathematics (also math or maths) is the best [science](science.md) (yes, it is a formal science), which deals with numbers, abstract structures and logic. In fact it's the only true science that can actually prove things. It is immensely important in [programming](programming.md) and [computer science](compsci.md).
|
||||
Mathematics (also math or maths) is the best [science](science.md) (yes, it is a formal science), which deals with numbers, abstract structures and logic in as rigorous and objective way as possible. In fact it's the only true science that can actually prove things. It is immensely important in [programming](programming.md) and [computer science](compsci.md).
|
||||
|
||||
[Soydevs](soydev.md), coding monkeys (such as webdevs) and just retards in general hate math because they can't understand it. They think they can do programming without math, which is just ridiculous. This delusion stems mostly from these people being highly incompetent and without proper education -- all they've ever seen was a shallow if-then-else [python](python.md) "programming" of baby programs or point-and-click "programming" in gigantic [GUI](gui.md) frameworks such as [Unity](unity.md) where everything is already preprogrammed for them. By Dunning–Kruger they can't even see how incompetent they are and what real programming is about and they think everyone just if-then-elses everything. In reality, this is like thinking that merely being able to read and write makes you someone being capable of being a great writer or that being able to drive a car makes you able to designs and construct cars. Such people will be able to get jobs and do some repetitive tasks such as web development or system administration, but they will never create anything innovative and all they will ever create will be ugly, [bloated](bloat.md) if-then-else solution that will likely do more harm than good.
|
||||
Some see math not as a science but rather a discipline that develops formal tools for "true sciences".
|
||||
|
||||
On the other hand, one does not have be a math PhD in order to be a great programmer in most fields. Sure, knowledge and overview of advanced mathematics is needed to excel, to be able to spot and sense elegant solutions, but beyond these essentials that anyone can learn with a bit of will it's really more about just not being afraid of math, accepting and embracing the fact that it permeates what we do and studying it when the study of a new topic is needed.
|
||||
[Soydevs](soydev.md), coding monkeys (such as webdevs) and just retards in general hate math because they can't understand it. They think they can do programming without math, which is just ridiculous. This delusion stems mostly from these people being highly incompetent and without proper education -- all they've ever seen was a shallow if-then-else [python](python.md) "[coding](coding.md)" of baby programs or point-and-click "coding" in gigantic [GUI](gui.md) frameworks such as [Unity](unity.md) where everything is already preprogrammed for them. By Dunning–Kruger they can't even see how incompetent they are and what real programming is about and they think everyone just if-then-elses everything. In reality, this is like thinking that merely being able to read and write makes you someone being capable of being a great writer or that being able to drive a car makes you able to designs and construct cars. Such people will be able to get jobs and do some repetitive tasks such as web development or system administration, but they will never create anything innovative and all they will ever create will be ugly, [bloated](bloat.md) if-then-else solution that will likely do more harm than good.
|
||||
|
||||
On the other hand, one does not have to be a math [PhD](phd.md) in order to be a good programmer in most fields. Sure, knowledge and overview of advanced mathematics is needed to excel, to be able to spot and sense elegant solutions, but beyond these essentials that anyone can learn with a bit of will it's really more about just not being afraid of math, accepting and embracing the fact that it permeates what we do and studying it when the study of a new topic is needed.
|
||||
|
||||
## Overview
|
||||
|
||||
Following are some areas and topics which a programmer should be familiar with:
|
||||
|
||||
- **basics** (high-school level math): arithmetic, expression simplification, functions, equations, geometry, trigonometry, systems of linear equations, quadratic equations, [complex numbers](complex_number.md), logarithms, analythical geomtery (many problems generalize to intersecions of N-dimensional shapes), [polynomials](polynomial.md) (used in many areas, e.g. error correction codes in networking), ...
|
||||
- **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).
|
||||
- **basics** (high-school level math): arithmetic, algebra, expressions, [functions](function.md), [equations](equation.md), geometry, [trigonometry](trigonometry.md)/goniometry, systems of linear equations, quadratic equations, [complex numbers](complex_number.md), [logarithms](lofarithm.md), analythical geometry (many problems are equivalent to relationships of shapes in N dimensional spaces), [polynomials](polynomial.md) (used in many areas, e.g. error correction codes in networking), ...
|
||||
- **advanced notation**: ability to understand the notation that's often used in papers etc. (the big sigma for sum, calculus notation etc.)
|
||||
- **formal [logic](logic.md)**: computers are based on [Boolean](boolean.md) 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 etc.
|
||||
- **[linear algebra](linear_algebra.md)**: aka "vectors and matrices", essential in almost every field ([graphics](graphics.md), [machine learning](machine_learning.md), ...).
|
||||
- **[calculus](calculus.md) and differential equations**: just essential for advanced math and many fields (graphics, 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), ...), ...
|
||||
- **[graph theory](graph.md)**: generally useful tools, especially important e.g. in networks or indexing structures in [databases](database.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.
|
||||
- **number and set theory**: sets of numbers ([natural](natural_number.md), [rational](rational_number.md), [real](real_number.md), [complex](complex_number.md), ...), [prime numbers](prime.md) (important e.g. for [cryptography](cryptography.md), [quantum computing](quantum.md), ...), ...
|
||||
- **discrete math**: basic structures such as [groups](group.md) and [fields](field.md), [abstract algebras](abstract_algebra.md) and the properties of these structures.
|
||||
- **[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).
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue