For programmers, which one is more important, technical ability or business logic?

2023-10-02-Technology or business.png

I. Introduction

Hello everyone, I am Cang He. By the way, Xiao Ming and Xiao Hua are both programmers. Xiao Ming just graduated this year and is interning in a small financial company. Xiao Hua has been working as a Java developer for 8 years. Both of them have recently faced the same problem: "Which is more important, technical capabilities or business logic?" ?", so they all asked the master for help.

Programmer Xiao Ming: "Master, our company's technology is too low. I feel like I can't learn anything. Which is more important, technical ability or business logic?"
Programmer Xiaohua : "Master, I feel like I can't learn anymore. I can't even work overtime as I get older. The 35-year-old crisis is coming soon. Which is more important, technical ability or business logic?"
Master: "Early in advance Clarify the importance of business and technology and make plans early!"
Programmer Xiao Ming/Xiao Hua: "Master, how do you say this?"
Master: "It's a long story..., you'd better go directly to Cang He's article..."

There is an interesting phenomenon in the IT circle. On the one hand, the supply market is saturated, and on the other hand, jobs in the demand market are hard to find. It seems that for programmers with less than 5 years of experience, the market is always oversupplied, and it is not easy to find a job. This year’s Internet has become a small financial circle, and it is hard to compete with academic qualifications and background, but for business experts with more than 5 years or more than 10 years Demand, demand companies are constantly competing for people between headhunters and recruitment platforms, either due to lack of technology or lack of experience. I don’t know if you have ever thought about why this happens?

I often see people arguing about which is more important, technical capabilities or business logic. If you are interested in this topic, you may wish to continue reading.

The article is about 6,000 words, and it is expected to take 15 minutes to read. If you want to see the conclusion, you can go directly to the fourth part.

2. The importance of technical capabilities

2.1. Definition of technical capabilities

Before we talk about who is more important, technology or business, let’s clarify one thing: no matter what,Technical ability is the foundation of our profession as programmers, and a solid foundation is accumulated The cornerstone of experience and further growth. Technical capabilities ensure our ability to build, optimize and maintain software to be high-performance, highly available and scalable.

Definition of technical capabilities

  • Programming skills

Includes programming languages, algorithms, data structures, and the ability to write high-quality, maintainable code. Programming skills are the core of technical capabilities and cover various programming languages ​​and development areas. Only when you have programming skills can you be targeted. Being able to read code and understand programming principles are the core skills of a programmer.

  • Development tools and frameworks

Covers the ability to use development tools, integrated development environments (IDEs), version control systems, testing frameworks, and various development frameworks and libraries. This helps improve development efficiency and quality. Coding efficiently through efficient tools and deploying and publishing the written applications are also core skills.

  • system structure

Includes understanding of operating systems, network principles, database design and system architecture. This knowledge enables us to build robust, scalable applications and systems. This is the advanced part of technical capabilities, which requires a comprehensive technical understanding of the system and the need to master design patterns.

  • Problem solving and learning skills

The fourth major manifestation of technical ability is problem solving and learning ability. Whether you can actually solve business problems through the three major abilities mentioned above, namely programming skills, development tools and frameworks, and system architecture, is also one of the manifestations of technical ability. In addition, New technologies iterate very quickly, and learning ability is also one of the manifestations of technical ability. Some people have strong learning abilities. It takes even less time to learn a new technology than others, and mastering it is more efficient. This is a manifestation of learning ability.

2.2. Advantages of strong technology

Strong technical advantages

Li Bai's "The five mountains are shaken when writing in high spirits, and the poems are written with a smile on Lingcangzhou". It shows that people with strong skills are not afraid of traveling all over the world. It also has certain applicability to us programmers. People with strong technical skills are not only respected by others, but also often able to take charge of themselves. They become the owner of a certain system and are independently responsible for a certain system. They are often liked by the leadership company. Many promotions within the company are for those who have demonstrated extraordinary technical strength and made outstanding contributions. .

The biggest advantage of being technically strong is that it allows us to successfully pass the interview, be competitive, and get a high-paying job. For example, with the same educational background, if A's technical strength far exceeds that of B, considering the job requirements, most people will choose A. Even if A's asking price is higher than B, for the company, instead of recruiting a few more people with low asking prices but average skills, It is better to recruit a strong technical force, which can often achieve the effect of "one Zhuge Liang is better than three cobblers".

