How to survive in a changing development world

    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 often there are 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:


    1. 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)
    2. You can choose the technological stack yourself.

    disadvantages


    1. Not knowing the details of technology is possible only for the management of the upper levels. A simple team leader should know everything, not going anywhere. Tech lead should know better than anyone.
    2. 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).
    3. 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", then 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.


    Недостатки тоже очевидны: скукота, бюрократия. Ну и если вдруг стабильная компания внезапно умирает, а так тоже бывает, то на рынке труда с java 7 будет сложновато.


    Полумёртвые языки


    Ходят легенды о программистах на COBOL и их нечеловеческих зарплатах. Вполне верю: спрос хоть и маленький, но предложения вообще нет. Никто не пойдет учить cobol.


    Недостатки: древние языки ужасны, и инструменты для них ужасны. Перспективы не ясны, вполне возможно язык доумирает до конца.


    Развивать ядро базы данных или линукса


    Есть такие продукты на все времена, где люди как пилили что-то там на Си двадцать лет назад, так и пилят.


    Из недостатков можно отметить, что писать безопасно на Си — это непросто, и не все любят ручное управление памятью. Возможно когда-нибудь эту нишу займет язык Rust, хотя точно не в ближайшее десятилетие.


    Вакансий на чистом Си не так уж и много, и обычно подразумевается наличие большого количества других знаний помимо языка.


    Изменение мышления работодателя


    Это из серии несбыточных мечт, но всё же.


    Если человек знает три языка и две базы, сколько ему нужно времени, чтобы начать писать на четвертом подобном? Очень мало. Тем не менее в вакансиях как мантру пишут что-нибудь такое: "опыт работы на java от трех лет". Я предлагаю работодателям писать так: "опыт работы на java от трех лет или выполнение тестового задания". Вам ведь ехать, а не шашечки.


    Подкину немного на вентилятор: php-шник с десятилетним опытом, который хорошо знает ООП и, допустим, писал на typescript, запросто пересядет на java. Там даже ключевые слова одинаковые: class, interface, extends, implements и т.д. Принципы SOLID ровно те же.


    И возможно через 2-3 месяца будет писать не хуже, чем 3-летний труъ джавист. Потому что уже умеешь писать сложные SQL-запросы, знаешь стандарт HTTP, умеешь верстку и JavaScript и прочее. Конечно, там есть 100500 нюансов, многопоточность и т.д., но если ты за 10 лет привык решать проблемы, то разберешься уже с чем угодно, дайте только мануал полистать.


    На первых порах кто-то должен бить по рукам, но это всё равно не сравнимо с полным новичком в профессии.


    Смена деятельности


    Есть куча разных направлений деятельности, связанных с разработкой: консалтинг, developer advocate и прочие такие штуки. Если подвешен язык, то почему нет.


    Можно начать своё дело и делать вообще что угодно. Правда и риск максимальный: 9 из 10 таких начинаний обычно прогорают. Ну и саморазвитие здесь обычно также в приоритете )


    Постоянная смена работы


    Если менять работу раз в год-два, то точно будешь востребован на рынке. На одной работе изучил React, на другой Postgres и т.д. Однако недостатков тут тоже много. Карьеру построить сложнее; всё время надо притираться к новой команде и начальству; придется объяснять на собеседованиях, почему ты такой "летун"


    Путь компромисса


    Если мы не можем решить проблему, то можно её ослабить. Например, хотя бы какую-то часть кода продукта осовременить и т.д., ведь иногда можно найти выгодные для бизнеса изменения. Ну и по мелочам тоже: переехать с Grunt+RequireJS на Webpack+ES Imports — дело одного дня, а дальше уже можно спокойно использовать современный JavaScript.


    Тайм-менежмент


    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 the 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!


    Also popular now: