How developers seek technical improvement in boring work

How developers seek technical improvement in boring work

Technical growth is a problem faced by many students. Some students who have worked for a few years will encounter growth bottlenecks and feel that they are making slow progress. Whether it is due to company business or personal reasons, they feel that their technical level cannot be improved. Or some students who have just started working or are looking for a job want to work in a good environment and improve their abilities.

[[228129]]

If you have a good platform, you may have hundreds of thousands or millions of users using a small function. If you develop a new product, you may have hundreds of thousands or millions of visits by importing a little traffic from the main product. Not only do you have to develop the function, but you also have to consider performance issues, how many visits you can support, whether you need horizontal expansion, whether you need load balancing, and so on. With new problems and new challenges every time, you can continue to grow.

If you don't have such a platform, your company may have operated a product for one or two years with only a few thousand or ten thousand users, and you may not even have the chance to encounter some technical problems. The number of users is not increasing, the business is not complex, and the sharding of databases and tables, read-write separation, load balancing, distributed design, etc. are irrelevant to you, because the company's products have not yet developed to that level.

Occasionally, I hear some friends in second-tier cities say, "If you want to do technology, stay in Beijing, Shanghai, and Guangzhou. Don't come back. Projects in small cities don't support people. The things you make are not challenging, there are few users, and they are all CRUD. After a long time, people will become useless."

This is an external reason. We have to admit that a good platform is crucial to a person's development, no matter what profession. I personally have some opinions on technology improvement. We all learned "uniformly accelerated linear motion" in high school physics. Its formula is as follows:

We have all learned this formula. S is displacement, V0 is instantaneous velocity, a is acceleration, and t is time. On the road of technological growth, S is your technical ability, V0 is your passion for technology, a is the acceleration of your technological growth, and t is time. Your technical ability is not determined by your momentary passion, but by the acceleration and time of your growth. t is easy to understand. If you keep learning, as time goes by, you will definitely be more capable than before.

I think a is the most important one. It refers to the acceleration of technological growth and consists of two parts:

  • The platform you are on, I have just mentioned this, a good platform is very important.

Personal learning

When you meet these two points at the same time, you can learn much more than others in the same amount of time. However, not everyone has a good platform. After all, BAT only recruits so many people, and there are only so many star Internet companies, so not everyone can get in. There are also a large number of developers in second- and third-tier cities, and their businesses may not be that big.

When you can't guarantee your first item, you can only try to make your second item excellent enough. In this way, your overall A will not be much smaller than others.

How can we improve ourselves through personal learning? We all know that we must apply what we have learned. If we don’t use what we have learned, we will forget it after a while. If you usually write PHP, and suddenly you write Golang for work reasons, when you come back to write PHP, you find that your hands are not as smooth as before.

You have read "High Performance MySQL", "Unix Network Programming" and "In-depth Understanding of Nginx: Module Development and Architecture Analysis". If you don't practice, it is difficult for you to understand them more deeply. But what if your environment does not involve these? You are just a code writer for the business layer. Your company's products do not have many users and do not need these. You are just a small outsourcing company that makes websites. It is enough for the functions to be usable. I think these are not an excuse for you to pursue deeper technologies. Maybe you can't use them now, but one day you will. It's just that there may be some problems with your current approach.

You need to start with the job at hand.

If you are a programmer writing business layer APIs, your daily job is to write code according to routines and follow certain rules. Perhaps you can try to stop doing this repetitive manual labor. Can you write a program that generates APIs by itself, and you only need to do some simple configurations each time? This frees up time for you to do things that interest you and learn new things. When your leader finds out, you will also have the opportunity to do more interesting things.

Similarly, you can also read the source code of the framework you are using and learn other people's design ideas. If you think there is a problem or it is not good enough, you can submit an Issue or PR to the author.

Do you know how the master process of Apache, Nginx, and fpm manages the worker process? How do they receive requests? Do you know about select and epoll?

Can you make some special scenarios you usually develop and solve, such as encryption and decryption, payment interface calls, Excel export, drawing, etc., into a separate library and open source it for everyone to learn from?

Do you blog? Or do you blog regularly?

Maybe we are doing some boring things on the surface, which cannot help us grow, but we should have the spirit of geeks, we should use geek methods to release our labor, we should be willing to share and learn, and be able to discover the essence of simple things. Most of the work is repetitive and boring, and the feelings at different levels are the same. Every time you design a function, you know how to support concurrency and high availability, and repeat the same set of things, you will also feel that it is boring. We are constantly looking for interesting things in this boring work, which is valuable.

These are my thoughts when chatting with my teammates. I wrote them impromptu. I hope they will be of some help to you.

<<:  Will WeChat mini games follow the same path as mobile games?

>>:  Do users uninstall the app as soon as it is pushed? Pay attention to these 3 key points when doing push

Recommend

Is 5G real or fake? A few topics from iPhone 11

The 2019 iPhone has been available for pre-order ...

Wang Chuqin topped three categories! How to play various loop balls well?

On March 19, 2024, Beijing time, the Internationa...

Analysis of process and thread scheduling in Android: nice

In computer operating systems, processes are the ...

Build a simple hybrid cross-platform mobile app with Ionic

introduce Since hybrid mobile development became ...

Tips: Don’t use emojis indiscriminately, especially at work...

If your two boyfriends/girlfriends each replied w...

Live broadcast process planning and promotion methods!

Live streaming e-commerce is like a super “human ...

Value 50: Find the 50 most valuable stocks in China

Value 50: Find the 50 most valuable stocks in Chi...

How to promote 360 ​​advertising information flow?

360 Promotion uses professional media promotion a...

Apple releases iOS / iPadOS 17 third public beta

August 10 news, Apple today invites non-developer...