Talking about the advanced way of programmers through the user's thinking

Source: Internet
Author: User
Tags data structures

Recently read a good book about the product "user thinking + Good products let users scream for themselves", although it is a product-related books, but the book is around how to make your users more excellent discussion. The author's point of view is very clear and unique, the product of sustainable success is produced by the recommendation (Word of mouth). What motivates these recommendations is how users feel about themselves, that is, what our products or services help them do or become. This may also be one of the reasons why knowledge has been paid for years.

The author of this book is a place where the user's mind is dug to the extreme, which is everywhere in this book. So to speak, the book itself is very user-minded, in the key point of view or knowledge point, always with just the right vivid illustrations, read without difficulty, imagine the "Head first" series of books of the Wind. Austrian right, the author of the book Kathy Sierra is one of the planners of Head first series books.

When I read this book, I was more of a user of the book. So the biggest feeling after reading is, can I use the book to make myself better? After all, user thinking is everything from the user to start. After thinking, I think it's possible. From this point of view, this book has gone beyond the discussion of how to do a good job in the scope of the product, focusing on the user thinking of the two words. And this kind of thinking is the growth mode of thinking which is mentioned in the translator's preface. This is also my purpose of writing this article, I hope that this growth of thinking can be a reference to their own advanced way. It would be nice if we could help.

How do we maintain the ideal growth curve?

User Ideal growth curve:

If you move up the curve to the right, we will eventually reach the height of the expert (a field). But most of us just want to be better, a little bit of progress will be obvious. So how do you move up and down the growth curve to the right, or even close to the ideal curve? Perhaps we can find the answer from the experts, first of all we need to know what is an expert?

Experts don't just mean what they know. What is important is that they can apply the knowledge they already have to practice. And they can reproduce the process over and over again. In one area, given a representative task, the expert's completion is better and more reliable.

And then we'll see how the experts do it?

    • Build your skills in a continuous manner
    • To keep the desire for success
Continuously build skills to build skill

To be professional, you have to build your professional skills. Skill building is the ability to move a skill from " can't do " to " can do ". Can be done and divided into two categories: laborious (unreliable) and proficient (reliable, in-built).

The skill-building process that we envision might be:

However, this is not an effective way of leading to a high level of professional competence:

Let's see how the experts do it:

    • Experts never stop adding new skills.
    • Experts are both consciously building skills and unconscious of building them.
    • Experts will improve their existing skills.

We should pay extra attention to this process:

The knife does not grind to rust, and those skills that do not require our conscious practice will slowly degenerate. So just using is not enough, but also need to come up with conscious practice.

Deliberate practice

We often have this feeling, in the practice of a certain skill, we have paid the effort, also paid the time, but the effect is not ideal. Many people may blame themselves for being stupid and have no talent, but it is not, probably, that they are practicing in the wrong posture.

In the same time, the experts will put more time on deliberate practice , attention can be deliberately practice is not deliberate practice . You can practice to help prevent falling into mediocrity, because: mastering half the skill to win a bunch of semi-baked skills .

In general, finer-grained sub-skill learning is the best way to build skills, but no one wants to spend a week on simple exercises. Deliberate practice always happens to be beyond our current capacity (comfort zone). This is very important, and if we practice those skills that are far beyond our current abilities, it is likely that it will be too difficult to give up without feedback for a long time. And if you have been practicing without the difficulty of challenging skills, the consequences may be more serious, the more we practice in the mediocre stage, the greater the strength of mediocre skills, and the effect of the exercise is permanent.

The simple principle of deliberate practice: to complete a fine-grained task, you can achieve a proficiency level of 95% through a 45-90-minute exercise of one to three groups.

If this requirement is not met, we can divide the task into smaller subtasks, or reduce requirements and standards.

    • if the task or skill is too complex (too many skills not mastered), divide it into finer-grained subtasks or sub-skills
    • If the task is not complicated, it is too difficult to reduce the requirements or standards

But the biggest problem most people face on most of their professional competency growth curves is that stage B accumulates too much stuff . Instead of just doing one thing at a time, we want to learn and practice too much at the same time. This form of skill-piling can slow progress and stifle progress.

Experts will put more time in deliberate practice , give us the significance of reference. The programmer's career, not learning will be eliminated, learning means to build new skills, enrich their skills library. At this time, you can use the above-mentioned method of deliberate practice. First of all, we need to clarify the goal of our learning, learning this skill can help us to accomplish what, whether it is worth our study, not greedy big greed, should determine their core competitiveness is what. In order to read the excellent source code (as for why read the source codes, referred to later) as an example, the general source of a project to the worth of reading learning phase, this project should have been more mature. Then the code of this project and the code of the difficulty should be not small, if starting from the latest and most full version, it is easy because it is too difficult to give up. Then the task can be disassembled at this time, can be seen from the earlier version, this period of code is smaller, code design to be better understood. Or you can study one of the features in this project and then switch to another function later. For example, the research database, the development of the database to the present, the implementation is extremely complex. Then we can start with a few of the main features, such as indexes, locks, and so on.

