Let's describe the types of knowledge and how they develop in the brain of a programmer. There are three types of knowledge:
- Conceptual (why ?, what ?, if? - ie, semantics) - an understanding of concepts, principles, relationships, and basic approaches to the development of software systems. This type of knowledge justifies why the application architecture or algorithm should be written in a certain way, what are the alternatives and why the chosen option is the best from a logical point of view. Conceptual knowledge gives a broad vision and understanding of what is behind the solution of specific problems in this task.
Application: find better solutions for complex problems
Acquisition: study of computer and computer science sciences, concepts of design and programming; creating your own theories based on practice and experience. - Practical (how? - i.e. procedure) - knowing how to solve a specific problem in programming. This does not require a deep understanding of the concepts and theory behind the choice of a particular method of implementation.
Application: fast solution of problems with the help of well-proven and proven solutions without the invention of "bikes" from scratch.
Acquisition: search for existing solutions, example training or reuse of their solutions.
- Experienced (including intuition) - inner individual knowledge, which is formed over time in the development process. This type of knowledge allows you to synthesize and organically use the two previous types of knowledge, making optimal decisions, as well as evaluating the resulting conceptual and practical knowledge. It is difficult to transfer it to another person, since a considerable part of it is at the subconscious level.
Application: Use your experience and intuition to make better decisions.
Acquisition: develop programs and draw conclusions from the results

For example, design patterns are an interesting example of a combination of all three types of knowledge: practical examples, the concepts behind them and real experience in applying them. Only such an organic combination and allows you to successfully use them.

')
The value of practical knowledge in your head decreases more and more as the number of examples on the Internet increases. There is no need to keep them in mind. Solutions for the vast majority of everyday problems are easy to find. However, the knowledge of a master programmer must go beyond simple examples or where to look for them. He must offer his solutions, make the best choice and implement them in the best way. In addition, it is often simply impossible to find information on complex, highly specialized or very new problems.
That is why conceptual and experienced knowledge is of great value in software development. In the process of finding practical information, you must constantly try to expand all types of knowledge. This will strengthen your problem solving abilities and make you more efficient.

So:
A. Look for
1. Criteria - understand what your problem is and in what terms to define it. The Internet is so huge and interesting that it can absorb a lot of time with inadequate search criteria.
2. Search - learn to effectively use the capabilities of specific search engines.
3. Run by results - learn to quickly determine the quality of the content, the level of trust in the source, as well as the qualifications of the author.
4. Read selected
5. Evaluate - determine the conditions, tools, and time required for this option.
B. Use
1. Copy the code and learn how to test it (especially you will be helped by unit tests).
2. Clean the code - leave only minimal, clean and efficient code.
3. Add code to your applications.
C. Learn
1. Understanding what and why you did. Learn from code and running programs.
2. Expand knowledge:
* practical: techniques, examples and best practices in what you do;
* conceptual: learn new concepts, consider already familiar ones and create your own;
* Experienced: experience will grow over time if you make an effort to find the best solutions and learn from them.
3. Collect (links, reviews, reading lists) - any interesting information for your further research and training.
From myself: There are a lot of Truisms, but I think that the information will help to become more conceptual and identify their weak points. :) Thanks to the author of the original text.