Original author, public number [programmer reading], welcome to pay attention to the public number, reprint the article please indicate the source oh.

The reason why I write this article is that DURING the process of self-learning Go language, I always feel confused and confused, and I always hope to learn it better. Therefore, I have some ideas. I will sort them out here so that I can look back at my thoughts at this moment in the future.

On basis of

Foundation, in addition to learning the Go language foundation, should also strengthen the study of computer foundation.

For the basis of the language, many people come to it from other languages, will feel that the Go is the basis of simple grammar knowledge, so there is no pay attention to the knowledge of learning, in fact, I think for the basis of the language in addition to basic grammar, and the use of the language specification, programming, thinking, CSP model, etc., all need further study and research.

Computer basic education, another is the foundation of this aspect is boring, including data structure, algorithm, computer principle, computer operating system, computer network, computer basic knowledge, I think, is the key factor for a programmer can walk far, do not have these basic knowledge of blessing, to the language learning and use, will only stay for a very basic level, Not available.

Therefore, the foundation is very boring, but for basic learning, it is necessary.

About reading a book

A lot of books about the language content is the same, perhaps because these books are simply lists some very basic knowledge, its content is no more than the listed in the official documentation of the language, as a result, if it is just starting to learn the basis of the language, suggest or see the language of official documents, Especially recommended is Effective Go, which provides the most authoritative, efficient and basic knowledge of Go and how to use it.

That’s not to say that all books are not worth reading. Classics like Go Programming Language and Go Language In Action should be read more often.

In addition to official documents and classic books, I think some practical books are also good, such as the golden nuggets booklet “Building enterprise-class RESTful API Service Based on Go Language”. Generally practical books or courses, we can learn how to apply Go language to develop programs. One of the most important aspects of learning Go is developing applications with the Go mindset, not with the Go mindset of other programming languages.

Another saying is that it’s really important, many of the technical official documents are written in English, so I need some basic English reading, a lot of people will say the translated document in Chinese not to go, for some Chinese documents, one is the translation is not complete, a translation is sometimes not, return true not directly reading English document.

What else should I do but study hard?

Read good open source project code

Read other excellent project source code, is to improve my ability of writing code in a good way, we can learn from the excellent open source project others’ code organization, design patterns and layer code, problem solving ideas, excellent algorithms and data structures, and even can learn some code named style, etc.

In particular, students who switch to Go from other development languages should read more open source projects of Go, because many design and development ideas of Go language are really very different from other programming languages. Therefore, when we switch to Go development, we should learn to use Go thinking to solve problems. Instead of using Go with the mindset of other programming languages.

There are many open source projects of Go language. The most famous ones like Docker and Kubernetes are known to everyone. The following website is a list of excellent open source projects of Go language maintained by others.

awesome-go.com

Go the extra mile and maintain an open source project of your own

Instead of reading someone else’s excellent project source code, we can actually maintain an open source project of our own. What are the benefits of this?

To maintain a project of your own, you can comprehensively use the knowledge you feel, read books, watch videos and documents to do code exercises, and only get some simple code fragments, not a comprehensive result. It should be a complete project to truly reflect what you have learned.

Join the tech community

Every programming language or technology belong to their own communities or circle, the language also have their own community, of course, the English community although there are more rich data and information, but we may be due to their English level, and can’t communicate with foreign technology Daniel, that also it doesn’t matter, the language also has a very good Chinese community, Such as Go Language Chinese.

In addition, many technical circles will set up a lot of wechat groups or QQ groups, I think join one or two such groups, discuss technology with the people in the group, you can also ask questions when you don’t understand, if you know, you can also help others to solve, so that I have more motivation to learn.

Best way to learn: Writing

Why is writing the best way to learn? Because writing is a teaching process, we want to write something that others can understand, which forces us to take the initiative to learn, and active learning is the most efficient way to learn.

There’s a concept called the Feynman technique, which is active learning by teaching others, and active learning is the most effective form of learning in the pyramid.

Therefore, in the process of learning Go, the best way to learn is to summarize and record the problems encountered in the knowledge learned.

summary

A simple reorganization of what you have learned may help you gain a clearer understanding of what you are learning and better adjust your learning direction and goals.


Your attention is the biggest encouragement on my writing road!