Programmer's growth class-after reading

Programmer's Growth Course

Chapter 1 How to Choose Technical Direction

Efforts are only valuable when they are in the right direction .

1.1 Three-stage model of technology growth

The most important thing at this stage is to improve your special skills, so that you can quickly get things done by others and reflect your value .
The duration of this stage varies from person to person, and may be 1 to 3 years. If you haven't entered the next stage for more than 3 years, then your growth rate needs to be improved.

A very important sign of entering this stage is that when you encounter a problem, you no longer think from the bottom up (that is, from the technical implementation details to consider whether the problem is implemented, use technology to tailor the problem or redefine the problem), but from Break out the details of implementation, stand on a higher level, think and analyze from the top, first use the framework and logic to analyze what the real problem is, the purpose of the problem, the current situation of the problem, and how to solve it. After you understand this, you will settle down to the technical level to consider the choice of implementation, and when implementing, you will not stick to a certain technology, but use whatever technology is appropriate (your goal is not "use Java or Redis solves problems" but "solves problems"). To put it simply, you have gone out of the process of being bound and shaped by technology (the first two stages), and you can turn back to the source of the problem and think.

1.2 What factors should be considered when choosing a technical direction

Lindy effect, that is: for things that will not die naturally, every additional day of life may mean a longer life expectancy.

1.5 Direction selection during technological transformation

At this time, there is a gap in the card slot market, and it is a very good choice to learn new technologies that are scarce in the future. And at this stage, you must also actively explore. It is best to set yourself a goal of learning a new technology every year and complete it outside of work .

2.3 Learning mentality

The so-called learning mentality refers to the awareness of active learning, and always look at what happens to oneself with a learning perspective and mentality.

2.4 Ways to Improve Technology

What others do well may be the direction of our efforts. We have to use our eyes to be good at discovering, to find the prominence of the people around us.

Here are some proven and effective promotion strategies that you can use directly.

  • Trying to use different modules or APIs of the same technology to implement it will give you a better understanding of the technology used.
  • Take a look at the technology you are using, think about which of the three levels you are in, and find room for further improvement to learn and practice. By continuing to do this, you can progress from general understanding and basic use to familiarity and proficiency.
  • Understanding the technology related to the current technology can expand your knowledge graph.
  • Trying to use different technologies to achieve this can deepen your understanding of the problem and refine new technologies.
  • Look at the technology points and technology stacks used by others, try to understand, and broaden your horizons.
  • Looking at other people's designs and codes in the same project helps to understand the entire project.
  • Trying new designs can deepen your understanding of the problem and exercise your own architecture and design capabilities.
  • Look at the requirements and design documents of the entire project. Don't be limited to the modules you are responsible for, so you can improve the overall view and system view.
  • Iterative refactoring of old code, iterative refactoring can solve the problem of insufficient time.
  • Read excellent source code, see what is good, think about what is good, and figure out how to do it yourself, so that you will make progress every day and eventually reach a thousand miles.
  • Participation in open source projects, participation in open source projects is much more demanding than reading open source code. You have to be able to understand the existing code and find areas where you can contribute (issue, feature, etc.), and your code must conform to the project’s specifications. You will also be reviewed by the project owner or other members. These are very big challenges and will allow you to grow quickly.
  • Writing a technical blog is conducive to the improvement of writing, logical thinking, teaching, design and other abilities, and it is also conducive to systematizing your knowledge. The best way to learn is to output.
  • Leaning to others, training the skills of teaching, speaking, communication, summarizing, logical thinking, etc., is also very helpful to the internalization and systematization of knowledge. When you can tell a point of knowledge so that others can also understand it, you really understand it.
  • With good people and teams, mirror neurons will let you automatically learn how good people do things, the so-called "seeing the good and thinking together."

2.5 Goal setting and execution

