Let us return
By Mo Nan
My personal feelings, rough text, unorganized language, hope to forgive me a lot
I am a self-righteous person. I used to be naive: I think that my programming skills are not a master, so at least I am away from beginners, I have nearly 5000 lines of code programming experience, and I have also developed more than lines of code. I also show the code to netizens modestly, after receiving the encouragement from some advanced people, he was still modest enough to speak with others, and then he became proud of himself. In front of his classmates, talking about computers-even though they may not understand what I'm talking about, my goal is to make them feel that I have moved away from the secular world, came to the very high realm of programming .................. Now I want to come, I am so hypocritical, so naive, So ......... However, one day when I went to a bookstore, I still ran only to computer books. I found a thing that is well known in the computer industry but ignored by many people: computer theory knowledge!
That's right! Theory! You may say: The theory should be applied to practice ~ That's right !! Absolutely !! However, I would like to ask: how do you master the theory? Compilation Principle? Operating system? Data structure? Algorithm? How many people have dared to say they are familiar with these things? How can we guide these problems?
Therefore, I strongly suggest: let us return to the theory and apply it to practice.
It seems that many people have to think of Boring, boring, and useless theories. First, I declare that I absolutely oppose the best practices. We must realize that practice can indeed produce and test theories, but at the same time, theories can also guide practice! I don't want to discuss too many philosophical questions-I am not doing this-but I hope to wake people who are still immersed in the so-called "practice" through my articles.
I remember I once met a brother on the Internet. I was so arrogant that I claimed to be "Learning hackers with someone" (I was stupid and did not know how to learn "hackers, but this brother did.) When asked him: "What programming do you use?" He replied: "I am a hacker, not a program design "............ At that time, I only wanted to ignore this person, but it was because of face (he was a friend of mine ...... I really don't know what my friend's dating principles are ......) This is not the case. Afterwards, I asked him if he had read Richard's "TCP/IP details" (since he was a hacker, this kind of hacker Bible-level books that I have read even when I am stupid ......) He asked, "What is that ?" Afterwards, he said n or more words that completely do not comply with the basic principles (I really suspected that he was drinking at the time) and finally I was helpless and told him: "Let's take a look at some theoretical things. We don't want to intrude into any attacks, let alone how to use streaming light, and how to use glaciers to solve these problems ......" (In fact, books like "TCP/IP details" are not really computer theory books.) His answer is really strong: "theory? What can theory do ?" I was not wrong at the time-regardless of his face and face-he invited the "high man" to my blacklist ......
This kind of people really can't stand it. They are completely one-sided pragmatism (pay attention to my attribute: I think they are not practical). They just want to know: how should we solve this problem now, instead of thinking: Why is there such a problem, what is the root cause of the problem, and what is the principle? Are there any other problems based on the principle? And so on ~
There are also some people who are keen on the basic features of a specific language, and they are considering many very practical issues-these are good phenomena, as I did at the beginning,, they seem to ignore some things, such as program algorithms. Don't forget: algorithm --- the spirit of computing no matter how skilled you are in this language, no matter how many standard libraries and system functions you have, you will never write highly efficient programs without the importance of algorithms.
It seems that programmers are afraid of memory management errors: memory leaks, wild pointers, and so on, because they are hard to find out. However, the algorithm problems are more difficult than these problems: Maybe a program runs normally without errors and runs well, but if its algorithm is not perfect, so, maybe programmers will not find it for a lifetime.
Now it seems that we are ignoring the algorithm. Let's take a look at it: the RSA designer (Ronald L. rivest; Adi Shamir; Leonard M. adleman) honors this award, but how many media have reported this? Search by Google: "RSA Turing Award 2002" (the quotation mark is not a search keyword), with only 25 poor results ...... There are also some news irrelevant to this matter ...... What's wrong with everyone? Shouldn't we publicize this kind of computer affairs?
Let's take a look at our bookstore ~ I am a regular bookstore user. In addition to the capital Beijing, I should have a rich cultural heritage. What about computer books in the bookstore?
In a medium-sized bookstore, there are only a few bookshelves in Liao. What books are there? Let's take a look: the most is some Getting Started books, what Windows operations, five strokes, practical typing, and so on, followed by some image processing books: Photoshop flash and so on. Then there are some office software, web page production and the like: Office (about 95% of office software books are office ......) FrontPage. There are also system management, databases, and the like: Win2k System Management Linux System Management SQL and so on. There is also programming: Mainly some beginner books, 21 days to learn C ++ (I do not know how high the author is, 21 days to learn C ++ ......) The main thing is vb asp. By the way ~ There is also a very large group: Network Security. I can see a few useful books here: the truth about cryptography network security, what's more is the books read by the "one-sided Pragmatism": "hackers, just a few moves" (I admire the author, but I got such a strong title ...... To be honest, today's "hackers" seem to make them more suitable for hacking-that's just a few moves ......) I turned over those books and thought it was funny: I put the screens one by one in the book, and then I made a logo next to it to tell you: click this key ...... Instead of teaching "Network Security", it is better to teach basic Windows operations ...... The worst is the book on computer theory. Liao's book, a book on algorithm a few days ago, went to the bookstore to find three types of books ...... There are also some books on data structures, which should naturally introduce some algorithms. In total, there are only 6 types ...... As for compilation principles, operating systems are even more rare ......
In fact, such books as Richard's apue, "TCP/IP details", UNIX network programming, and "Computer Network" by Doug and Andrew's "C traps and pitfalls, it is absolutely classic and worth reading. However, books on data structures, compilation principles, algorithm design operating systems, and other theoretical aspects should also be emphasized. They are the true soul of computers, no matter how computers develop, if you can understand the theoretical knowledge of computers, you will easily go at the forefront of the times, just like: If you only know 1 + 1 = 2, then you will not make any additional questions, if you learn addition, you can solve this problem no matter how much or 1 + 1 + 2 1 + 3 is added ~