Today, I got up late at night to watch the World Cup qualifier against France vs Spain, and a fan letter from the @ programmers on Sina Weibo reads as follows:
XXXX: Good staff, I am 12 college students, read a can also university, but the study of the major I do not like, because I am more introverted and exclamation of the magic of programming, so I would like to enter this line, but I went to interview a few after found that even the internship position also need some foundation, Although the university has learned C language but feel also basically can not use, those interview unit is suggested I go to learn this knowledge to go to him again, but I again to these training institutions are not too relieved, afraid to spend a large amount of tuition results are not good, Now I am a little confused do not know should go to find other jobs (the talent market is a lot of sales and some of the factory posts) or to learn, I hope the general staff to give me some guidance, thank you very much.
After reading, there are some feelings. As a graduate school of Computer Science, the first job is software development, and then in the field of consulting and sales for many years, and then back to the development of the field of old code farmers, I was very understanding of the classmate's tangled mood. But it's not enough to keep a job going, and if you can't always do things better than the people around you, your enthusiasm will fade away and you'll start to wonder if your decision is right and whether your insistence is meaningful. So, my advice is to give yourself a period of time to lay a good foundation, but also through this process to verify the wisdom of their decisions, even if the final answer is no, learn some programming techniques will also help to develop their own analysis of the idea of the problem.
Well, speaking of the subject, how does a computer professional student lay the groundwork for becoming a programmer? I suggest that you take the following steps: 1. Learn a programming language. Any language can be, in fact, Python is very suitable for beginners, there is a book called "Learn Programming with children" is it. But considering step 2, choose a popular teaching language, such as C + + or java. 2. Very, very, very, very, very, very, very, very seriously, learn the course of data structure. Your ability as a programmer is largely determined by your accomplishments in this area. 3. Learn discrete mathematics, the emphasis is higher algebra, mathematical logic, set theory, graph theory, it is best to learn the probability theory. The essence of computer science is discrete mathematics, how can you really understand the concepts of vectors, logical operations, shortest paths, coloring algorithms, without mastering these knowledge? 4. Make a small project of your own, and use whatever you learn as much as you can. This will not only show the recruiter your skills, but also a process of understanding the knowledge, only to do a project, the knowledge you have learned to really become the technology for your mastery.
Some people see here may say, the code farmer is familiar with the programming language, learn so many irrelevant and why.
The old man played a less appropriate analogy, discrete mathematics and data structure like a martial arts master of the internal strength, programming language is the moves. The internal strength is not good, even if will many moves, may frighten the martial arts general the person, but encounters tough these huaquanxiutui does not use, will die very miserably. Unfortunately, many people do not attach importance to internal strength, many computer professional graduates even stack and queue is how to do not know, not to mention the binary tree, linked list, diagram structure. No matter what needs come up, define a few large arrays, and you can count on him to compile more efficient code. For example, now the Internet hot big data, algorithm efficiency is the core problem, if who whole an O (n^2) algorithm, believe that the boss cut him down minutes.
Besides, learning a programming language is easy, proficient is difficult, difficult to understand its essence. There are a lot of developers are keen on the latest technology, playing NoSQL today, tomorrow to engage in HTML 5, said, but not in-depth, never really did not understand the essence of these technologies, can not make a play their real advantages of the products. This is often because the internal strength and mentality is very impetuous. (Add an article: "Ye Zhengxing: Once again to our impetuous programmers") but programmers speak by code, but they have no value in talking about a technology at all. Linux and Git's father Linus Torvalds said: "Talk is cheap. Show me the code. (Empty talk is worthless.) Take a look at your code. So I want to say, as a programmer, do not first practice good skills can not write elegant code, this is not far away.
How to learn it. These do not need to spend a lot of money to training institutions, and from my interview many training school students performance, most people learned even the concept of MVC did not understand, spend half a year to learn the If...else, why to spoil the money it. Now some universities have to attend the credit courses, spend hundreds of yuan to listen to a course, can also hand in homework to do experiments (such as: http://zhidao.baidu.com/question/245256206.html). Suggest you choose the best school as far as possible, not only the teacher level is high, the key is schoolmate's high level will impel you to have the higher request to oneself, this and the training school atmosphere is completely different.
If you do well in the above 4 steps, then you should be able to get some opportunities in the field of code farming, and the rest depends on the performance and accumulation of your work. The practice of code farming is a long-term process, and new technologies appear every year in the computer field. If you do, you have to live to learn old, doomed to a lifetime of bitter XI. If you like the feeling, then your choice may be the right one.
Article author: @ Old code Agriculture's plots
Article Link: http://blog.jobbole.com/36918/