How much should a programmer know math?

Published on July 29, 2018

How much should a programmer know math?

    Recently, I walked around the web and met very different opinions about whether a programmer needs a mathematician at all, and if so, how much. I will try to summarize and summarize everything.

    To begin with, it should be noted that mathematics is present almost everywhere in our life. Physics without mathematics is unthinkable - here, I think, everything is clear, and there is no need to explain. Chemistry too. In biology, the influence of mathematics is noticeably less, but even there it is present (take, for example, plant structures, many of them are quasi-fractals).Music can be represented in mathematical form. Unthinkable without mathematics design - necessarily present geometry - a branch of mathematics. Why, even a historian needs a mathematician (at least to count dates).

    True, there is one “but” here: what is mathematics in general? The question is not at all idle, because the question “how much one needs to know mathematics” is rather vague. Mathematics is a complex of sciences: the foundation itself is arithmetic, then algebra, elementary geometry, mat. analysis, analytical geometry. Its higher sections are discrete mathematics, Boolean algebra, topology, number theory (higher arithmetic) and many other sections, as well as probability theory and statistics. Now a more clear question arises: what does a programmer need to know from this?

    The first point is not discussed - arithmetic needs to be known, of course, to all people. Without it, it is impossible to make even the simplest program, and indeed no science is unthinkable without it.

    But then everything is a little more complicated - those sections of mathematics that a programmer needs are determined by the specification of what he writes. If you need to write a music studio a la Cubase - you need to know the physics of sound and the sections of mathematics associated with it. If we are talking about a graphic studio, it is professional to know the geometry (and if the studio is three-dimensional, then also topology and matrix algebra). And if we are talking about a three-dimensional game, then you need to know vector algebra and in addition Newtonian mechanics.

    Since programming is basically algorithms, any programmer should know very well the theory of algorithms, graph theory, Boolean algebra and discrete mathematics in order to write not just working programs, but well-working ones. Or better: very well working.

    So she needed or not?


    In general, I would say this: if, say, in ancient times, programming already existed, the programmer of that time would not just know mathematics well. Such a "programmer" would also know how to box, fence, arrange horseback riding, navigate, make, speak eight foreign languages, compose fugues and tokkats, knew what a hexameter was, wrote beautifully (with emphasis on A) pictures and much more . And sometimes he did it at the same time, and at such a speed that any modern "Intel Core" quietly smokes on the sidelines.