Another point is that you can rely on technical capabilities to reap the dividends of technology. What does that mean? We know that now is the era of paid knowledge. It is difficult to obtain high-quality knowledge for free. Many technology giants have opened public accounts and knowledge planets, and have made paid programs similar to "Nuggets Booklet" Products, the prerequisite for forming products through selling technology is to have good technology, which also creates a lot of "wealth freedom."

2.3. How to break away from writing business code and effectively improve personal technical capabilities?

Most of the time in normal business development, we do CRUD work. Over time, we find that the technology in our field is enough to support us, and we are unwilling to invest in learning, resulting in that our technical capabilities always stay at the starting level. When I changed jobs or was unlucky enough to be laid off and prepared my resume for an interview, I realized that I seemed to have nothing else to talk about other than CRUD. How to resolve this situation? I think we can break away from writing business code from the following aspects and effectively improve our personal technical capabilities.

2.3.1. Continuously learn new technologies

Computer technology is changing with each passing day. Only by continuing to learn can we not be abandoned by the times. What impressed me deeply is that the Java SSH framework, which was popular in the past, was all the rage and was used by many enterprises. Later, due to vulnerabilities and the rise of modular SQL, the SSM framework became popular again. With the development of SpringBoot and SpringCloud, it became mainstream again, and JDK21 All have been released, but you haven’t even understood Java8’s Stream. This means you are lagging behind the times and technology, which is very dangerous.

Many people say that when they are usually busy at work and work a lot of overtime, CRUD has consumed most of their energy. They want to say that "time is always squeezed", but I still want to give an example of an Alibaba friend. Normal work basically requires I worked overtime and had to take care of my baby when I got home at night, but I still found time to study, write a book, and produce at least two high-quality articles every week. Therefore, lack of time is not an excuse. Be willing to learn from the bottom of your heart and plan your time to continue learning.

2.3.2. Carry out personal projects and participate in open source communities

GitHub open source community

Develop your own personal projects or participate in the co-construction of open source projects. To develop a personal project of your own, you can apply the new technical frameworks and design patterns you have learned or that you think are more innovative to your own project. If possible, publish it to the open source community so that developers around the world can test your project. , is an important means to improve technical capabilities.

The business code in our daily work may not be able to use the newly learned technology or it cannot be applied due to the company's pursuit of stability. Then our own open source projects are absolutely fine, and open source projects can also reflect our technical capabilities and levels. Job interviews can also be helpful.

In addition to developing your own open source projects, you can also participate in familiar open source projects. A junior student participated in the construction of a well-known open source project while in college. After contributing some good Features, he became an MVP. It was a great advantage for him to find a job on campus, and he eventually easily received offers from multiple major manufacturers.

2.3.3. Participate in technical seminars

Spend more time playing games on weekends and attend some technical salons and seminars so that you can keep abreast of the latest technology trends and have the opportunity to meet big guys. Every year, many major manufacturers and community forums hold many offline conferences, such as the "Cloud Native Conference" held by Alibaba this year. If it is not far from your city, you can go and listen to it. It is very helpful to improve and acumen to technology. Very helpful.

2.3.4. Try to output

The knowledge you learn is not yours, only the knowledge you can truly use belongs to you. Another better way to apply what you have learned is to formulate your own understanding of technology into your own articles or architecture diagrams, and sort out your attempts and output them to the Internet to accept criticism and corrections. Take the field of Java as an example. We can see a lot of technical blog posts. Many of them may seem like that to you. You can write them yourself or even write better than others. But believe me, once you try to output, you will I discovered that excellent articles are not formed overnight. There must be a process, from quantitative change to qualitative change.

Multiple outputs and enhanced understanding of technology will be of unexpected help to improve technology.

3. The Importance of Business Logic

I spent a lot of space talking about the importance of technology and made some personal suggestions on how to break away from writing business code and effectively improve personal technical capabilities. I don’t want to say that technology is necessarily more important than business. Before weighing which one is more important, , we need to clarify the respective definitions and advantages between the two.

3.1. Definition of business logic

Business generally refers to various commercial activities and operational work engaged in by all organizations or companies, which are usually closely related to industry fields. Usually we divide business into operating business and non-operating business. Operating business usually refers to the business linked to the company's operating profit. For example, the Douyin e-commerce in the product Douyin is an operating business. The company needs to rely on This is to make a profit; non-operating business refers to the business that has nothing to do with the company's operating profit, such as the internal system of the enterprise, which only needs to meet the internal use and needs to be carried out even if it is not profitable.

In addition, we can also divide the business according to the attributes of the industry, such as real estate business, financial business, and Internet business. No matter how we divide the business, we can know that there are many types of businesses, and most businesses have their own particularities. Switching from one business to another requires a certain learning cost, which is what people usually say. "Every line is like a mountain."

