From: http://blog.csdn.net/tangl_99/article/details/4785550
In the United States, many foreign students seem to like to compete for computer science jobs. Everyone said that computer is a major for migrant workers. Any student who studies mathematics, biology, and even physical chemistry can easily take this course, then, I kicked off the computer science students born in the course and got the offer. I am not very familiar with the situation on the US side, but I have learned from China that many people who are very familiar with computer science are not from the class. After all, computers have now become consumer goods for the masses, and the threshold is low. You can learn from a PC by buying a few more books. The experiment also involves download of online data, and then a small program such as MATLAB and VB can run and run. Unlike biology, chemistry, physics, and so on, strict and expensive experimental equipment is required. However, there are many disciplines, such as mathematics, graphic design, modern literature, and even PC
No, I can do it with a pencil or White Paper. Isn't it more migrant work?
If you think about the domestic industry, or the academic circle that knows non-class writers, the knowledge system may be more or less flawed,
Although they have done a good job in some areas. I have known many IT industry friends when I was studying in China. For example, a friend, a Jun, is a liberal arts student in his own science, but he is fond of computers. After graduation, I learned J2EE by myself. From basic web development, JSP, to large JBoss and lightweight spring, they are all proficient. I have even learned how to develop a large number of multi-process programs in Linux. The excellent communication mentioned here is not an on-paper discussion. It will back up books and test standards. A Jun's proficiency is based on actual product development on real large servers. In this way, it is too conservative to earn a monthly salary of 1 and 2 W in China. However, he has never been able to follow up with students of his class in computer theory. At the beginning of his cooperation with him, he found that he would do almost two things in dealing with actual optimization problems.
The second is the hash index. Due to the lack of in-depth knowledge about algorithms, data structures, operating systems, and other theories, many optimization strategies are such a well-taught strategy. In case of actual problems, it may not be effective. A truly qualified computer student in the course class should be able to analyze the buffer based on actual problems, the average time complexity and space complexity of hash indexes. As a gentleman comes from the liberal arts class, it is enough to solve the problem of combining mathematical expectation with probability. Naturally, I cannot understand the in-depth algorithm analysis. Fortunately, with his infinite interest in computers, he gradually improved his knowledge system.
Similarly, in the ivory tower, many students who want to learn mathematics are also planning to compete for a computer job. For example, I know B Jun. Before I went abroad, I was a good student in the Mathematics Department. My score was one of the best. I also studied optimization theory. I should say that I was the closest to computer science in mathematics. It wasn't long before Mr. B came to us to target jobs in the IT industry. During his studies, Mr. B also successfully applied to intern of computer science and worked as an intern at the company as a CSER. B Jun is very strong in mathematical analysis theory, and will also use MATLAB and some C ++ coding. However, when the actual software development, product design, and large-scale data processing needs to be optimized, it involves a lot of database and operating system knowledge and finds it difficult for you to adapt. For example, why is the bottleneck in the actual system
Are all databases? Why is the clustered index in the database fast? Why should we read data in sequence? Why do I need to use asynchronous I/O and how to use it... A series of problems, such as the lack of operating systems, databases, and network background, make B feel at a loss. As we all know, optimization of these things in actual application environments is often more important than Optimization in mathematical computing. Lack of basic practical knowledge to optimize the theory, many of which are in the air. After all, CS is an application discipline, and it is meaningless to study it without practical application.
In fact, there are also many people who are not from the class and finally learn better than from the class. However, the amount of sweat they put in private is also considerable, not as the saying goes, it can easily grab the it rice bowl. Even if it is easy to grab, it is not a good job. For example. There are many vocational and technical training schools in China, and many users can quickly train an artist to teach 3dmax. However, those who are able to become art directors in major game companies and design the original paintings have always learned graphic design from the university. The artist's design must be based on the basic colors, sketches, and diagrams. It is not just a little 3dmax.
From my own feelings, if I really want to study CS well, I need to continuously learn all kinds of basic mathematical knowledge and professional courses from my undergraduate course to my master's degree, at the same time, we also need to constantly develop various projects to obtain engineering experience. Computer science is a fairly comprehensive field. It is really not easy to have the same mathematical mind as a scientist and a system mind as an engineer. Even csers who are from the technical class can only highlight one of them. However, students born from the cool class really do not have to fear foreign competitors. God gave everyone 24 hours a day. If we encounter a problem of learning mathematics, we can compare it with him. If we encounter a problem of engineering, we can compare it with them in mathematics. If both of them are very good, you will not lose your life.