I often get the feeling that I think I’ve mastered a technical point in my mind, but when I try to explain it to someone else, I just can’t say it easily and in a nutshell.

This shows a problem: you think you have it, but you don’t really have it, your brain just builds up a general concept of the technology, makes some assumptions in some details, and when you put it into words, you find that, oh, this assumption is not completely true, there is something wrong.

In the pyramid of absorption rate, Teach Others is the most efficient and active learning. But at work and in life, you rarely have the opportunity to teach others.

So what? You can’t pull your busy colleague and say: buddy, COME on, I just learned CQRS, let me tell you about it.

Maybe your colleague is polite enough to sit through your bumbling speech and then get lost. The first few times it’s ok, but the more times it happens, they give you a stiff shoulder.

Since you can’t tell others, the next best thing is to write your own understanding.

Of course, it is not to keep a general running list, or to list a few isolated points there, but to clarify the idea, especially to write why there is this technology? What problem the technology solves, and then how the technology is used.

When you force yourself to answer these questions, you quickly find that you don’t understand enough and need to find more information.

When you go to Google to find information, you will find that, gee, the articles on the Internet are so bad, there are so many duplicates, most of which are copy and paste. Most of it is about how to use it, never saying anything about the “why” or being coy about it.

This process of collating data and thinking is invaluable in turning information into your own knowledge.

If you can’t do it, you can always solve the problem by going to the forum to ask questions, going to the QQ group to speak and looking for Daniel’s advice.

For example, you are introduced to a new knowledge: Java dynamic proxies.

You’ve seen the code in a book or video, you know how this technique works, and you want to write an article. The first question you’ll try to clarify is “Why use Java dynamic proxies?” What the hell is this thing doing? I already know that it can enhance a class, or at runtime, but what’s the use of enhancing a class?

I could write a new class to enhance the existing class, right? Why do it at run time?

If you dig down this path, you’ll find a treasure at the end of the tunnel: AOP.

On a technical level, there is another question: why can Java dynamic agents only operate on interfaces? Can’t operate on class? If you dig deeper into this problem, you’ll find another treasure: dynamic bytecode generation.

Dig a little deeper and you’ll see things like ASM, CGLib, how they manipulate the bytecodes of class files in memory, what’s the format of the bytecodes? Just have a look at the Java virtual machine.

At the end of the day, you might realize that, oh, Java is a static language. You can’t modify existing method logic or add new methods at runtime, so you have to do something “extra” by creating a new class using other methods like ASM, dynamic proxies, etc.

Write an article and document the results of your digging. While others have only learned about Java dynamic proxies, this is just the tip of the iceberg.

One might ask: why write it down when I could learn it this way? The reason is simple: if you don’t write it out, it’s easy to give up on deep thinking. You think, oh, I already know what’s going on — some key details are missing from your brain.

We have entered an era of fragmentation, and our brains have developed the habit of fragmentation, which makes us feel uncomfortable without looking at fragmented information for a day, and then slowly lose the ability to think deeply.

Writing forces you to think, to sort out your body of knowledge, to prevent yourself from being filled with fragments.

In fact, many people know that writing is a very good thing, but they are lazy and cannot carry it out. Let’s do it! Push yourself, be hard on yourself! People with self-control and persistence are more likely to succeed!

Ps: Write a good article, welcome to contribute to old Liu ah.

What you see is just the tip of the iceberg, more wonderful articles, please move to “code farmers turn over 2016 article essence” or “code farmers turn over the first half of 2017 article essence”

Any tips you’d like to share? Welcome to contribute! My contact information: Wechat: Liuxinlehan QQ: 3340792577

Code farmers turn

Use storytelling techniques