Learning is a lifelong task, especially for programmers. If you do not learn to enjoy the learning process, learning will be a heavy burden in your life.
Take learning the data structure as an example. As we all know, for programmers, the data structure is the foundation and a course that must be learned. But now many languages have well-encapsulated details, such as Java and ,. net, PHP, almost do not require much knowledge about data structures and algorithms, so many people think that I will not be able to structure data. Do I have to work differently? This is the beginning of impetuousness.
Indeed, for most programmers, data structures are often not needed at work. However, you will find that after several years of work, your technical level will be stagnant, and what you do is always curd. In addition, you can add a design pattern, and there may be applications such as nosql and memcache. However, when you write these code to the weak layer, you will find that these are all application-layer things, ready-made things by others, and when you want to understand their underlying and principles, without the knowledge of data structures and algorithms, you will have a hard time. Do not build a high-end server in the sand float. Even if you are using open-source software well, if you do not understand the underlying computer layer, at most it is a code farmer of advanced levels.
To get out of the impetuous mud, you only need to understand one sentence: Chibi High School
The real pleasure of learning is not because it is useful, but because the learning process is interesting.
So you need to find out what fun the learning process is, or take data structure learning as an example.
1. Data Structure Learning does not have any effect on work in the short term, but it is an investment in the future and itself. You must not be impetuous when learning it. Do not think that it will not learn if it has little benefits in the short term. The first step to abandon impetuousness is not to learn with utilitarian eyes.
2. Data structures are learned from linear tables and then the most important single-chain tables. You can create, insert, delete, and search a single-linked table based on the basic operations. If you have completed all these operations, should you immediately start learning the stack? My suggestion is, no. "Learning" is a word that should not be separated. Only "Learning" without "Learning" will inevitably lead to superficial. After learning the basic operations of a single-chain table, you need to learn more ". At this time, you need to try to study the following questions: the reverse order of a single-chain table, the nth element at the bottom of a single-chain table, the sorting of a single-chain table, and the ring of a single-chain table ...... And so on. When you learn a single-chain table in a certain realm, you can only learn the stack, so that your single-chain table will be very solid and learning the stack will become very efficient. You can refer to my previous topic: Data Structure Story 2
Never think this is a waste of time. Learning from left to right is a waste of time. Continuous thinking is efficient.
3. enjoy the fun of thinking. You may find it a little difficult to learn the data structure at the beginning. For example, inserting a data involves several Node Address operations, but when you think about and fully understand why, you will have an open-minded feeling. More importantly, every time a single-chain table is solved, it is equivalent to a thought training. After much thinking training is done, you can have a deeper understanding of the single-chain table and solve the problem more quickly in the future. We can think that every thought training can accelerate our thinking and accelerate our brain. Why can a normal person know how to solve the problem? It is very simple because he has done a lot of thinking training that ordinary people cannot imagine, just as Buffett started to invest in teacher learning at the age of 7. No one is born to be a bull, right?
4. desire to learn. Many people know that I want to learn, but it is always easy to get distracted. I will take a look at my microblog and wait for a while to get rid of other things, but I haven't seen anything for a long time. Do not study on vacation, do not find reasons for not learning, no money? No time? Tired? As long as you have a strong heart and desire, you will take the initiative to learn.
Let's take a look at this article: in the next eight hours, we will use hard work for happiness. If you can think of writing blogs as a kind of relaxation, if you can think of writing blogs as a kind of enjoyment without any utilitarian impurities, then you will strongly want to write blogs. (For Me, writing blogs is learning)
You can try to get up at half past six next morning and study for an hour before going to work. The effect is good. This article was written at 6 o'clock in the morning. Learning is a person's activity most of the time, and it is inevitable that you will feel lonely. When you are highly concentrated, your loneliness will decrease. When you concentrate on it, you may even feel physically and mentally happy. "Never be lonely, never be lonely, never be lonely, and never be lonely ."
5. Do not be intimidated by thick books. Some people may say that, you see, there are so many chapters in the data structure that you have done more than one hundred exercises in the single-linked list. It took a month or two, when can I finish watching it? I said that no one is forcing you to study, so you can read it at will. When do you feel that you are proficient and then move on to the next learning stage. Entering the next stage too early will only make you forget the previous knowledge too early. For example, you can learn the stack by looking at the basic operations of a single-chain table, after a week, I asked you about the reversal of a single-chain table. You may not be able to think of it for a moment. So I think:
Stick to one thing until you reach a realm-to what realm, I don't know, you know-and then start to do another thing.
6. Are you hungry for learning? I highly respect perfectionist for learning. For example, you can understand the basic operations of a single-chain table, write the program again, and then start to study its common operations. After all the research is done, it is rare to start the research, and the leading node and the non-leading node will all be done again. Then I went through the Internet to see if there were any omissions. If you find any omission, you will be very happy to write the program again immediately. You can immediately know what is going on until Google searches for the results on the first 100 pages of the "single-chain table", and know how to do it. Well, that's almost the same.
Crazy? Maybe it is. But for ourselves, if we do not do this, it is difficult to reach a certain level, or be proficient. When you are hungry for knowledge, when you get new discoveries and new knowledge, you will get a great sense of satisfaction. The sense of accomplishment along the way is also the greatest reward for your previous efforts.
Then, from now on, escape from the impetuous mud and enjoy the learning process.
Stick to one thing until it reaches a realm