This article is a foreign 40 years old programmer thinking about career, he thinks that in the long run, we should invest more in some knowledge fields that are not easy to expire and expire for a long time.

I’m a programmer who turned 40 a few months ago. One Saturday morning I was at a React Native tech conference, where the speaker was trying to convince us why it could be the real next big thing in mobile development. But to me, it’s a bit like JSP fifteen years ago, with all the logic in the demo code. But I’m old, and I think that’s because I haven’t fully understood it yet.

I was a little frustrated by the presentation of powerpoint, live coding, and about half a dozen companion tools I hadn’t heard of.

Of course, I wasn’t really surprised. I’ve also mastered some of the more popular technologies over the past 20 years and enjoyed riding them. New things always bring a bit of excitement to programming and make things easier, faster, and clearer. But on this particular morning, at the threshold of 40, I have to admit I’m feeling a little behind The Times. I knew that if I wanted to keep up with the pace, I would have to keep giving, discarding some of the things I’d already absorbed, and taking in some of the new stuff in preparation for the next journey.

I was thinking that my programming career was not like that of any other professional, a doctor who didn’t have to worry about his knowledge of the vascular system evaporating at 40, or a lawyer, or a plumber, or an accountant, or an English teacher. Their accumulated knowledge is relatively stable and is rewarded with respect and compensation as they age. But in programming, 20 years of experience doesn’t seem to confer the same advantage.

Two concepts

Of course, our industry isn’t that bad — programmers have a lot to love — and it’s interesting how relentless follow-ups seem to be a more or less unique feature of our field. Is programming life really so different? If so, why? What does it mean for our career trajectory? I would like to try to answer these questions from the following two perspectives.

The first is knowledge decay.

Everything we know, not just programming, has an expiration date after which it is no longer useful. I learned to drive when I was 16, and I’m still good at it. This skill can be considered to have a relatively long half-life. The doctor becomes more knowledgeable because everything he learns is based on his previous knowledge. And in programming, for better or worse, I think:

Half of the programming knowledge a programmer accumulates will be useless in ten years.

This may be extreme… But it seems right, at least to me. If I don’t learn anything else during this deadline, I bet that only about half of what I know I can continue to use in 2026 (such as long-lived SQL) and the other half will probably be useless (React Native, maybe?). . Of course, I’m constantly acquiring new knowledge to replace the things that are dying, but is that enough? Will I know more in 2026 than I do now?

This brings us to the second concept, speed of knowledge accumulation.

In all fields, certain knowledge thresholds must be met to be “certified” (or at least employable), and early career days are often spent trying to acquire knowledge. In programming, however, due to the rapid decay of knowledge, it seems that we never really get past the “student years” and have to learn forever.

The three stages

If I were to record the rate of knowledge decay and accumulation of programmers, I think it would look something like this:

It is easier to accumulate knowledge at the beginning of a career, in what might be called an eager apprenticeship. Everything is new, and every experience is a tool to gain more knowledge. And, being young, we don’t have too many obligations, so may not mind spending a few evenings and weekends picking up new languages and frameworks. Importantly, employers also have low expectations of us, and we can carve out a little time during our working lives to fill in the knowledge. It’s a funny phase where you don’t even realize how persistent you are.

Then we stopped being novices and became self-sustaining developers. Our investment in learning has paid off. Everything we know is useful. At this intellectual stage, we begin to earn the respect of clients, peers, and managers, and gain titles, salaries, and opportunities. Although we didn’t necessarily see it at the time, it was an important turning point.

Two things happened. First, “senior” promotions are not just about money, but more expectations. Employers need their “star programmers” to be leaders — to help junior developers, review code, conduct interviews, attend more meetings, and help them maintain and build complex older versions of software. This is all very reasonable, but it subtly sacrifices the speed at which we accumulate knowledge. We no longer have time to read tech blogs and articles. Second, this is when for the first time we experience (or at least recognize) the decay of a little knowledge, and some of what we learned earlier becomes obsolete.

Then we enter the third and final stage of decline and loss. Yes, we are knowledgeable and accomplished, but we also know that we actually know less than we did at the beginning. We may not have time to accumulate enough new knowledge to fill in, and that’s frustrating. I think that’s why, at this point, a lot of people start moving — management, sales, testing, or agriculture (my dream). We realize that we need to work again to maintain our level and proficiency — otherwise, our work will be worse in five years than it is now.

Two directions

I’m in phase three. I still enjoy learning, but I understand that without hard work, I might stay on the edge of the “expert” balance.

First, I try to take the long view. Don’t push yourself too hard. Get as many opportunities as you can to gain new experiences. I see a lot of colleagues who are well paid, but have very little exposure to new things in their careers. In five years’ time, they will realize that their valuable knowledge has evaporated and that their compensation is not worth much. In some cases, I think making less money in the short term (with a better employer) will generate more money (and stability) over a long career.

Second, considering the limited time, I try to learn durable knowledge. That is, invest in knowledge that has a longer decay time, such as algorithmic logic, application security, performance optimization, and architecture.

Finally, I’d love to hear your thoughts!

A programmer learning platform to share with you, so that you accumulate experience in practice to master the principle. The main direction is JAVA engineers. If you want to get a high salary, want to break through the bottleneck, want to compete with others to get an advantage, want to enter BAT but worry about the interview, you can add my Java learning exchange group: 282711949.

Note: Add group requirement

1. I majored in Java in college, but I was frustrated in the interview after graduation and could not find a suitable job

2. I have been in the company for a long time and now I am comfortable, but I hit a wall in the interview when I change my job. Need to study in a short time, job-hopping to get a high salary

3. After attending the offline training, I have not mastered the knowledge deeply enough, and it is difficult to find employment. I want to further my study

4, already in the Java related departments work on the job, on their own career planning is not clear, dawdle

5, have a certain C language foundation, contact with Java development, want to change careers

Do not disturb the trumpet, do not like to add

Original: www.techug.com/post/3-stag…