I have been reading "programming life" These two days. This book is really good. It is also very easy to see. Several of them talked about how to learn a new language, but what impressed me most was Joshua Bloch, Google's chief Java architect. I have been learning Python recently, so I will summarize how to learn a new language by the way. I hope you can add something.
Mentality
This is not only the most important thing to learn a new language, but also the most important thing to learn. The following is the description in the book, which is wonderful, especially the metaphor:
"When learning a new language, we must use the skills of the language we have learned before, but we must keep an open mind. Some people stick to the idea that "this is the method that must be followed to write all programs ". I'm not talking about that language, but some languages are stuck with this idea. When they begin to learn a new language, they will criticize all the differences between this language and the real language of God. When using a new language, they try to use the language of God to write. In this way, you will miss the true uniqueness of the new language.
This is like you have only one screw head. Someone gave you a screw driver and you said, "Hey, this is not a good one, but I should be able to take a screw driver backwards, use a screwdrivers to smash things." You get a very bad rolling head, but in fact it does have a very good screwdriver. Therefore, you should be open and positive to all things ."
If your cup is full, it will never be filled with water. If you think you have found a silver bullet, you may have to stick to it.
Only by maintaining a positive development attitude towards new things can we truly understand him and understand his uniqueness.
Understanding his history and philosophy
Choosing a language is often a way of thinking and philosophy. Therefore, it is very important to understand the history and philosophy of a language. You need to know who created the language, why it was created, how it evolved, what fields it was suitable for, and what the philosophy of solving problems was.
In python, his design philosophy is "one method, preferably only one method to do one thing ", perl's design philosophy is "There are always multiple ways to do the same thing ". So I chose python.
An excellent source of knowledge in this area is the encyclopedia website.
Code, code, or code
Code is the only way to learn a language and may be the fastest way.
Not only do you need to find some excellent code to read, but you also need to write the code yourself. This process is very fast for language learning. In addition, you must use a language to solve the actual problem, instead of simply writing code to verify the syntax. In the process of solving a problem, you can learn how it solves the problem and accumulate language experience.
Community
Go to the community where the language is spoken. Many people are discussing the language and discuss it with them. You can learn more.