Home  >  Article  >  Backend Development  >  How to master a programming language quickly

How to master a programming language quickly

WBOY
WBOYOriginal
2016-07-25 09:04:38875browse
I want to learn PHP, are there any recommended introductory books on PHP?
I want to learn Android, how much do I need to know Java to start?
I’m new to c/c++, can I learn python directly?
These questions are all doubts that beginners often have in mind. Between our own current situation and the goals we want to achieve, there is always a big river called "prerequisites". It seems that there is no other way but to spend a lot of energy to swim across this river. Unfortunately, most of the people were swept away by the strong current before they could get close to the target. However, there are still a small number of people who seem to be riding Aladdin's magic carpet, reaching the other side without any delay, as if learning any skill is not that strenuous. How is this going?
Learning a new language or new technology is more of a method than an ability. I would like to ask what kind of person, or at what stage of life, people learn most efficiently? best effect? The answer is obvious: infancy. My daughter, who is less than two years old, probably only knows a few dozen nouns, a dozen verbs, three to five adjectives and prepositions, but she speaks hundreds of words every day. Think about how many years we have to learn English before we can fully say: "hello everybody, so glad to see you" in junior high school? high school? Or university? Think about how well we can communicate when we have 3,000 words.
If you observe carefully, you will find that babies’ learning methods are extremely practical. Imitation, trial and error, practice, regardless of all the so-called "authoritative" grammar and lexicon, everything is based on application. Let’s take my daughter as an example. Her expressions are mainly based on phrases and sentences:
She doesn’t know the specific meaning of each word in most of the sentences she speaks, but she knows the vague meaning of the sentence, and From the adults' reactions, she can know whether the meaning she understands is correct. In this way, she imitates, tries and makes mistakes again and again, gets feedback, and continuously accumulates "knowledge" that she can directly use.
This is the pragmatist’s learning method: bypass obstacles, go straight to the topic, and focus on what you need to learn immediately. A few years ago, before I started to learn something, I would search the Internet for almost all the books I could find, ranging from introductory to advanced to expert. After reading a lot of various reviews, I was satisfied to filter out Buy the so-called "high-quality products" and put them in front of your desk, as if this is a necessary ritual before studying. But this approach only made Douban and Amazon successful. The accumulated books were often shelved after I proudly read Chapter X (X<=5) of the first book. Later I discovered that I was deceived by the so-called "learning requires systematic and solid basic skills" - I kept falling into the quagmire of "basic knowledge", getting deeper and deeper. The more I studied, the harder I worked, and I could only struggle. As a result of this struggle, 80% of the cases turn into giving up.
In fact, I don’t have to worry about these “basic knowledge”. I just put them aside and learn as much as I use them. For example, if I want to learn Rails, I will start directly with Rails. If I encounter a syntax obstacle related to Ruby, I will go back and look at the relevant content in the Ruby document. Once the obstacles are cleared, I will immediately return to Rails itself instead of starting with Ruby. rise. You know, the ruby ​​features used in rails may account for less than 20% of the overall ruby ​​language and class library features! When I started learning ruby, I took a wrong turn.
Software development is a craft, and its learning is not an accumulation of all kinds of knowledge that may be rarely used. We cannot start learning after all the theoretical knowledge is ready. When the author of Scala criticized the inefficiency of Java, he once said that Java turns writing programs into a ritual, so it is no fun at all. So, when we pile up all kinds of books from beginners to experts in front of our desk, does it turn learning into a grand and solemn ceremony? What matters is not how much knowledge you have accumulated, but how you apply what you have learned.
It’s not enough to just focus and get straight to the point. You need to practice a lot and get feedback as you learn. Babies do not speak after accumulating 3,000 words. Instead, they speak on the first day when their bodies and brains are ready. And, even though they are full of mistakes, they still become more and more courageous and fail repeatedly. war. In the same way, when you learn python without using ipython and try various usage techniques in the REPL environment, when you learn django without starting from building a runnable web project, the learning efficiency will definitely not be high, and the effect will be so-so. In the gym, even if you watch the instructor's movements a hundred times instead of trying it yourself and accepting the other person's correction suggestions, you still won't be able to master the correct movements. I have seen people type the examples in the book into the editor one by one, and they all run correctly, and then they are satisfied that they have "mastered" this technology. As everyone knows, this kind of "practice" is not valuable practice. We need trial and error, like a baby taking steps, imitating, taking a step, falling, getting up, and taking another step. Making mistakes is part of learning. After you read the tutorial and master the content described in it, you can conceive an application or a usage scenario yourself, and then write it from scratch. You will find many questions and deepen your understanding of the tutorial. If you cannot answer questions yourself, you can seek help from the community. Most development-related questions can be solved on stackoverflow. By constantly practicing and getting feedback, your development skills will quickly improve. A lot of unsystematic knowledge and abilities (even insights) are learned subconsciously through continuous practice and trial and error - they come so quietly that others except you regard them as part of you. kind of talent.
So, when do you need to study systematically? When you have the skills and experience required for actual combat and need to sublimate what you have learned at a macro level, or when your actual combat capabilities encounter a bottleneck. There is a saying that goes well: You don't need to be a good ruby ​​engineer to use rails well, but if you want to be a good rails engineer, you must master ruby ​​well. Unfortunately, the problem of many beginners is that they want to get started quickly with a technology, but they use the systematic learning method and fall into the arduous path of practice before they get started.
Receive Brothers PHP original video tutorial CD for free, please contact the official website customer service for details:
http://www.lampbrother.net



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn