Ten years of learning programming (translation: cxsharp)

xiaoxiao2021-03-06  87

Ten years of learning programming

(Note: At http://blog.joycode.com/kaneboy/posts/14128.aspx sees incomplete translations, in http://www.norvig.com/21-days.html, feel good, translation For you to learn, pay please indicate the author. Thanks to Koffer and Echo help check, it makes the translation! Have a mistake, please advise!)

Why is everyone so urgently?

In any bookstore, you will see "7 days to learn Java" by a bunch of books to learn vb, windows, internet ... teaching in a bunch of books. I am searching in Amazon.com: pubdate: after 1992 and Title: days and (title: learn or title: teach yourself), received 248 books, 78 in front of computer books (79th "30 days Learn Bengali "). I used "Hours" to search again "Days" again to search, get very similar results: more than 253 books, then the 77th of the computer books, the 77th of this computer book, "Learn the grammar and the language within 24 hours", in front of 200 Inside the book, 96% is computer books.

What I got is - people are very eager to learn computer-related knowledge, or I don't know what is wrong, computer is incredible than anything else. But did not find a book about how many days learn to play Beethoven music, quantum physics, and even learn to raise a dog.

Let us analyze the meaning of book name like "3 days to learn Pascal":

Learn: In 3 days, you have no time to write a decent program at all, and there will be no experience in using the success or failure process of the programming. There will be no time to work with an experienced programmer, and it will not understand what the program is in the actual programming environment. In short, you don't have enough time to learn more. So this kind of book can only talk about some skin knowledge and will not let you understand. Alexander said that the skin is a dangerous thing. Pascal: 3 days maybe you can understand the syntax of Pascal (if you have a similar language), but you can't learn how to use such syntax. In short, if you are a Basic programmer, you will write Pascal code with a Basic style, but you won't understand what is the advantages of Pascal (or insufficient). Why is there such a view? Alan Perlis said: "The language does not affect your programming idea. It is not worth learning." Another point of view, you just learn very little knowledge of Pascal, because you just Such tools need to be used to complete a specific task. But you don't learn how to program; you just learn how to complete some specific tasks. 3 days: Unfortunately, as follows, this is not enough.

10 years of learning programming

Hayes, Bloom research shows that if you want to become an industry expert, you need 10 years of time, such as chess, composing, painting, playing piano, swimming, tennis, and studying neuropsychology. geology. This shows that there is no shortcut: even if Mozart, he has shown music talent at 4 years old, but he spent 13 years before he wrote world-class music work. Another example, the Beatles, it seems to be coming out in 1964, but in fact they started in 1957, and formed a band earlier, their first shocking record " SGT.PEPERS "(" Pace Army ") was issued in 1967. Samuel Johnson believes that 10 years may not be enough, "Excellence in any field is only available in the exhaustive effort, don't want to use less costs." Chaucer lamented "life is so short, and what is going to learn More. "Below is my suggestion for how to succeed in programming:

Keep your interest in programming and feel fun. Ensure that you have fun after 10 years. With other programmers, read other people's procedures, which is much more important than reading and training. programming. The best learning method is to do while doing. Use more academic words: "In a given area, the improvement of personal abilities will not be automatic, just like empirical, extending extensive experience, extension, but need special experience The people have grown very much. " "And for specific people, the most effective learning requires a good definition, a certain difficult task, which also has a wealth of information feedback, a chance to repeat and correct the error." Book "Cognition In Practice: Mind, Mathematics, And Culture In Everyday Life ("Understanding: Psychology, Mathematics, and Culture Every Day in Life") interesting proves this view. If you are willing, spend 4 years staying in the university (or staying at the Institute for a longer time). This will allow you to get the work that needs to be academic and will make you have a deeper understanding of this field. But if you don't like to go to school, you can also (do some contribution) get similar experience in your work. In any case, only book knowledge is not enough. "The New Hacker's Dictionary" ("New Hacker Dictionary" said, "Computer Science is not like painting, when learning brush and paint skills can become a professional painter, computer science education cannot make anyone a professional programmer.". One of the best programmers I hired only have a secondary school degree, but he wrote a lot of good software, with his own newsgroup, and because of the shares much more money. Do a project with other programmers. Do the best programmers in some projects, do the worst programmers in some other projects. If you are the best programmer, try to lead a project to improve your ability, through your vision to stimulate others. If you are a worse programmer, learn how other masters do, and do some parts they don't like (because they let them do these parts). Take a project after other programmers, because you need to understand that other people write procedures are tricky things. See how you understand and modify their code when the original author is not there. Consider how to design your program can make people who take over your program easier to understand. Learn at least 6 computer languages. A language that supports Class Abstractions (such as Java and C ), a language that supports Functional Abstract (such as LISP and ML), a language that supports SyntActic Abstract (such as LISP), a support for Declarative Specifications (such as Prolog and The language of the C template, a language that supports Corordines, a language that supports ParalleLism (such as SiSAl). Remember "Computer" in Computer Science. How long does it take to understand your computer to execute a directive, take a word from memory (in the case of cache hit and the dead), how long it takes from disk to read a continuous word, on disk Search how much time you search for a new location. Participate in a language standard. Can be an ANSI C committee, or a few coding styles of your surrounding people, which takes several characters indent serviles.

No matter which kind, you can understand what other people like the language, how much you like, weigh why they have this feel. Successful confidence in the success of language standardization to begin. To do these, it is worthy of doubts about book learning. Before my first child, I almost read all the books of "How to" series, but it still feels like an incompetent beginner. After 30 months, after I born the second child, did I review these books again? No, no, I realize what I have to rely on my own personal experience than those who wrote on thousands of books on thousands of pages.

Fred brooks, in his prose "No Silver Bullets" (in fact, there is no silver bomb mentioned in "Moon Myth", and the filling method is proposed, and the excellent software designer: 1. as much as possible Early discovery design genius. 2. Assign a career tutor to be responsible for his development prospect and carefully maintain a career file. 3. Provide opportunities for growth to motivate them to motivate and affect.

The premise of this is that these people have developed into potential necessary for great designers; such work needs to be very patient. Alan Perlis is more direct: "Everyone needs to teach: Michelangelo has been told something that does not need to be done, this truth is equally suitable for great programmers."

Further, buy such Java books; you will exhaust your energy for it. But you didn't change your career, you won't be a superior programmer 24 hours a day, a few months. AlLfeesno Note: Let the programming, do something, it is true, some achievements can be one

转载请注明原文地址:https://www.9cbs.com/read-94745.html

New Post(0)