Xiaoqiang's promotion note, the book introduces 4 secrets for writing the next move:
·The beginning of the verb . A good action should start with a verb, such as "call XX", "prepare meeting materials", "reply to E-mail", etc. Only by starting with a verb can it be enforceable.
·The content is clear . For example, "preparing meeting materials", although it is the beginning of the verb, the description is not very clear, "what materials need to be prepared", "when will the meeting be held", and "what questions will be raised at the meeting", these need to be further implemented. So this next move is a failure.
· Describe the results . Describe the desired result before the task begins. The clearer the description, the greater the energy generated. For example: "At 9 o'clock in the morning, bring the prepared plan to discuss the marketing plan in the No. 1 meeting room, and convince the participants to agree with my marketing plan."
·Set the start time, period, and deadline . After setting these three time-related attributes, you can arrange your own time more reasonably, grasp the progress of actions, and take care of others' time.

When you can decompose the next sequence of actions (at least three) that can be started immediately from the goal, you can do it. After finishing one, decompose the new next action, add it to the action sequence, and then start the new next action. By running like this, your goal will be achieved steadily.

2.6 4 Habits of Diligence

  • Every night when I get off work, I record what I have accomplished, what problems I have encountered, and what I am going to do tomorrow. Record it in a paper notebook.
  • Before officially starting work every morning, review the contents of yesterday's record, decide which things to do today (preferably no more than three), and focus on these things today.

Very simple, but easy to use. Keep doing this and your work will become more efficient and easier. The most important thing is that you will know that you have achievements every day, and you will not feel anxious and panic.

The so-called review is to "go through" the things done in the past in the mind. It realizes the improvement of ability by reviewing, reflecting and exploring past thinking and behavior.

Many developers are busy working on projects, often rushing to work, delivering, and starting new projects. They rarely think about how the projects they have done, what is good or bad, where are the reasons, how to improve and upgrade, and they fall into non-stop working on projects. Years of experience use a ten-year cycle, and it was only after many years that I found out that my experience is not enough for my working years.

2.7 Habit Formation Guide

As long as you can do the following 5 points, habit development will be much easier:
· Find the inner driving force.
· Reduce the difficulty of change.
· Make changes visible.
·reward.
· Allow exceptions.

If you want a habit to be implemented in yourself, the habit must be driven by your heartfelt desire. Only if you start from yourself and want to do it from the bottom of your heart can you develop this habit.

We develop a habit, the purpose is not to pursue 100% accuracy of the habit itself, but to use the power of habit to make our work as efficient as an automated script.

2.8 Core competitiveness beyond the technical level

Therefore, when you learn to use a certain technology, you should focus on how to use it to solve problems, and how to refine your application process in solving problems. This is the right posture to build core competitiveness .

What determines whether a programmer has an advantage is the ability of the application process, that is, logical ability, thinking ability, imagination, architecture design, problem-solving framework, rapid learning, self-management, innovation and creation, etc.

3.1 Is it really necessary to manage

Lao Lu has a clear understanding of technical management work, is engaged in technical management work, and can lead the team to achieve greater goals and make better products. It requires you to slowly abandon the pursuit of a sense of accomplishment at the technical implementation level and turn to Use yourself as a catalyst to stimulate the potential of others and allow the team to exert maximum effectiveness.

3.3 Understanding management roles

Managers complete their work through others. This is the definition of managers.
Managers have two major tasks:
·Complete work objectives
· Train subordinates

Even if you are a bit introverted, you can still try to be a manager

Because managers are not born, they can be cultivated, management and communication are both skills, and skills can be acquired. As long as you master certain methods and practice, you will be able to perform management positions.

From the performance point of view, excellent managers should do the following:
· Subordinates can do their best to grow, and personal goals can be achieved in the process of achieving team goals.
· Subordinates trust you and are willing to follow you.
· Achieve team goals.
·The boss trusts you, is willing to entrust the team to you, and is willing to entrust complex things to your team.

None of these 4 points can be easily achieved. You see that a manager is relaxed. He either failed to do these points, or wrapped up his own hard work, heart, and hard work, deliberately acting like a lighter.

"The Way of Code" said: "Becoming a good manager, all you have to do is to ensure that your people can work, and treat them as people (not resources)."

The reason why this statement is emphasized is actually because it is really difficult to pay attention to people, to really pay attention to someone and to care about someone.

Let's select a few important abilities that the programmers as executors do not possess to describe.
1) Empathy

