With colleagues, there was a conversation about the constant self-improvement of the programmer in his own time. You need to run all the time just to stay in place. I myself love this business, and, despite having three children, I manage to touch new concepts. But a lot of people are just tired of this running around, and they can be understood.
Take, for example, the world of frontend. With the knowledge of JavaScript five years ago, now you will not find a good job. Now RequireJS + Grunt is not rolling, you need to know React, Webpack, modern ES or TypeScript, etc. And next year much will become obsolete again.
At the same time, it is not always possible to get new knowledge at work, because there are often tons of legacy (if a product is being sawed for a long time, it is inevitable) that no one will rewrite "according to the fashion".
What to do? Do pet projects at night? Or try to change the direction of development to a more stable over time?
Especially often this question arises from programmers with children. How to remain relevant in the market in the long term, without spending on it all personal time?
Go to leadership
Benefits:
- Sometimes it is enough to know the technology at the top (it depends on the type of leadership, team lead, tech lead, CTO, etc. - completely different responsibilities)
- You can choose the technological stack yourself.
disadvantages
- Not knowing the details of technology is possible only to the management of the upper levels. A simple team leader should know everything, not going anywhere. Tech lead should know better than anyone.
- This work is not good for many. Managing people is a completely separate profession that has nothing to do with programming. Many go there, but, having barely tried, they gladly come back to the code.
If one of the rewarding qualities of a simple programmer is superconcentration on a complex task, then the opposite is true: you often juggle tasks without really understanding the implementation (there is simply no time for this). - Even if you choose the stack yourself, you will not make radical changes in the project (rewrite from PHP to Rust), because there will still be no resources for this. When you are responsible for all the "technicals", you understand it more than ever.
Go to superstable or regulated companies
They say that, until now, somewhere in the banks and the oil industry, they are sawing Java 7 and do not know grief. And such work there for another 100 years.
The disadvantages are also obvious: boredom, bureaucracy. Well, if suddenly a stable company dies suddenly, and it happens the same way, then in the labor market with java 7 it will be difficult.
Half-dead tongues
There are legends about COBOL programmers and their inhuman wages. I fully believe that the demand is small, but there is no offer at all. No one will go to learn cobol.
Disadvantages: the ancient languages are terrible, and the tools for them are terrible. Perspectives are not clear, it is quite possible that the language dies to the end.
Develop the database or Linux kernel
There are such products for all times, where people sawed something there on Si twenty years ago and sawed it.
Among the shortcomings, it can be noted that it is safe to write C - it is not easy, and not everyone likes manual memory management. Maybe sometime this niche will be occupied by the Rust language, although certainly not in the next decade.
There are not so many vacancies on pure C, and usually a large amount of other knowledge besides language is implied.
Changing employer's mindset
This is from a series of unrealizable dreams, but still.
If a person knows three languages and two bases, how much time does he need to start writing on the fourth like? Very little. Nevertheless, in vacancies like a mantra they write something like this: "experience in java from three years." I suggest employers to write like this: "experience in java from three years or performing a test task." After all, you go, not checkers.
Throw a little on the fan: php-shnik with a decade of experience, who knows the PLO well and, let's say, wrote in typescript, easily change to java. There even the keywords are the same: class, interface, extends, implements, etc. The principles of SOLID are exactly the same.
And maybe in 2-3 months he will write no worse than 3-year-old Tru Javist. Because you already know how to write complex SQL queries, you know the HTTP standard, you know how to typeset and JavaScript, and so on. Of course, there are 100,500 nuances, multithreading, etc., but if you’ve gotten used to solving problems for 10 years, you’ll understand everything, give only the manual to look through.
At first, someone must beat his hands, but it is still not comparable with the complete newcomer to the profession.
Change of activity
There are a lot of different activities related to development: consulting, developer advocate and other such things. If the language is suspended, then why not.
You can start your own business and do anything at all. Truth and maximum risk: 9 out of 10 such undertakings usually burn through. Well, self-development is usually also a priority here)
Permanent job change
If you change your job once a year or two, you will definitely be in demand on the market. At one job I studied React, at another Postgres, etc. However, there are also many shortcomings. A career is harder to build; all the time you need to get used to the new team and superiors; will have to explain at the interviews why you are such a "flyer"
Compromise path
If we cannot solve the problem, then we can weaken it. For example, at least some part of the product code to modernize, etc., because sometimes you can find changes for business. Well and small things too: move from Grunt + RequireJS to Webpack + ES Imports is a matter of one day, and then you can safely use modern JavaScript.
Time management
If it is interesting to learn new things, but there is no time, then you can often think of something. For example, I try to go to St. Petersburg by train (I live near Pavlovsk). This is about 40 minutes of time there and the same amount back. It is possible to have time to make a couple of "tomatoes" on an interesting topic. Well, or just read a book. Now, for example, I am writing this article)
If I travel by car, I try to listen to thematic podcasts to expand horizons.
Instead of output
This article is not an attempt to teach living in the style of stupid articles a la "7 ways to get rich without doing anything." On the contrary, I would love to learn something useful from the comments. So welcome!