How can I quickly master a programming language?

Source: Internet
Author: User

A few weeks ago a friend was also going to run to shake off the fat and control his already badly distorted figure--and he was asking me what to buy from my clothes to my shoes, from my watch to my heart rate belt, what I had to do with my performance, and how he would do it. I told him that I did not buy any equipment, ran for more than half a year, I still casually set on a cotton T-shirt, wearing a comfortable sports shorts, running shoes, clutching mobile phones, so run will rise. He repeatedly said he did not believe that a sweat speed dry clothes, arm bags, sports watches are not matching people, how can also (worthy) running? New York City Casino

This reminds me of some of the readers ' messages I often encounter:

"I want to learn rails, is there a recommended primer for Ruby?" 」

"I want to learn Android, to what extent can I get to Java?" 」

"I have not been able to get started, can I learn python directly?" 」

These questions are the doubts that beginners often haunt. Between our own status and the goals we want to achieve, there is always a big river called "preconditions", and it seems that there is no other way than to spend a great deal of energy swimming across the river. Unfortunately, most people were not able to get close to the target, they were washed away by the swift flow of water. However, there are still a few people seem to sit on Aladdin's magic Blanket, without delay to the other side, as if learning what technology is not so laborious. What's going on?

Learning a new language, or a new technique, is not so much an ability as a method. What kind of person, or in what stage of life, is the highest learning efficiency? The best effect? The answer is obvious: infancy. My daughter, who is less than two years old, estimates that she now has dozens of nouns, 10 verbs, 35 adjectives and prepositions, but no fewer than hundreds of words pop out of her mouth every day. Think about how many years of English we have learned in order to speak completely from the mouth: "Hello everybody, so glad-see-you", Junior? High school? Or college? Think about how much we can communicate and communicate when we have a 3,000 word volume?

If you look closely, you will find that the baby's learning methods are extremely practical. Imitation, trial and error, practice, regardless of all the so-called "authority" of the grammar, morphology, all to use the main. In my daughter's case, her expression is based on phrases and sentences:

"Daddy hug small Treasure"-beg for comfort

"Xiao Bao to drink grandma"-hungry

"If Xiao Bao is not obedient"-learned to ask a question after you talk to her she will take you out of the army

"Mom and Mommy, come home, let me kiss You"-with the singing machine learned, sell Moe

"goodbye so long farewell my friend"-with music lesson, sell Moe

Most of the sentence, she does not know the specific meaning of each word, but she knows the meaning of the vague sentence, and from the adult's reaction, she can know that she understood the meaning is correct, so, again and again imitation, trial and error, get feedback, constantly accumulate their direct use of "knowledge."

It's a pragmatist's way of learning: bypass obstacles, go straight to the subject, focus on what you need to learn right away . A few years ago, before I began to learn something, I would surf the internet and pick up almost all the books I could find from the beginner to the advanced to the expert, and after looking at a whole bunch of different comments, I was content to sift through so-called "boutique" purchases and put them on the desk, as if it were a necessary ritual before learning. But this is only the achievement of the watercress and Amazon, piled up books often in my heroic view of the first chapter X (x<=5) was shelved. Later I found that I was so-called "learning to first systematically lay a solid basic skills" pit-I kept falling into the "basic knowledge" of the mire, the deeper the deeper, the more bitter, can only struggle. As a result of this struggle, 80% of the situation became abandoned.

In fact, I do not have to worry about these "basic knowledge", put them aside first, how much to use, then learn how much. For example, if I were to learn rails, I would just start with rails, get a syntax barrier to Ruby, look back at the relevant content in Ruby documents, and get the hurdles right back to rails, rather than starting with Ruby. You know, the Ruby features used in rails can be less than 20% of Ruby's overall language and class library features! Learning from Ruby is a fork in the road.

Software development is a craft work, its learning is not a variety of knowledge may be seldom used in a brain accumulation, we can not be prepared after all the theoretical knowledge ready to start learning. Scala's authors have criticized Java's inefficiency as saying that Java has made it a ritual to write programs, so there is no fun. So, when we were at the table full of books from the beginning to the experts, did it turn the study into a solemn ritual? What is important is not how much knowledge is piled up, but how it is learnt.

It's not enough just to focus and go straight to the subject. you need to practice a lot and get feedback during the learning process. The baby did not speak after accumulating 3,000 words, but when the body and brain were ready for the first day to speak, and, despite all the mistakes, they are still more and more brave, repeatedly defeated war. In the same way, when you learn Python without using a ipython variety of skills in the REPL environment, when you learn Django without starting a running Web project, the learning efficiency is certainly not high, and the effect must be sloppy. In the gym, even if you watch the coach's movements 100 times instead of trying them yourself, and accept the other's corrective advice, you still can't grasp the correct action essentials. I've seen people knocking the examples of the book into the editor, all running correctly, and then being satisfied that they "mastered" the technology. As everyone knows, this "exercise" is not a valuable exercise. We need to try and be wrong, like a toddler, to imitate, to move, to fall, to climb up, to move. Making mistakes is part of learning, and when you're finished with the content described in the tutorial, you can conceive an app or a usage scenario yourself and write it from scratch. You will find a lot of questions that will deepen your understanding of the tutorial. Questions that cannot be answered can be sought from the community, and most of the issues related to development can be resolved on StackOverflow. With this constant practice and feedback, your development skills will improve quickly. Many non-systematic knowledge and abilities (and even insights) are learned through constant practice and trial and error-they come so quietly that others see it as a gift to you, except you.

So, when do you need to learn it systematically? When you have the skills and experience necessary for the actual combat, you need to make a distillation of what you have learned on a macro level, or when your actual combat ability encounters a bottleneck. It's a good thing to say: You don't need to be a good Ruby engineer to use rails, but if you want to be a good rails engineer, you have to master Ruby well. Unfortunately, many beginners have the problem: to get a quick introduction to a technology, but using a systematic approach to learning, has not yet started, it fell on the road of hard practice.

How can I quickly master a programming language?

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.