-Learning Trilogy

Source: Internet
Author: User

Transferred from toplanguage -- program thinker's Mail List
I wanted to connect to the original blog, but I couldn't connect to it. I collected it and showed it to myself. By the way, I expressed my respect for Daniel.
The following is a blog I wrote today. I hope that the experts in the Forum will give more comments.

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 feel that their capabilities are not greatly improved. So todayLet's talk about my personal experience in this regard.
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. Next I will take the threeSteps to explain.

★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 people can master the basic syntax and standard library, and then use it to write smallProgram(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. By staying at this step alone, many programmers * only know it, but do not know why *. This is the current situation of most developers.

★Step 2: * How *
the so-called "* How *" means to figure 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? What is the stack rollback when an exception is 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 through a variety of ways (see "on self-learning ability
" several methods), thoroughly understand the problem. 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 basically belong to the best 20% of the people in this field (according to the principle
80% of people 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, be good at asking "* why *
"Have certain talent components? 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 questions about this design.Question. Therefore, I mentioned earlier that we should first clarify the question 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 have * possibly *
Design a similar thing on your own. By now, you have already set foot on the road 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 your understanding.

The reprinted statement must contain this statement to ensure the completeness of this article. Enter the original address of this article in the form of a hyperlink:
Http://program-think.blogspot.com/2009/02/study-technology-in-three-s...

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.