Zz learning technology trilogy: WHAT, HOW, WHY

Source: Internet
Author: User
In recent days, some netizens asked me questions about learning in emails. Many people think that they have learned a lot of class libraries, frameworks, and even languages after several years of work, but they do not feel that their capabilities are too high. So let's talk about my personal experience in this regard today.
I classify learning into three steps: What, how, and why. After my observations of my colleagues and friends, most people who feel that their technology has not improved are stuck at what stage. I will explain the three steps below.

★Step 1: What
The so-called "what" means figuring out what a specific thing is? What is the purpose? What syntax does it have? What are the features ?......
For learning languages (such as C ++ and Java), most users can master the basic syntax and standard library, then use it to write some small programs (such as binary search, Bubble sorting, and simple file operations ).
For a Learning Library (such as a JDBC Class Library), most Java programmers can understand which classes JDBC mainly contains, and use JDBC to perform simple database queries and add, delete, and modify operations.
Because this step is the most basic, if you cannot even do it (maybe your understanding is not good enough), don't confuse it.
However, what it means is not enough. As a result, many programmers only know and do not know why. This is the current situation of most developers.

★Step 2: How
The so-called "how" means figuring out how something works? What is the implementation mechanism? And other issues.
Example:
If you are learning the C ++ language, do you understand the implementation mechanism of function parameters? How is a virtual function implemented? How does stack rollback occur when exceptions are thrown ?......
If you are learning the Java language, do you know how to implement GC? How is reflection implemented ?......
If you are learning the JDBC library, do you know the four types of JDBC driver? Implementation Mechanism of different cursor types? Transaction mechanism ?......
At this stage, you must think more about these issues. Then, we can thoroughly clarify the problem through various ways (refer to several methods on self-learning ability. Naturally, your improvement will be obvious. If you encounter some in-depth problems (such as performance optimization), you will know how to solve them.
After this stage, you are basically 20% of the best people in the technical field (according to the 80% principle, do not think about HOW ).

★Step 3: WHY
Generally, you can start to consider the WHY step only when you think clearly about HOW.
The so-called "WHY" is to figure out WHY something is designed like this? Why not? What is the significance of such a design?
To be honest, I am good at asking "why" Is there a certain amount of day-based ingredients? It seems that a scientific Daniel once said, "It is sometimes more difficult to ask a question than to solve it ". Generally, only when you have a deep understanding of something can you ask some questions about this design. As mentioned above, we should first clarify the problem of HOW and then consider the question of WHY.
Example:
For C ++: Why does C ++ have a finally keyword similar to Java? Why didn't C ++ consider GC ?......
For Java: why is there no class destructor similar to C ++ in Java? Why does Java provide two seemingly redundant classes, String and StringBuffer ?......
If you can ask the above "why" questions by yourself and find answers through various channels, you have basically understood this technology, and you may have designed something similar by yourself. By now, you have already set foot on the well-known road leading to technical experts.

Because this blog focuses on IT, most of the examples mentioned today are related to IT, but this trilogy can be applied in industries/fields other than IT, it depends on the reader's understanding.

The reprinted statement must contain this statement to ensure the completeness of this article. The author's programming preferences and original addresses are shown in hyperlink form:
Http://program-think.blogspot.com/2009/02/study-technology-in-three-steps.html

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.