In addition, we need to pay extra attention to the two issues mentioned above, one is that stage B accumulates too many things , we want to learn too much, but the energy is limited. At this point, you should shrink the front and focus on building the most important skills. Master half a skill to triumph over a pile of semi-baked skills . The other is that the more we practice in mediocre stages, the greater the reinforcement of mediocre skills and the effect of exercise is permanent . There are many long-term programmers, professional ability is not as good as the new people who have just worked for several years. The reason, all because of no effort? Otherwise, they tried, but they stayed in the comfort zone for too long.

Perceptual Contact

We will often hear such a view, Chinese people do not learn English, because the Chinese people never use English, but simply rote. In the same way, experts become experts because the environment around them is better, and they are exposed to a lot of high-quality professional skills . China has an old saying, "Jinzhuzhechi, Howl", is the same truth. In the present is, if you are surrounded by good people, then you are probably not far away. But unless specific conditions are met, simply contacting a professional can not help you build your professional skills .

There is a vivid example in the book, Chick Sex identification. It is difficult to discern the gender of the newborn chick, but it is easier to identify the chick's gender and separate the rooster from the hen, helping to get into the egg production process more quickly. At the beginning of the 20th century, the Japanese developed a method for identifying chick sex, but only a handful of experts mastered it. The key now is to train novices with this skill to apply it on a large scale. The problem is that experts who master this skill do not know how they do it. your brain can learn something you can't learn, it's not magic, it's perceptual knowledge.

This is how they train new people, let the new person randomly point out the sex of chickens, just random speculation. Then the chick sex expert gives feedback to the newcomer, right, wrong, wrong, right. Every time a rookie guesses, he gets feedback from the experts. Finally, with the passage of time, the new people in the chicken sex identification performance is getting better. It's just that the new guy still doesn't know why.

In fact, after reaching enough feedback, your brain begins to discover patterns and underlying structures without the need for conscious intervention, and with more exposure, your brain begins to carefully adjust its perception and ultimately find a real solution. Your brain can perceive more subtle features, distinguishing signals from noise, even if you can't explain the principles.

Experts in all fields learn and use unconscious perceptual knowledge, and their brains know far more than they show.

When you are exposed to a multitude of diverse instances, your brain begins to see what is constant. Where perceptual learning can play a role, "discovery" is actually more effective than "lecturing". Our goal is to help ourselves to become better by demonstrating a good example.

Now know why to read the source of learning, but also to read excellent source code. You don't need to see how good programmers write code, just read a lot of good code. So do not write a good code of their own reasons to blame for not Daniel, and do not want to imagine if there is a Daniel take me to write code just fine.

So, do you want to look at the bad code? To see! Because sometimes this is not the question you want to see, but you have to see, the project will have rotten code. when you really need to show or read wrong or bad examples, create a feeling of discomfort. I once told my team that sometimes reading bad code is faster than reading good code. But the premise is that you want to be able to identify what is good code, or what is bad code. When you see the rotten code, you will be in the bottom of the heart, and then just try to change it, this is the opportunity to progress AH. The best way to learn to identify "bad" examples is to learn the hidden patterns of "good" examples. refactoring to improve the design of existing code this is how this book is done, first of all to clearly point out the characteristics of bad code, and then the code for these characteristics of refactoring methods and solutions.

Keep the desire to succeed remove obstacles

How can you ensure that you follow the ideal growth curve to keep moving forward? Know that there is a gap between desire and reality. There are some things that interfere with us, there are two different types of interfering divides.

    • Skill gap

    • Relationship Gap

The first time you learn to program you will suffer a lot of pain. Anything that is worth your while is so. So when we are faced with difficulties, the first thing is to admit the difficulties. People give up when they are in trouble, not because they are in trouble. This is because they do not know that their situation is normal. This is because they do not know that their efforts are in the right direction. This is because they do not know that others will encounter difficulties at the same stage. Those who give up, do not realize that the difficulty is only temporary, it is normal.

After acknowledging the difficulties, we also need to make predictions and compensation for the problems that may be encountered in the growth curve. Predict the factors that might interfere with our progress. For example, when I am reading, I will mute my phone to places I can't reach. So I will not always think about the phone will not have news, wait until the book to deal with it. Then we have to compensate for the difficulties they encounter, in the case of programming, we have encountered the problem is basically the predecessors have encountered, this time use the search engine is very useful. Forums and communities are also very important.

