Wednesday, August 3, 2016

Fundamental Science for Programmers

Fundamental Science for Programmers

You all should understand in the world of concurrency there are a lot of "specialists" or "professionals" and specialists or professionals, they just like You - people, they know many techs, programming languages and frameworks and it is natural how can You outrun them - fundamental science knowledge.

For programming there is a math, if You good at it, then most probably You`ll be good with programming in any distance. 

As a programmer You MUST  know discrete math, here are the most important branches (without them programming is stupid and empty labor):

- graph theory

- set theory

- Boolean algebra 

- combinatorics

- functions 

- Relations 

- logic and proof


Also, You may wish to learn some aspects of Mathematical analysis - which will help You understand estimation of functions execution time and difficulty.

Probability theory - will definitely help You with any kind of task where You need to predict any state of anything, for ex.: caching of objects, game development, probability of data growth etc.

Physics - chips, micro-controllers, CPU, ram, transformers etc. You must learn how they work, what is a CPU clock speed, for example and how to calculate amount of operations computer or server can perform for any period of time. How many physical memory Your program needs to perform the task, for example You have a big data and need to sum/count all the data faster then a second it may take much longer if You won`t store the data partially in RAM to speed-up calculations.  


All these knowledge will help You to be confident about any decision You`ve made, for any architecture part in program.


No comments:

Post a Comment