Do programmers need math?
The pioneer of Computer Science, the Dutchman Edsger Wybe Dijkstra, receiving the Turing Prize in 1972, said among other things that the asset of a competent programmer is a passion for mathematics. Even if the outstanding scientist exaggerated a little, the fact is that knowledge of mathematics has not yet prevented anyone from programming, on the contrary. On the other hand, being a good mathematician does not mean that you will also be a good programmer. However, let us start from the beginning-with higher education.
Computer science education and mathematics
We already wrote about the popularity of computer science courses in Poland in the article “does a programmer need to study?”. Now it is worth devoting a few words to mathematics as an element of training future programmers. Some universities attach great importance to this subject, others slightly less, however, mathematics in Computer Science always appearsespecially in the first two years. Students study such subjects as statistics and probabilistic methods, mathematical analysis, finite element methods, linear algebra, discrete mathematics, etc. Anyway, you have to pass math if you want to graduate.
Many people even claim that the so-called” first-year screening ” is most often done precisely because of mathematics. Who can not cope with this subject, says goodbye to studies. No wonder that many programmers have at least ambivalent attitude to mathematics. There is nothing to be deceived – if someone wants to do professional programming, he will not avoid contact with this field of science. Of course, this does not mean that in every case the mathematical issues come to the fore.
Where can you use mathematics, and where is it superfluous?
It is difficult to imagine a programmer without mathematical abilities, and especially logical thinking skills, which allows not only to absorb knowledge efficiently, but also to draw conclusions and efficiently analyze programming problems in search of their solutions.
Of course, the use of mathematics also depends on the position you occupy and the tasks you perform. For example in the development of web applications, a fluent knowledge of mathematics does not seem necessarybecause many processes have been automated and virtually all problems requiring mathematical knowledge have been solved. In this situation, the developer can only focus on implementing solutions and on optimization, and for this mathematics is not necessary. In principle, a basic ability to determine the complexity of algorithms is enough. Here you can easily make a whole career knowing only the basics of mathematics.
On the other hand, there are issues that require knowledge of the area of mathematics. I’m sure it will come in handy when creating computer games, when you need to implement various physical phenomena or program a graphics engine to generate 3D images.matrices and vectors are used in image analysis, algebra is useful in kinematics and in collisions. Mathematical problems also arise when writing very complex programs, when operating on a large number of data, when creating and testing algorithms. Analysis is also useful for optimization.
The area in which mathematics always occurs is data science, because probabilistics and statistics are often used there. Linear algebra is very useful for machine learning. In both areas, if you want to keep up with the latest trends, you need to understand a lot of mathematical issues. It will not always be possible to build on simple, already developed models-sometimes it will be necessary to resort to scientific work in order to know (and understand) new solutions. Meet the scientific article from nature about alpha go zero, or AI, which itself learned to play go. You’ll find that I can’t do it without math..
At Bulldogjob, however, we believe that knowledge has not yet harmed anyone, much less mathematical knowledge. Therefore, we agree that mathematics is necessary for a programmer, even if not every day. It simply helps to understand more abstract concepts and issues.