Today I saw a discussion post on the company Intranet, the original text is as follows:

How does one’s job reflect one’s technical depth?

How to accumulate technical depth in work? And how to reflect a person’s technical depth?

Thinking: the difference between making demands and making demands

Before I answer any more questions, I want to leave the word “technical depth” behind and talk about doing requirements, and my understanding of doing requirements. Every programmer starts with requirements just after graduation. Why do some gradually become the big shots, leading large technical projects or moving to team management positions, while others are still doing requirements? I think the difference here is that each person has a different understanding of what it means to do requirements.

The difference here is whether you have a kind of mentality to fulfill the requirement, whether you make the requirement to the extreme, or just fulfill the requirement as a task, to achieve the desired function of the product. The difference between the two, which seem similar on the surface, is whether you take a higher perspective and want it to be perfect. Have you considered the defects in product design from the perspective of requirements, can you provide suggestions for product design in reverse, can you achieve high quality, high compatibility and no bugs from the perspective of technology, and can you iterate quickly and efficiently next time there is a similar requirement?

In a word, can you get out of the role of a programmer and a passive executor, but to do this as a product as a technical director of the mentality.

What about business requirements

Easier said than done, if can’t do at the beginning, then you have to focus on the things first, attention to detail, starting from the demand of the requirement review, writing technical documents, design documents, code comments to the development, structure design, guarantee the high quality, improve the code logic without holes, buried to the abnormal points, indicators monitoring, online availability operations and so on, seriously a demand of every link.

When you think you’ve done every little thing in the process, you can then drill down into the details to see if there are any problems with the process. Do communication cooperation if you have any questions in the process of demand, the process specification if you have any questions, mechanism link which issues, code if there is a lack of public basic abilities, you are in the process of development is a universal problem, the problem of can abstract out a public library to solve your questions, can you make a SOP solution process, Or to refine a best practice and share the experience inside and outside the group.

Use these little things to practice your problem solving skills, as well as your ability to find problems at a deeper level. By constantly discovering problems, thinking about the causes of problems and coming up with solutions, I finally solved the problems of myself, the group or the partners, and exercised my comprehensive ability and gradually grew up.

Talk about technical depth.

Having said all that, you might say, what does this have to do with what I’m asking about technical depth? Let me just say this: talking about technical depth without business needs is hooliganism.

As an example, data visualization in 3 d three. Js, live video codec compression, client security and defense penetration, each is a technical depth, but the problem is even if you have mastered these areas have very high after the technical depth, cannot be applied to business requirements, product cannot solve the urgent problem to solve, Failing to deliver on your boss’s OKR, achieving your department’s strategic goals, or being a useless hero (or choosing a team that can be useful, that’s a different story).

Because these single point of technical depth of things, can not bring you intuitive and obvious “return” (that is, Yan Ruyu gold house and gold list title), also indirectly hit the initiative (of course, their interest in a technology and study is not included in this discussion). So improve their technical depth, the best way is in the company’s business, found that the depth of things, then go on to conquer this problem in the process of improved their technical depth, which follow the development of the company’s business has itself come up at the same time, you use the technical ability for the company to solve the problems in the process of business development, Naturally also obtained from the company should have the return. This is a way to gain technical depth with the highest ROI input-output ratio.

Get the authorization to do something deep

After figuring out the path to gain technical depth, the next step is, how do you get your leader to assign you something with technical depth?

There are a lot of technical depth and technical difficulties in business development, why does the leader want to arrange you to do this? What makes you think you’re “capable” and “willing” to get this done? Ability and willingness are two of the most important decisions in job assignment as a leader (I will write another article on how to do division of labor from a management perspective if I have the opportunity). Since you can ask how to accumulate technical depth, I believe you must have a strong desire, so the only thing left is how to make the leader think that you have the ability to accomplish this technical depth thing? For this question, you can refer to the answer I wrote earlier: How to manage the leader’s expectations of your ability? The simplest is what I speak in front of him, can you do deep thinking in the development requirements, the pursuit of perfection, excellence, responsible, have the consciousness of ownership and the main R consciousness, in every little thing can do “closed loop”, after will allow you to take a broader progressively higher challenge greater depth, form a positive cycle.

That’s why I started by emphasizing the importance of doing every little thing well.

Technical depth is not the only criterion

As a programmer, at the beginning of his career, it is true that technical depth, that is, technical ability, is the biggest measure. But with the development of the career, the rank from L5 to L8, standing on the Angle from the company, the need for a person, also can be done from a business needs, can lead a group to accomplish a larger dimension requirement, can solve the problem, for the organization for the department to achieve strategic objectives, the demands of people’s centre of gravity will change slowly, This change can be seen in the radar chart of the company’s rank capability model system.

Therefore, blindly pursuing the accumulation of technical depth will go astray, but it is not to say that technical depth is not important, technical ability is the foundation of a programmer’s life, but in the accumulation of technical depth at the same time, also need to learn and exercise the ability beyond technical depth. What are the specific other abilities? This will be enough to expand several articles, but I won’t go into details here today. If there is an opportunity, I can talk about my understanding of this aspect.

The last

So short step without thousands of miles, not small streams into rivers and seas. Before starting to do every little thing, each business needs to do 120 points, deep thinking and find problems and solve the problem, build up on responsible technical cattle people, responsible for technically difficult things step by step, follow the company’s business development own business experience and technical depth, can achieve the win-win in return.

This is my understanding of the accumulated technical depth of the incident, there may be some one-sided and extreme, after all, is not who can have a good leadership, restraining is not who can have a rapid development of business, is not who can have encountered technical difficulties and technical challenges of scene, no matter what I say, the existence of the survivors will have deviation.

Efforts and opportunities coexist, opportunities can be met can not be found, so what we can do is to learn the right way of thinking and method of doing things, and to practice it unremittingly. It is easier to know than to do. It is easier to learn than to stick to it. If you don’t, you have the “ability to choose” — the ability to choose better opportunities and companies.

The above are personal subjective and one-sided views, welcome criticism and discussion ~~.