Progress + Rewards

We know the factors that hinder us, but what are the factors that draw us forward? I think it's a sense of accomplishment . What you gain from your growth path will give us a sense of accomplishment. If we do not get any benefit from progress, everything will become meaningless. So it is very important to plan the growth path map, only to know that there is such a growth path exists, is a strong source of motivation.

For programmers, make a list of skills ranging from beginner to advanced . It is then divided into different levels and levels. As a practical practice, the time spent at each level is twice times that of the previous level. Even if the path is not optimal, it does not matter, because it is not the path, but the progress. Let's be bold, even if we try. In addition, the use of domain-specific terminology for communication is not only useful, but also an incentive . So communicating with colleagues, or blogging to share our skills is a great way to motivate.

Maintaining cognitive resources

In 1999, Professor Baba Shiv and 165 college students carried out a simple experiment. He asked half of the students to remember a 7-digit number, while the remaining students remembered a 2-digit number.

As a result, many people may think that the brain needs more calories after work and needs to eat some cake to replenish energy. But the researchers have revealed to us a counterintuitive, shocking fact:

Willpower and cognitive processing ability derive energy from the same resource pool.

The 7-digit participants chose the cake, not only because their brains needed more calories, but also because the memory task depleted their willpower to resist the temptation of the cake. So we should make sure that we use scarce, easy-to-consume cognitive resources on the right things. The core task is to reduce resource leaks .

Reduce cognitive disclosure
    • To reduce cognitive disclosure, the cognitive work should be delegated to the outside world (so that it does not stay in the user's brain)

      Our brains can only focus on one thing at a time, and our brains retain a "background process" for unfinished or interrupted tasks, and multitasking can drain the brain's energy. People are more likely to remember unfinished or incomplete tasks, which is the Zeigarnik effect .

    • To reduce cognitive disclosure, don't let users choose

      Choice is a costly cognitive overhead. Read an article about not studying or working in your bedroom. This point I deeply think, learning is a violation of human behavior, choose to study or work in the bedroom, it is likely that the whole weekend is in the wake up to study work or lie in bed rest in the tangle of spent. So simply do not give yourself the opportunity to choose, I now is the weekend will smoke a day early to get up, and then go directly to the company, broke the idea of their own to lazy.

    • To reduce cognitive disclosure and help users to get their skills in

      The skill at stage B consumes a lot of cognitive resources, while the skills at phase C consume less cognitive resources. So we prefer to be proficient in only one skill and not to learn too many skills at the same time.

    • To reduce cognitive disclosure and reduce the need for willpower

      Self-control and willpower are expensive cognitive resource costs. To reduce the user's need for willpower, assume they don't exist at all, helping them develop their habits. Habit requires little willpower or no willpower. But our focus should be not just to develop new habits, but to upgrade or replace bad habits that are prone to platform and medium-skill dilemmas.

Trash filter through the brain

Our brains are always trying to distinguish between noise and signal, which is actually a good thing, but we can't control the filter. So we need to do another thing to stop the brain from treating things we should be concerned with as rubbish .

We have to help the brain agree:

    • It's a matter of concern.
    • This is something worth concentrating on.
    • This is something worth remembering.

the brain likes to learn as it is, rather than as a storage-type learning. This is why the same work time, different people's ability to improve the difference is very big. If your job is very challenging, then you need to always learn new skills to meet the needs of the job, and all are learning to learn, which is what our brains like. On the contrary, your work is not challenging, even if you are constantly learning, but never use the new skills you have learned. We often have this feeling, a lot of what we learned at the time, after a while basically forget, because our brains do not like the study of the reserve type. So we can use skill mapping to verify the usefulness of knowledge, by mapping knowledge into skills to validate (reduce) the knowledge that must be learned. Delete, delete, delete the superfluous knowledge directly.

use application scenarios to persuade the brain. when we learn a very abstract skill, a bad understanding and a memory, we can try to use the application scenario to persuade the brain. For example, when learning about the 5 basic data structures of Redis (now 6), you can think about what scenarios each structure can be applied to. Hash can be used to record the number of likes, comments and clicks of a post, Zset can be used to record Hot List post ID and so on.

At last

Work hard, flirt, make a great achievement

Coderfocus

Public Number:

Statement: This article for Bo Master Learning sentiment Summary, the level is limited, if improper, welcome correction. If you think it's good, just click on the "recommend" button below, thanks for your support. Please specify the author and source of the reference.

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.