How to use search techniques to become an efficient programmer

Source: Internet
Author: User
Published by bole online at, (1) 2045 users read the original article link [favorites]»
No one is an isolated island. Everyone is a part of the whole. -- John Donne

For those who lack programming knowledge, it is entirely possible to write a webpage or a smallProgram. If you are lucky to use Google to search for related examples, you can find the available examples.Code. Even experienced programmers usually search for solutions online to save time and energy.

Without the help of search technology, networks, and collective wisdom, modern and efficient programming is hard to imagine. Therefore, search skills become increasingly important to efficient programmers.

Now, we don't need to understand and remember how to solve many programming problems. We can use the search technology. We are becoming more efficient, productive, and able to solve more problems. But does this mean that good search skills are sufficient when building software? This article will discuss,The role of Search Skills in the formation of programmer knowledge and how to use search skills efficiently.

The type of knowledge and how it grows in the programmer's brain.

There are three types of knowledge:

Concept knowledge(Why, what, and if-semantic)-understanding the concepts, principles, relationships, and main methods of software system construction. Based on this kind of knowledge, you can find out why the architecture or code must be designed in a specific way, and what is the alternative and logic for selecting the best design scheme from it. Conceptual Knowledge, not specificProgramming LanguageIt is a long-term view and understanding of a specific problem.

    • Purpose: find new solutions for complex open problems and create robust software systems.
    • Gains: learn computer science, architecture, and programming concepts, and build your own theory based on actual implementation and experience.

Practical Knowledge(How to do -- in the process) -- knowledge about how to solve specific programming problems. This type of knowledge does not require a deep understanding of the concepts and basic principles implied in the selection of implementation methods. Search technology is the most important here, because it is relatively easy to share and describe to specific solutions for limited programming language problems.

    • Purpose: Quickly resolve problems with proven and known solutions, rather than re-inventing a new method each time.
    • Tip: Search for existing solutions, learn from examples or propose your own solutions, and reuse them later.

Tacit Knowledge(Professional knowledge, experience, and intuition)-Internal knowledge formed in the brain based on the personal experience accumulated during the implementation of software systems. With a strong brain function, tacit knowledge can be integrated and coordinated with other two types of knowledge. This kind of knowledge is hard to teach, because most of it is stored in our subconscious. In a specific environment, it plays a role together with intuition, and can make optimal decisions based on experience, conceptual and practical knowledge feedback and evaluation.

    • Purpose: Use your expertise, experience, and intuition to achieve the best solution.
    • Tip: Build Software and learn from the results.

Design patterns (as well as architectures, fields, and others) are interesting examples of combining different types of knowledge: "How to do, the concepts hidden in these examples and the experience accumulated in the implementation process. The expression of this knowledge is one of the reasons for the success and wide application of the model.

As more and more practical solutions and examples are available on the Internet, the value of practical knowledge in people's minds is getting smaller and smaller. We do not need to remember practical knowledge. Now we can handle almost all common programming problems that may occur during software build. However, in addition to examples that can solve the problem or where to search for these examples, a master programmer knows more. He was able to propose his own solutions, make most of the best decisions, and apply them in the best way. In addition, it is difficult to find new, complex, leading, and solutions to problems in a specific environment on the Internet. In addition, for all important software projects, in the process of developing excellent solutions, high levels of software development theory, application experience of these theories, in-depth understanding of the system, problem space and environment are required.

Therefore, conceptual knowledge and tacit knowledge are still very important during software development. When using search technology, we should try to expand the knowledge, instead of simply solving specific problems. With the improvement in the ability to solve more advanced problems, you will succeed and become a more efficient programmer.

Efficient Search to solve practical problems
A. Search

    • 1. Define -- identify the problem to be solved and focus on the content to be searched. There are so many interesting materials on the Internet that the search process can easily take up all of your work time (and personal time ).
    • 2. Search (using standard Google, code search, or other search engines)-there are many suggestions on how to use the search engine efficiently.
    • 3. browsing results (quality, reliability, and level of professional technology of the content; if the reliability of the information is too low, you do not need to check it again)-> Read-> evaluation (human and material resources, required tools and function libraries)

B. Use

    • 1. Copy the code-copy it separately (for this purpose, explicit unit tests with long dingtalk technology are the most suitable)
    • 2. Clear the code-only keep the minimum and correlation code, and clear other code in the solution.
    • 3. Apply the code in the system.

C. Learning

    • 1. understand-what you did and why you did it-Learn from code and implementation.
    • 2. expand knowledge --
      • A. Practical Knowledge: specific methods, skills, and styles for solving problems;
      • B. Conceptual Knowledge: learning new concepts, refining existing concepts, and building your own concepts;
      • C. Tacit Knowledge: The experience will naturally grow when you use and learn the solutions you have found.
    • 3. Collect (links, comments, references, and read lists)-any interesting information useful for your future search, discovery, and learning. Accumulate knowledge for these goals.

Do you have any other tips for efficient code search? You are welcome to share this with us on comments or Weibo.


Source: bole online-workplace blog
Link: http://www.jobbole.com/entry.php/371
Via: softwarecreation Article recommendation: Guan Compilation: bole online agile translation group-Niu Dongmei
If you need to repost, please noteArticleSource, hyperlink, and other copyright information. Otherwise, it is deemed as infringement. Thank you for your cooperation!

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.