Every other line is like a mountain

3.2. Advantages of strong business logic

Strong business logic, that is, rich experience in an industry field. The advantages are obvious. The more experience you have in an industry, the more irreplaceable you are in that industry, and the easier it is to become a business expert. We know that for some businesses that have not settled down for several years, we cannot say that we understand the business. The most representative one is Alibaba's "5-year-old" culture. When we were at Alibaba, those who had been employed at Alibaba for one year were called "one-year-old", and those who had been employed for 5 years were called "5-year old". When you arrive, you will receive a ring engraved with your job number and flower name. At the same time, you will be recognized by Jack Ma as an Alibaba employee after 5 years. The so-called recognition, in fact, in addition to the recognition of cultural values, the most important thing is recognition of your understanding of Alibaba company and business in 5 years. The 5 years from understanding to familiarity are the glory of Alibaba people.

Why do we often see job descriptions in many JD recruitments with "preference given to those with xxx experience"? Especially the higher the level of recruitment, the more obvious this phenomenon becomes.

1-3 years of experience required

10 years experience requirement

It can be seen that the recruitment does not require business experience for 1-3 years of development, but the recruitment requirements for more than 10 years list "applicants with relevant experience will be given priority." People with strong business capabilities are more authoritative in a certain field. We often go out to meetings and see the speakers talking about it. I have been working in this industry for 10 years. I mean, with all due respect, everyone here, no one can compare with you. I know more about this industry, start listening to my boasts...

But think about it, a person who has been working in an industry for 10 years really knows the industry well. So for technical people, what are the advantages of being familiar with business?

Advantages of strong business

  • Better problem understanding and solving skills

Being familiar with business processes is of great help in development and system design. The biggest reason why many of our systems are difficult to use is that they have not penetrated deeply into the business scenarios. For example, if a developer working in the real estate field is asked to develop a medical program, when designing the system, he will naturally apply the ideas of real estate program design to the medical industry. He will find that it is not applicable at all. Although the function seems to be temporarily available, it will not work in the long term. Various issues such as architecture and stability will inevitably arise. The depth of business understanding directly affects the availability and stability of the system.

  • Higher innovation capabilities

Innovation must be done only after you have a very deep understanding of a field, such as designing a highly available innovative battery system. If you don’t even know the most basic SOC, SOC, and charge and discharge characteristics of the battery, it will be easier to start with. It would be ridiculous to directly build a battery system that can be infinitely charged and foldable.

  • Better communication and collaboration

We often hear feedback from customers that it is difficult to communicate with some of our developers. Apart from the personality factors of individual colleagues, another important point is that customers still focus on specific businesses, while developers focus more on technology. , when discussing the same issue, there will be an embarrassing scene of "the public says the public is right and the mother-in-law says the mother-in-law is right". Master the business and communicate better with customers.

  • More career development opportunities

We often see many programmers change careers and become product managers, project managers, marketing, customer service, and some even run their own companies. This is all due to an in-depth understanding of the business, which can provide us with more career development opportunities and face the world. Even in times of crisis at the age of 35, you can still occupy a place in the workplace.

3.3. How to avoid focusing too much on technology and neglecting business understanding?

Technical capabilities are important, but focusing too much on technology and neglecting business accumulation will reduce our workplace competitiveness. We often fall into another misunderstanding, thinking that as long as my skills are strong enough, I can travel all over the world and always find a good job. This rule applies in the first few years of work, but later on, especially when we are 35+ and unable to work overtime or learn skills, we lack business accumulation, which is very dangerous.

Especially for fresh graduates, I went to a company and found that the technology was lagging behind, so I wanted to change jobs and find a high-concurrency project, and then I found out why there is such a big gap between reality and my imagination. Aren’t all microservices distributed by people now? How can I improve like this?

How to avoid focusing too much on technology

  • Technology without business is not good technology

Any technology must serve the business. If there is no technology for business scenarios, then this technology is empty technology. The birth of technology is originally used to solve practical problems. Good technology must be used to serve the business. In our case, When you pay too much attention to technological advancement, calm down, sort out the business logic at hand, and think clearly about the points that can be optimized with technology, instead of simply considering technological advancement without considering adaptability. For example, not every system needs distributed microservices. A simple internal system has a QPS of less than 40. What do you think is the use of the entire microservices?

  • In daily work, draw more business flow charts

