I hope you can read this article.ArticleMay reshape your programming path !!
I always believe that for a beginner, the technical trend in the IT field cannot catch up with and cannot catch up with it. I often see my ddmm throwing away textbooks and selling expensive big numbers such as C # and VB. NET, which makes me very sad. However, I think it is funny to have a lot of discussions about the usage of pointers in C.
C # Just like ASP in the past, "suddenly like a spring breeze, a thousand trees and a thousand trees bloom". As a result, the information colleges of many schools have become "web colleges ". Many college students at the 9th and 97 levels are engaged in the web. Of course, I have no awareness of discrimination against a certain industry. I just think that if they spend more time catching up with these trendy technologies on basic courses, they will be able to go further.
[Several misunderstandings]
A beginner's pursuit of the C # trend is actually only one of the several misunderstandings that often occur during the learning process. I will use some practical examples to illustrate these phenomena. You can step by step to see if you belong to one or more of them:
Assume that computer technology equals Programming Technology:
Some people have this impulse in their subconscious even if they do not have this idea. It is strange to me that many students in the Information School also think like this. I think that computer majors are programming majors, and they do not care about programming or irrelevant courses. Extreme students will not read it if there is no "programming" in the book.
In fact, programming is only a kind of labor with the lowest complexity in the application process of computer technology. This is why the people at the bottom of the IT industry areProgramCoder ). Computer technology includes multimedia, computer networks, artificial intelligence, pattern recognition, and management information systems. Programming work is expressed only in the process of these specific technologies in theoretical research or engineering practice.Algorithm. Programmers do not necessarily know much about computer technology. An interesting phenomenon is that many masters of computer technology researchers do not understand programming. The hype on the Internet and the good working conditions in the real world make programming the work mysterious. In fact, every programmer understands that they are not difficult to learn these things than other majors, so naturally they will not go anywhere.
[The style of the chew word kong has been :〗
I have met a girl's "Computer Network Principles" teaching material. This girl is full of books like a primary school student, and her notes are full. It must be thicker than the teaching material. What I don't understand is that it is necessary to take notes for courses like computer network principles? Our exam-oriented education has indeed affected many students. During the course "principles", many students recite their memories as if they had learned the principle of the column. This is the most stupid behavior I have ever seen. The so-called principle is the need to know why it is doing this, learn why, rather than how ). The maximum length of the Ethernet network cable, the length of the data frame, the meaning of each field, and the format of the IP header are ignored, I forgot the purpose of the TCP/IP protocol design. In short, many people spend a lot of time learning their books.
This is also true for these students when learning programming. They exactly remember the details of C ++ syntax. After reading the C ++ tutorial, read thinking in C ++ (indeed a good book), inside C ++, C ++ reference, this c ++, that C ++ ......, Then there were all sorts of anecdotes about the C ++ syntax on the internet, and I found myself forgetting some of the C ++ syntax, and finally I went back to the negative complement .... A younger brother told me, "C ++ is too difficult. I forgot to learn it here, and I forgot to inherit the template ." I replied, "It's easy if you don't study ". I didn't teach him anything, but I told him that the syntax of dead C ++ is just as meaningless as there are several methods of writing the word kong has shown off. You don't need to worry too much about the C ++ syntax at all. It's just a matter of hands-on programming. If you don't remember something, check msdn immediately. I have concluded that the understanding of program syntax in the actual development process is the most insignificant. This is why I spent only half an hour reading the syntax when I wrote a small program for my classmates using basic (I have never learned it before, then I completed the program in half an hour, and an hour later I completely forgot all the keywords of basic.
Disregard the basics and blindly catch up with fashionable technologies :〗
Finally, I came up with the question. Most people want their stuff to run right away and turn into money. This idea is reasonable for a programmer or project manager who has already entered the professional field, and IT technology advances so fast. If it is not followed up, it means unemployment. However, this idea is confusing for beginners (especially those with ample time. The biggest capital for a beginner who has not entered the competition in the industry is that he has enough time to learn basic things and learn why instead of how. Fashionable technologies are often easy to master and more easy to master. This is driven by commercial interests, in order to maximize the cost of software development. But the reality in the IT field is that the more things that are easy to grasp, the more people learn, and the faster the elimination. Every time new technology comes out, many beginners follow up. These beginners spend a lot of time in the follow-up process because they lack the necessary foundation, this technology is almost eliminated. Basic courses, such as data structures and operating system principles, cannot immediately implement a Linux (this is why many people laugh at the useless theoretical courses ), however, they can significantly reduce the learning curve slope when you are learning new technologies. Moreover, many key technologies (such as Win32 SDK program design and DDK programming) are even indispensable.
A living example is that one of my colleagues and I can't find the power-on button when I was a freshman. He has already written some simple assembler programs. I spent all my time on the course of assembly, computer architecture, data structure, operating system principles, and so on. He started to learn HTML and VB, and catch up with ASP. In my junior year, I started to learn about the operating system principles of windows and how to program using sdks. It took a long time to develop visual applications with VC. Once upon graduation, I was annoyed that my program was able to run and I was still learning how to create a dialog box. The company I negotiated with offered more than twice his salary. The following is an inappropriate example: Suppose it takes four months to study vbprogramming, and it takes one year to study basic courses and VC programming. So if you want to learn VB first and then learn the latter, the time will not be reduced, or one year. In turn, if you want to learn the latter first, then you will learn VB, maybe you only need one week to learn very well.
If you are a student or if you have enough time. I suggest you carefully master the following knowledge. My advice is for beginners who want to achieve something in IT technology. At the same time, I also listed some bibliography which should be available in the bookstore. To be honest, my biggest wish when reading other people's articles is to ask the author to list a book order.
[College English]-Don't laugh. I strongly recommend this course because it is unimaginable to have no professional document reading skills. Chinese translation is often made in the Year of the Monkey, Ma Yue, and many publishers now simply print e files. The learning method is to force yourself to read the original teaching materials. At first, you will not be able to understand them. It is definitely a quality that any industry needs.
[Computer Architecture and assembly language]-books on the architecture are everywhere and similar, but there is a very good book in compilation. 80x86 Assembly Language Programming Tutorial (Tsinghua University Press, black cover, Yang Ji Wen ). You need to focus on the programming of the 386 post protection mode. Otherwise, when you learn something at the bottom of the modern operating system, you will think that you are reading tianshu.
[Computer operating system principle]-our development is always performed on a specific operating system. If not, there is only one possibility: You can implement an operating system on your own. In any case, the operating system principle must be read. This is like we need to know the basic operating sequence of a chip when making a peripheral device for a chip. There are also many such books, and I have not found any outstanding book. I just think that if I have read these books, I should read "Inside Windows 2000" (Microsoft press, I am reading the E version, the Chinese name must be the inside story of Windows 2000 ). Another article on zdnet has discussed the necessity of learning it.
[Data structures and algorithms]-This course is a core course that determines the level of a person's program design. I prefer the Tsinghua edition (Zhu zhanli, Liu Tianshi ). Many people like to buy C ++, but I don't think it is necessary. The C ++ syntax makes the algorithm implementation process much more complicated, and many teachers prefer to use modules to make the algorithm more complex. It is best to browse the C ++ version after learning the C version.
[Software Engineering]-the more important this course will become, the more important it will be, even though it is just like watching Ma Zhe at the beginning. My suggestion is to read "Practical Software Engineering" (yellow, Tsinghua ). Don't take too much time to record the rules. If you don't understand them, you can jump over. Every time I finish a software design task (whether it's a practice or a job), I will review it and review it again.
[Windows programming]-by Petzold, Peking University Press. I suggest anyone who tries to design a Windows program finish learning VC carefully. In addition, it is best to put the previous "Inside Windows 2000" in the back of this book. In this book, there is no C ++, no GUI, and no controls. Some are how to use the original C language to complete the windows program design. After learning it, you will find that VC is easy to learn. Never study VC before you finish reading this book. Many famous schools I know even use it as teaching materials. It is important.
I think the above courses are essential (if you want to be a Windows programmer ).
There is a simple option for other courses: if you are in the computer department, please learn all your basic courses. If not, refer to the curriculum of the computer system. If you find that you cannot read a book, go to the end of the book, read its references, find them, learn them, and then look back at the book. If the title of a book contains the word "principle", you must not remember its details. You should master the essentials at least 50 pages a day. Practice a theory or algorithm on a computer as much as possible.
You can also read many book reviews on csdn. These book reviews help you decide what kind of books to read.
[Three provinces of Japan huji 〗
Reading too many books every day is easy to get lost. You must think about what you have learned, what you need to learn, what you are most interested in, and how long it takes to write a book. At the same time, you should also think about the most likely application in the future, so that you can not catch up with the technology trend, but lead the technology trend. At the same time, we strive to use the technologies and theories we have mastered to create new things. Sticking to this will make you truly a software "Developer", not just a coder.
Spend the most time on learning 〗
This is the last piece of advice for beginners. It is best to reduce the time spent on SC or CS every week without playing them. At the same time, if your ASP technology has been able to make money, or even some companies invite you to work part-time, this proves that your work in tianfen can guarantee you can achieve better benefits after hard work, you should do more complex things. Long term, which is applicable to anyone.
I believe you can decide whether to learn C # or when to learn it.