Leaders cannot regard people as machines for completing tasks. They must respect their subordinates and treat them as living and unique individuals.

As a living individual, he has sudden emotions, his own thoughts and opinions, what he likes and hates, and a specific family environment, all of which will make him different from you and what you expected Is different. He must not be what you expect. There will always be inconsistencies in this or that aspect with your ideas. These inconsistencies will definitely be reflected in the work.

The so-called empathy refers to the ability to enter the other's inner world and experience the other's inner feelings, and then express the understanding of the other's feelings in one's own words, so that the other party feels understood and accepted. Empathy is to understand the ability of the other party from the perspective of the other party, not from the own reference system.

To put it simply, empathy is to change shoes to walk. You should always wear the shoes of your subordinates, so that you can understand his thoughts, problems and difficulties, and understand why he has been negatively inefficient in his work recently, and why three are not. I have to ask for leave at five o'clock. Why are you late in the morning? Why not do things the way you said...

There are very few black and white situations in the workplace, and very few people can do a good job with logical correctness and justification. On the contrary, everyone is emotional, and often only emotion can make a person do things voluntarily. . And to leverage the power of emotion, empathy, is a necessary basic skill. With its blessing, work can be done smoother and smoother.

2) Delegate tasks

When assigning tasks, follow two principles: not only let a certain member do what he is good at, but also give him something beyond the scope of his ability and bring some challenges; not only give a certain member the task he is willing to do, but also Give him tasks that he may not be particularly happy to do.

3) Goal integration

4) Feedback

When employees work overtime all night to launch the new version, even if something goes wrong, they should express gratitude and comfort their emotions in a timely manner. When an employee has done an excellent job, he must be generous with praise and affirm his outstanding part. When an employee has done something wrong, he must discuss the matter, do not judge his character, and work with him to find ways to improve and let him know how to improve himself.

If you only want to enjoy power and rewards and do not want to take responsibility, then you are not worthy to be a manager-taking responsibility and pressure are the basic requirements of managers.

3.4 4 ways to move towards technical management

When you find the right position and decide to transform to technology management, you must consider a question: How can you move from a development position to a management position?

Generally speaking, there are four kinds of routes:
·Skills and excellent are managed.
·From handling to management.
· Jump from a large company to a small company.
· Obtain the PMP certificate and switch to the environment where it is needed.

In this model, there is a special reminder: marketing presentation. Because many people still hold the view: as long as I work hard and earnestly, one day the leader will find me and give me the opportunity I want. But in fact, unless you are 10 times more excellent than others, it is difficult for others to take the initiative to discover your special features and give you the opportunity.

Therefore, we must not only work effectively and make achievements, but also show them to others.

3.5 How to prepare for becoming a manager

To become a prepared person, the key is: you have made a relevant plan before you are in charge of something; when you are not in a role, you have prepared the abilities it needs.

A person's ability is actually divided into two levels: knowledge and skills.
The so-called knowledge is the information that you know and can cause you to change.
For example, the virtual function of C++ is knowledge, and you learn this knowledge when you learn virtual functions.
The so-called skills are your ability to use knowledge to solve practical problems.

Extending the example of virtual function, you can use the principle of virtual function to design an interface to abstract shapes such as line segments, triangles, squares, rectangles, ellipses, five-pointed stars, etc., to achieve 2D drawing, and finally complete the production of a flowchart software , This is the skill.

To prepare for technical managers, you can start from both knowledge and skills.
First of all, you have to reserve management knowledge, which can be done by reading. Secondly, you have to find ways to practice the knowledge you have learned and internalize various management knowledge into your skills

The most convenient and effective way to learn management knowledge is to read.
When reading, you can study the outline first, and then study the special items.

