Search skills to become an effective programmer
For people who lack programming knowledge, is entirely possible to write a web page or applet. If you use the Google search-related examples of when you're lucky, can be found to existing code. Even experienced programmers, normally in order to save time and effort in online search solutions.
If you are not using search technology, networking and collective wisdom, modern and efficient programming is unimaginable. Therefore, the search techniques become increasingly important for efficient programmer.
Now, we do not need to understand and remember how to solve many programming problems, you can use search technology. We are becoming more efficient, productive, and can solve more problems. But does this mean in building software, has a good search skills to enough? This article discusses the search techniques of knowledge in the formation of the programmer's role, and how efficient use of search techniques.
The type of knowledge and its growth in the programmer how the brain.
There are three types of knowledge:
Conceptual knowledge (why, what, if - semantic) - Understanding the process of building software systems concepts, principles, relationships, and the main method. The basis of such knowledge to be able to identify the architecture or code designed to cause a specific way, and choose the best design options and logic. Conceptual knowledge, not referring to a specific programming language to solve a specific problem, but a long-term view and understanding of the problem.
- Usage: open-ended questions on the complex search for new solutions, and create a robust software system.
- Harvest: studying computer science, architecture and programming concepts and experience in the actual implementation on the basis of building their own theories.
Practical knowledge (how to do - in the process) - the problem of how to solve specific programming knowledge. Such knowledge does not require in-depth understanding of the selection process implementations and the basic principles underlying the concept. Here the most important search technology, because the programming language problem of limited adoption of specific solution, the search can be relatively easy to share and explain.
- Uses: The proven and known solutions to solve problems quickly, rather than re-invent each time a new method.
- Harvest: search for existing solutions, learning by example, or put forward their own solution and reuse it later.
Tacit knowledge (expertise, experience and intuition) - the process of software system based on accumulated personal experience, in the brain to form the inner knowledge. Brain function through the powerful, tacit knowledge can be integrated and coordinated the other two kinds of knowledge.Such knowledge is difficult to teach, because most are stored in our subconscious. In certain circumstances, it and intuition play a role together, be able to experience, the conceptual and practical knowledge based on feedback and evaluation to develop the best decisions.
- Purpose: to use their expertise, experience and intuition to achieve the best solution.
- Harvest: Building the software and learn knowledge from the results.
Design patterns (and architecture, and other areas) is a combination of different types of knowledge and interesting example: "how to" examples that implicit in the concept and realization of the experience accumulated in the course. Expression of this knowledge is successful and widely used mode of one of the reasons.
As more and more practical solution available and the sample appeared on the Internet, people are brain less and less the value of practical knowledge. We do not need to remember that practical knowledge. Now we are able to handle the software build process that may be encountered in almost all common programming problems. However, in addition to problem-solving examples or where to search beyond these examples, a master's programmers also know that more knowledge. He was able to put forward their own solutions, most of the best decisions to develop and adopt the best way to apply them. In addition, it is difficult to find online new and complex field of environment issues and specific solutions. Moreover, all the important software engineering solutions in the development of good in the process of software development requires a high level of theory, the application of these theories of experience, understanding of the system, the problem space and the environment and other related knowledge.
Therefore, in the software development process, conceptual knowledge and tacit knowledge is still very important. In the use of search technology, we should strive to expand all kinds of knowledge, not just to solve specific problems. With more advanced problem solving capabilities, you will be successful and become more efficient programmers.
Solve the practical problems of efficient search
A. Find
- 1. Definitions - find out what problems to solve, and to find the content focus. Network, there are so many interesting materials, so that the search process can easily account for all the work out of your time (and personal time).
- 2. Retrieval (using the standard Google, the code search or other search engine) - there are many on how to efficiently use the search engine's recommendations.
- 3. Browse results (quality of content, credibility and professional level; if the data's credibility is too low, do not look) -> Reading -> Assessment (human and material resources, the required tools and libraries)
B. Use
- 1. Copy the code - a single copy (for this purpose, with the explicit spike technology most suitable for unit testing)
- 2. Clear code - to retain only minimal, relevant code, clear solution of the other code.
- 3. In the system application code.
C. Learning
- 1. To understand - what you do and you do it - learn from the code and implementation.
- 2. Expansion of knowledge -
- a. practical knowledge: problem-solving specific methods, techniques and style;
- b. the concept of knowledge: learning new concepts and refining the existing concept of building your own;
- c. Tacit knowledge: the wise use and learn solutions to search, experience will naturally be increased.
- 3. Collection (links, comments, references, reading list) - any of you in the future search, discover and learn useful and interesting information. Accumulation of knowledge for these targets.
Do you have other efficient search code tips? Welcomes comments or micro-Bo and share.
Source: Bole online submission, the original link .
沒有留言:
張貼留言