How important is math to you as a programmer?

 Everyone who graduates from the Department of Computer Science has taken a lot of mathematics courses, and the mathematics courses of the computer departments of many schools are usually more difficult than the mathematics of other engineering majors. For example, instead of taking advanced mathematics, they study mathematics. For analysis, go to advanced algebra instead of linear algebra. However, most of the people who become programmers after graduation, even those who graduated from the so-called famous computer department, most of them basically do not need to go to school in mathematics. Basically, half of their time is in CRUD, and the other half is in processing. All kinds of strings, linked lists, Hash tables, knowing that the time complexity of answering various sorting in the interview is the math they need.

  And when you were studying, although before going to college, there were many experts and laymen, old and young people who told you that mathematics is very important. However, generally speaking, students of computer departments in various schools, who like to learn, may also pay attention to language books such as "Thinking in Java", "C++ Primer", or architecture books such as design patterns, or Algorithms and data structures; and like me, who is lazy every day, doesn't take mathematics as an important course to study. Therefore, "Math is really important", this sentence seems to everyone, it is always just a sentence floating in the sky, and it drifts away with the wind.

  So, five years have passed, and the programmers have gained a lot of work experience. If it is not a programmer who has no pursuit of work and is waiting to die, for the language that works every day, whether it is Java or C++, it should be the same. Practice makes perfect, the so-called design patterns, refactoring, automated testing, etc. are also within reach. Most people have added Senior to their titles, and Niu Yidian probably followed a Manager. However, everyone began to think about it. A new question - "How about half after 30?". So, to change PM to PM, to take the civil service exam, like me, I still hold on to the simple idea of ​​"You see, the Rohit in the United States is 50, and it's not writing programs every day. There are fewer and fewer people. Then, even these people will sometimes feel that what they do every day is beyond CRUD. The so-called OO framework is also very boring physical work. Anyone who writes programs will do it for two years. As a result, many people went to sea to start their own businesses. After many years, most of these people will continue to come back to write programs for large and small companies, just like me, before they can earn money.

  In fact, cups often happen at the beginning. In fact, if we study hard, we will find that maybe mathematics is not that important for you to be a good programmer, but you have to go one step further, a little bit Technological innovation is all about mathematics. Two years ago, when I was working on a program with Configurator in T company, I began to realize this a little bit, so I spent a lot of time revisiting the mathematical logic at that time. This year, when I was looking at machine learning for my job after a new job, I finally found out that it was all mathematics. When you want to go beyond CRUD and do any little bit of innovative technology (not to mention products), the problems you have the most chance to encounter are actually mathematical problems. Although frameworks such as Spring to Hibernate to Rails, or distributed computing frameworks such as Hadoop and HBase are also major technological innovations, the programs of these frameworks are improved in stages. , and soon there will be a corresponding Best Practice, and it will become a skilled trader's work. The real solution to the problem domain is that there are some fresh ideas, ideas and solutions every day. These often have a mathematical threshold. So if you really like to write programs, and hope that you can always write more fun and difficult programs, one day, you will have to pass this hurdle.

  So I totally agree with who said that, if you just want to be a good programmer, math is not important; but if you want to be a great programmer, math is important. When you only have a hammer in your hand, everything you look at will be a nail. Think about it if you haven't learned algorithms and data structures, maybe most of your programs need to write and sort by yourself. Anyway, for most programs, under such a fast PC, this time difference, in most cases, is the time for you to pour a glass of water when you wait for the program to execute the test. But there are many fresh, fun and challenging problems, and if there are no mathematical concepts, I am afraid it is not time to wait for more water. And if you cross this threshold, you will find that a brand new world is in front of you again.

  Looking back, I said that mathematics is important, so what are important? What people often talk about is discrete mathematics, but the more popular direction of machine learning recently, the relevant materials I have seen so far rely heavily on linear algebra and probability theory, as well as a little bit of calculus. So, if you're like me and want to do some quest for technical work, start spending some time learning math. In fact, the beginning of everything is difficult. Maybe you, like me, feel dizzy when facing a bunch of formula symbols, but if you really have to press your heart, watch it for an hour, and stick to it for a week, you will actually find that it is not difficult. It's like learning a new programming language.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324446364&siteId=291194637