For example, in terms of communication and speaking, see "The So-called High EQ is Talking", "Key Dialogues" and "The Introvert Communication Bible"; for example, in terms of delegated tasks, see "Technology Assigned: Workplace Promotion First Lesson" and "Don't Let Monkey Jump Back to Back; For example, in terms of leading people, see "Techniques for Leading People: You Can Do It Yourself without Leading People"; for example, in terms of goal management, you can read "Management by Objectives Handbook"; for example, in terms of counseling ability, you can read "High-Performance Coaching"; for example, in terms of speech and expression, see "Efficient Speech", "Pyramid Principle" and "Power of Speech"; for example, in terms of appeal and influence, see "Influence", "Horizontal Leadership" and "Your Team" Need someone who can tell a story: Use story thinking to solve problems and "Identity: The Art of Packaging Facts with Stories"; for example, for time management, see "Xiaoqiang's Promotion" and "Get it done"; for efficient work, see "Seven Habits of Highly Effective People" and "Common Sense of Doing Things: Once things come, you know how to do them"...

After you reserve the knowledge required for technical management, you must work hard to discover management-related opportunities at work, apply the knowledge you have learned, and slowly turn this knowledge into your skills.

To find management-related opportunities in your work, the key is to think outside the scope of work content and job responsibilities, and think about the overall situation.

At work, there are 4 strategies to cultivate related abilities before becoming a manager.
1. Look at the problem from the perspective of project management

Look at the problems from the perspective of project management, think about how the current project is managed, what are the problems, and how to improve. Set a goal for yourself and try to pick one problem every day to figure out how to solve it.

2. Take the initiative to undertake chores outside of responsibilities. Take the initiative to take the initiative to undertake things
related to organization, coordination, communication, and management, such as organizing meetings, tracking plans, assigning tasks, and promoting multi-stakeholder collaboration.

3. Imagine you are a technical management role

Think from the perspective of a manager, learn from the managers around you, review the managers around you, see where they are doing well, how to learn from them, where they are not doing well, how to improve, and imagine what they would do if they were a manager

4. Find a role model

If you want to successfully move towards a technical management position, learning and thinking for yourself is one aspect. There is also a very important way to improve: find a person in a technical management position in the organization as your career model

Whether at work or in life, as long as you remember your goals, you can find many opportunities for practice. As long as you take the initiative to grasp every opportunity to practice and improve, you can slowly become a technical manager. ready.
In the preparation process, there are two key points:
• Carefully discover those tasks that need to be organized and coordinated to connect different links.
· Stand up and take responsibility.

4.1 Challenge 1: Role change

When you are a developer, you are a personal contributor. You only need to manage yourself. You have strong professional skills and professional awareness, and you can actively pursue and achieve personal high performance. But once you become a technical manager, your role changes. In addition to managing yourself, you have to manage others. Your work is done by others, and you must pay attention to management, rather than doing everything yourself (regardless of the reason).

The team needs you to plan, set goals, track plans, and coordinate resources. Others need you to coach rather than do things on their behalf, and they will be bored even if you tell them how to do it-because every qualified developer wants himself If you figure out how to do it, you want to do it yourself instead of being your hand, always under your control. You may be better at discovering and solving problems. You will find it hard to resist the urge to solve them when they can't find the direction, but you should still sit on the sidelines and let your subordinates do it by themselves-at best, give guidance. So they can grow.

Remember, you must focus more on people, processes, and projects. Your job is to ensure that other people's work can be carried out smoothly. It is to create an environment where everyone can do their best to achieve team goals and personal growth. .

4.4 Challenge 4: Delegate tasks

· You don’t have to nor can you satisfy everyone, just satisfy most people

4.6 Challenge 6: Resource Management

The developer's time also needs to be managed well. A few reminders in this regard:
Don't fill up the developer's time, just 70%.
·Don't count overtime hours when arranging work.
·Follow the principle of serial work and don't schedule multiple tasks for a developer at the same time.

5.4 Job-hopping or lying

A key attribute of job-hopping: uncertainty. No matter how many factors you weigh, there is no guarantee that this job-hopping will be better than the last one.

Therefore, you must prioritize whether an opportunity will help you achieve your mid- and long-term goals when you quit, so that you can make a valuable choice with a high probability, and avoid the worse you jump, the more regretful you look back.

Continuous accumulation is very important. Whether it is a job-hopping or a job, we must be based on whether we can build accumulation in a certain direction. Job-hopping that meets your career goals, can continue to bring you accumulation in a certain direction, and can take your career to a higher level, is a good choice .

5.5 Do you want to hop after salary?

