How to quickly master a programming language

Source: Internet
Author: User
How to quickly master a programming language

I want to learn php. Are there any recommended php entry books?

I want to learn android. to what extent can I get started with java?

I am not getting started with c/c ++. can I directly learn python?

These questions are a frequent concern for beginners. There is always a river named "prerequisite" between our own status quo and what we want to achieve. it seems that there is no way to go beyond the great river to spend a lot of energy. Unfortunately, most people have not been able to reach the target, and they are washed away by the surging water flow. However, a small number of people seem to have taken Aladdin's magic blanket and reached the other side without delay. it seems that they are not so hard to learn any technology. What's going on?

Learning a new language or technology is not so much a capability as a method. I would like to ask what kind of person, or at what stage of his/her life, with the highest learning efficiency? Best results? The answer is obvious: infancy. My daughter, less than two years old, probably now has dozens of nouns, more than a dozen verbs, three or five adjectives and prepositions, but there are no more than a few hundred words coming out of her mouth every day. How many years have we learned English before we can fully say "hello everybody, so gglad to see you", junior high school? High school? Or university? Think about how much communication and communication we can do when we have three thousand words?

If you observe it carefully, you will find that the baby's learning method is extremely practical. Imitation, trial and error, practice, regardless of all the so-called "authoritative" syntax, lexical, everything is mainly used. Taking my daughter as an example, her expression is dominated by phrases and sentences:

In most of the sentences, she does not know the specific meaning of each word, but she knows the fuzzy meaning of the sentence, and from the response of adults, she can know whether the meaning she understands is correct. in this way, she repeatedly imitates, tries, gets feedback, and constantly accumulates the "knowledge" that she can use directly 」.

This is a practical way to learn: to bypass obstacles, go straight to the topic and focus on what you need to learn right away. A few years ago, before I started to learn something, I searched for almost all the books I could find on the Internet, from entry level to advanced level to expert level. after reading a lot of comments, filter out the so-called "boutique" shopping home with satisfaction, and then base them in front of the desk, as if this is a necessary ceremony before learning. However, this approach is only to achieve Douban and Amazon. the accumulated books are often shelved after I see Chapter X (X <= 5) in the first book. Later, I found out that I was stuck in the so-called "learning must first systematically lay down solid basic skills"-I kept getting stuck in the "basic knowledge" trap, the harder you learn, the harder you struggle. As a result of this struggle, 80% of the cases are abandoned.

As a matter of fact, I don't have to worry about these "basic knowledge". if I put them aside, I will learn how much I will use. For example, if I want to learn rails, I will start with rails and encounter syntax barriers related to ruby. I will go back and look at the relevant content in the ruby document to clear the obstacles and return to rails immediately, instead of starting with ruby. You know, the ruby features used in rails may be less than 20% of the overall ruby language and class library features! From ruby, we have gone a long way.

Software development is a craft, and its learning is not the accumulation of knowledge that may be rarely used. we cannot start learning after all the theoretical knowledge is ready. Scala authors criticized java for its low effectiveness and once said that java has turned writing programs into ceremonies, so there is no fun at all. So, when we piled up all kinds of books from entry to experts in front of the table, did we also turn learning into a grand and solemn ceremony? What is important is not how much knowledge is accumulated, but what is learned and used.

It is far from enough to focus on and go straight to the topic. During the learning process, you need a lot of exercises and feedback. The baby did not speak after a total of 3000 words, but the first day after the body and the brain were prepared, he spoke. despite all the mistakes, they are still more and more frustrated and defeated. In the same way, when you learn python, instead of using ipython, and try a variety of tips in the REPL environment, when you learn django, instead of building a runnable web Project, the learning efficiency is certainly not high, and the effect will inevitably be sloppy. In the gym, even if you observe the coach's actions one hundred times instead of trying it yourself and accept the correct suggestions from the other party, you still cannot master the correct action essentials. I have seen some people break the examples in the book into the editor one by one, all of them run correctly, and then I am satisfied that I have mastered this technology. However, this "exercise" is not a valuable exercise. We need to try and make a mistake, just like a baby's toddler, imitating, walking, falling, getting up, and moving again. Making mistakes is part of learning. after you have read the content in the tutorial, you can create an application or application scenario and write it from the beginning. You will find many problems and deepen your understanding of the tutorial. If you cannot answer questions, you can seek help from the community. most issues related to development can be solved on stackoverflow. In this way, your development skills will be improved quickly by continuously practicing and obtaining feedback. A lot of non-systematic knowledge and abilities (or even Insights) are learned in the subconscious through continuous exercises and trial and error-they come so quietly that apart from you, others regard it as a kind of talent.

So when should we learn it systematically? When you have the technology and experience required for practice, you need to make a sublimation of what you have learned at a macro level, or when your practical ability encounters a bottleneck. Well, you don't need to be a good ruby engineer to make good use of rails, but if you want to be a good rails engineer, you must have a good understanding of ruby. Unfortunately, many beginners have the following problems: they want to get started with a technology, but they have used the system learning method. if they haven't gotten started yet, they are on their way to hard work.

You can get the original php video tutorial CD for free. for details, contact the customer service on the official website:

Http://www.lampbrother.net


Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.