When we take over a project business, the first thing we do is not to write the code right away, but to sort out the business process based on BRD and PRD, try to draw a business flow chart using our own logic, and check with the PD business side. Then review the business flow chart again with the code logic to deepen your understanding of the business.

  • Participate in more business discussions and solution design

Often when many developers participate in BRD or PRD reviews, they always feel that this is a matter of alignment between the business side and the product, and has nothing to do with development. They will not just ask the product when the time comes. Have you ever thought about why we need to develop this function? What value can this product or function actually bring to users? Our work must be valuable so that we will not feel overwhelmed and tired, so we should participate more in business discussions and discussions. Solution design, understanding business and products from a development perspective.

  • Pay attention to industry knowledge and industry summits

Every year, my leader attends industry summits. At the summits, he learns the latest industry knowledge like a student. So now he is an industry technical expert, and no one in the company understands the business better than him. At industry summits, these cutting-edge business knowledge and industry trends can be known first. Every industry has some forums and communities, such as public accounts, and we can pay more attention to some industries.

4. How to balance business and technology?

Since both business and technology are so important, how should we balance them?

4.1. In the initial stage, technology improvement will be the main focus

In the early stage, the focus was on improving technology

In the first 1-3 years since we started working, I think the main focus is on technical improvement. Because the knowledge learned in school will be different from the actual projects of the company, the process of implementing the learned knowledge into the project requires technical improvement. In addition to the usual project development, it is necessary to lay a solid technical foundation.

As the saying goes: "If the foundation is not strong, the earth will shake". It is necessary to lay a solid foundation in the early stage. The more you go on, the more you will find that many new things will happen. The underlying framework technology must come from professional foundations, such as computer principles and networks, operating systems, data structures and algorithms. Including classic middleware, if you can master their design ideas, such as Redis, Hbase, EleasticSearch, RocketMQ, etc., you will also make a qualitative leap in improving your technical capabilities. I recommend that you use videos to understand new technologies and then read classic books repeatedly, such as "In-depth Adventures in Redis", "In-depth Understanding of Kafka's Core Design and Practical Principles", "ElasticSearch in Practice", and "In-depth Understanding of Java Virtual Machine" etc.

4.2. Focus on technology and business accumulation in the medium term

In the mid-term, focus on technology and business accumulation

In the 3-5 years of working, in addition to the accumulation of technology, you also need to accumulate business experience. When looking for a job at this time, you often don’t pay attention to the industry, but while doing CRUD, you need to accumulate business knowledge, and try to lean towards the same or similar fields when changing jobs. For example, don’t make a 360° turn in the e-commerce field and switch to the real estate field. went.

At this time, there is no need to enter into subdivided areas, just to collaborate in general industries. Technology needs to start to be productized, and the accumulated technical knowledge should be taught and shared to form its own technical products, participate more in open source construction, be more active in the technology community, and link up with some technology experts.

4.3. In the later stage, focus on business development and accumulation

In the later period, we will focus on business development and accumulation.

After working for 5 years, we have accumulated certain technical capabilities and project experience. At this time, we need to focus more on business. When we change jobs, we don’t have many choices. It’s best to choose a job that suits the field. Precipitate in a certain segmented field, build IP in this field, and become a business expert. At this time, whether you are an architect, technical manager, or still struggling on the front line, the most important thing is to separate yourself from the code and form your own business closed loop. It is necessary to share the accumulated business knowledge through the Internet, participate in more industry forums and conferences, and be able to speak as a guest, share more industry knowledge, and accumulate industry contacts and resources.

Only when business knowledge is accumulated to a certain level, it is possible to break through career bottlenecks. After the age of forty, we can no longer write code. At least we don’t have to choose between delivering food and setting up a street vendor. At worst, we can Do project management, market, or product manager.Give yourself more choices in the future and start from now on.

5. Summary

People often tell you that technology is more important or business is more important. I think they are all one-sided. For different stages, the focus of the two is different. In the initial stage of work, we should pay more attention to the improvement of technology. The further we go, the more necessary it is. Pay more attention to business. We need to form a double moat of technology and business in the workplace, and insist on doing the right things at different stages.

As for which one is more important, technology or business, everyone can express their opinions in the comment area.

【Extended Reading】 "Why do many people work for 3 years but only have 1 year of experience?" 》


Cang He's personal introduction.png

Creation is not easy. If this article is helpful to you, please like, collect and follow it. Your support and encouragement are the biggest motivation for my creation.
Follow the picture at the bottom of the article.gif

Guess you like

Origin blog.csdn.net/qq_43270074/article/details/133632205