An unpleasant title. I have been working for more than a year and have started to bring new people. When I hear someone older than me call me a mentor, I can't help but turn my eyes. I want to write some insights about what will benefit me if I go to college. First of all, let us clarify that we should never hear from some people who say that learning algorithms is basically useless at work, but learning it can train your thinking. Some technical personnel do not understand algorithms, but they are also accompanied by the success of the product-some people do not know about algorithms that can make a lottery. From a technical point of view, in today's big data era, the more core and upscale the job, the higher the requirements for algorithms. This is why big companies like to test algorithms most when recruiting students. Big companies like to train people themselves (rather than recruit other students, algorithms cannot go far. Why algorithms are important? In my opinion, there are two types of skills: one is commercially available, and the other is system learning. The latter is more valuable. Algorithms belong to the latter. For example, someone suddenly gave you a copy of java or perl code and asked you to add some features, even if you have never touched these languages, for a smart programmer, google's syntax is solved. But if someone gives you a piece of code, it will tell you that the recommendation engine is not very effective and has poor performance ...... For something that requires system learning, if it is your short board, it is extremely easy for you to go wrong in the process of solving the problem. Even if you split the problem very well, asking google or Daniel one by one won't be able to get a reasonable solution. After all, the problem is generally special and you can only grasp the global information on your own. For example, a colleague asked me a complicated matching question and thought I was confused, but after I understood his complete requirements, it is found that some useful information is lost when the matching problem is reduced, which can be solved directly in another way. Okay. In addition to algorithms, what else does the system need to learn? I think it is the composition principle and design pattern. The composition principle is the powerful back-up of algorithms. The program performance can be seen as the theoretical complexity of the algorithm multiplied by the hardware performance. Do not think that the latter is just a constant problem. When you schedule registers, memory, and hard disks, your program may even run to Improve the performance of common algorithms. In addition, we know that the [big data] era is accompanied by a high machine loss rate, and there is no way to ensure service stability without understanding the composition principle. I am ruined in college, and I have been making up for the principle of composition. Design mode. Without understanding the design pattern, you can only honestly write process-oriented code. Otherwise, your seemingly regular class will become devastating. But can you just play with process-oriented? No, because many open source artworks are object-oriented. However, for those who have not graduated, it is very difficult to understand the significance of the 23 models without a lot of engineering practices. The only way to solve this conflict is to do more. If you fail to do so, this will produce a huge advantage. Limited qualifications, do not continue to deepen.
For now, these three points are enough to bring down a large film.
Address: http://davidzai.blog.163.com/blog/static/187126212012629115654649/