The most ideal job-hopping is: it is in line with the career development direction and the salary is high.

When we look at an offer, we should not only pay attention to salary figures, but also pay attention to: what development space and growth opportunities it can provide us.

Consider the salary under the premise of development. This is the principle we should follow when we change jobs.

5.6 Choose a large company or a small company

If it is difficult for you to confirm what you want, but you have to make a choice. Considering the status quo that it is easy to enter a small company from a large company, and it is more difficult to enter a large company from a small company, then choose a large company and enjoy its Various benefits. In this way, when you find your career goals or are tired of big companies and need to leave, this experience can also add to your resume.

7.4 6 secrets of salary negotiation

Never take the initiative to talk about salary unless they ask you

Some companies only want to find employees who are able to work and require less money. When they come up, they will ask you the salary you expect. You can answer:
"I think it would be more appropriate to discuss the salary when you decide to hire me."
"I am willing to answer. , But I want to first understand what this job needs to do."
"My expected salary is 30,000 yuan and 50,000 yuan per month" or "My expected salary is 300,000 yuan and 500,000 yuan per year", pay attention to giving one Range, don't give a fixed number

5. Don't mention numbers
first. People who raise salary numbers first will often lose .
If the other party asks you to mention the number first, you can answer like this: "You must have some consideration for the salary of this position. I want to listen to that number first."

If the other party insists on telling you, just say a range (the previous investigation will be useful at this time). This range should clamp the upper limit of their salary range, similar to the one shown in Figure 7-8.

Note that you have to think about which benefits you value most, such as provident fund, medical insurance and annual leave. If you pick everything at once, you may leave a negative impression on the other party.

7.5 When can I get a job cut?

It is strongly recommended that you sort out your most important points before hopping, and sort them as above, with the highest priority in the first place.

7.6 Is salary proportional to happiness?

Money brings a more direct sense of happiness when you are poor (the so-called poverty refers to the state that you have to abandon another in order to buy a necessities of life), and once your life leaves the state of poverty, money’s Increases may reduce happiness-because you sacrifice more things to get more money, such as time, hobbies, spending time with family and friends.

8.2 Difficulties of programmer transformation

The key is to have a learning mentality, to be able to return to zero, to empty the cup, and to believe that everything is possible .

If you always focus on the training of specific abilities and ignore the general abilities of communication, coordination, management, teaching, analysis, etc., over time, you will find that it is difficult for you to make major breakthroughs in your work and you will fall into I am very skilled, but I can’t get the work results that match it."
This is often because you have overlooked one point: all problems are ultimately human problems.

To solve inter-personal problems, special technical skills are hard to come in handy. You must comprehensively use your various general abilities to create a harmonious working environment for yourself. With a harmonious working environment, you can use your professional skills to solve problems.

Your value derives from what you can do and what problems you can solve. You become you because of what you have done, not the evaluation of others-that is later, they leave after you have done something Hindsight.

所以,Go your own way; let others talk!

The same behavior produces the same result, which is consistency in software development. This consistency is the same in people. If you keep doing one thing, you will always get the same result. You have been doing it, repeating it, doing it with ease, and doing it all the time, it still has the same result. If you are unwilling to try other things, then you will not have big changes, and you will keep wandering on the old road. It is difficult to have new ones. development of

If you want work and life to get out of the dry well, you must introduce some changes and endure the uncertainty associated with these changes. If you continue to give yourself opportunities to try, you can continue to expand your cognitive and ability boundaries, you can continue to discover yourself, and you are very likely to find your talents and develop new careers.

8.5 How to confirm which occupation is right for you

Ask yourself a question: What is the most important factor in the profession?
Note that only one factor is selected. When you choose a career with only one element, the choice becomes a judgment, Yes or No, it is very simple.
In this regard, I particularly like the views in "Anti-fragility":

If you do something for more than one reason, don't do it. This does not mean that one reason is better than two reasons, it just means that by working hard to come up with more than one reason, you are actually trying to convince yourself to do something. Obvious decisions (strong in the face of mistakes) do not require more than one reason.

Insert picture description here

Guess you like

Origin blog.csdn.net/kaihuishang666/article/details/107947826