С таким заголовком большинство технических блогеров будут выпускать свои статьи, в надежде заработать классы/лайки/репосты/подписки. Я не исключение. Ну, а собственно, почему бы и нет? Тема интересна всем, от новичков до технических менеджеров, желающих оставаться, что называется, в тренде.
Итак, мои маленькие и не очень читатели, начнем.
В 2025 году учите то же, что было актуально в и 2024 году, и в 2023, и в 2010 и возможно даже в 1990. Не нужно гнаться за самыми последними технологиями, изучать какой-нибудь новомодный фреймворк, SaaS или AI инструмент или только что вышедший язык программирования, который, как утверждают создатели, обязательно (но, скорее всего, нет) совершит прорыв в отрасли.
Что же тогда учить то? — спросит нетерпеливый читатель.
Итак, учить надо:
- Алгоритмы и структуры данных — часть читателей, наверное, сразу же закатила глаза и смотрит внутрь своего черепа. Там, конечно, темно и безопасно, но если хотите иметь хорошие шансы пройти интервью в компанию, где будет уютно и сытно, лучше уделить этому внимание. Да и в целом, ваш код станет более правильным, и, возможно, более производительным и безопасным (но это не точно).
- Объектно-ориентированное проектирование — штука тоже не сильно зависящая от времени. Свою книгу банда четырех опубликовала аж в 1994 году, но актуальна и сейчас и ее можно применить почти к любому ООП языку.
- Архитектура ПО — и не важно, микросервисы у вас или монолит. Значение имеет, лишь то какие у вас компоненты системы, и как они будут взаимодействовать между собой. И, если с архитектурой у вас будет все в порядке, то вы будете и успешно проходить System Design интервью, и ваш монолит будет хорошо распиливаться на микросервисы и микросервисы будут обратно собираться в монолит без сильной боли.
- Тестирование — каждый разработчик должен знать, как проверять свое решение, так, чтобы оно упало у него в локальной среде разработки, чем на продуктиве в выходной. Да и вообще, хороший программист - ленивый программист. Старается делать все за один раз, чтобы потом не переделывать.
- И так далее
Написал “и так далее”, потому что дальше перечислять можно долго. Это и протоколы — штуки, которые тоже не устаревают десятилетиями, и скриптовые языки вроде bash и python, которые помогут вам автоматизировать работу. Регулярные выражения, утилиты Linux grep, curl, awk, редактор vim. Все перечислить практически невозможно. Получается настоящая кроличья нора. Понимаю, объемы не маленькие. Для начала, нужно из всего этого выбрать, что из этого потребуется, или просто интересно именно вам, и начать есть, как говориться, слона по кусочку.
А что по поводу языка программирования?
Ок, алгоритмы, структуры данных, бла бла бла. А на чем все это писать? Ну ок, если вы еще не выбрали даже свой первый язык программирования, то придется немного вас огорчить. На этот вопрос нет однозначного ответа. Холивары по поводу лучшего языка полыхают с начала появления Интернета.
Чтобы принять более осмысленное решение, посмотрите количество вакансий на рынке, количество резюме и их соотношение. Если много кандидатов на одну вакансию то надо несколько раз подумать, прежде чем погружаться в эту область. Если соотношение привлекательно, но резюме и вакансий мало, то, даже если технология интересна, то могут возникнут сложности с поиском работы.
Если же нужен простой ответ на вопрос, можно посмотреть в сторону самых популярных — Java, Python, возможно JavaScript или Go.
И, пожалуйста, не смотрите на рейтинг Tiobe. Его составители хоть и опираются на формальные данные, но он мало что имеет общего с рынком труда. Посмотрите лучше на результаты ежегодных опросов StackOverflow.
Ну а если совсем застряли, спросите в соцетях. Там конечно, отправят вас читать остальные ветки (и иногда, совершенно справедливо) но могут найтись и добрые люди, которые с удовольствием вам помогут.
Теперь приведу пару примеров, почему не стоит сразу кидаться и учить какой то новомодный язык или фреймворк
- Dart — когда Google выпустила язык Dart, они его позиционировали как альтернативу и замену JavaScript в браузера. Некоторые разработчики даже вложились своими ресурсами и построили свои проекты на Dart. Но сообщество не разделило энтузиазм и веб разработчиков на этом языке сейчас найти почти невозможно. Впрочем, как и вакансии. Dart остался только во Flutter.
-
Теперь про Go — авторы языка порвали все шаблоны разработки. Это и отсутствие исключений (привет,
err != nil
), и неявные интерфейсы, и отсутствие дженериков да и много всего остального, что поджигало стулья под многими разработчиками, особенно теми, кто переходил из C++ или Java. И была ненулевая вероятность, что Go постигнет судьба Dart. Но сообщество приняло язык, на нем пилят продукты, разработчиков активно нанимают. - JS фреймворки — хрестоматийный пример быстрого устаревания. Где сейчас Backbone, Ember и десятки других, менее известных? Про них помнит, разве что Интернет, который, и так помнит все.
Вывод?
Думаю он и так понятен из текста статьи. Осталось только добавить ссылку на эффект Линди https://en.wikipedia.org/wiki/Lindy_effect (привет, Нассим Талеб). Если лень ходить по ссылкам, то эффект говорит о том, что ожидаемая продолжительность жизни феномена прямо пропорциональна тому, сколько феномен существовал до этого. То есть, возвращаясь к нашим IT-шным баранам, если какая то технология существует 20 лет, то она, скорее всего, просуществует еще столько же (но это не точно).
Ну и послесловие
Софт-скиллы, кстати, тоже никто не отменял. И, если программирование возникло только в середине 20 века, то люди между собой общаются десятки тысяч лет. И первобытный человек из племени на реке Серенгети так же должен найти общий язык со своими соплеменниками и шаманом (не тем), как вы со своей командой или менеджментом. И, если предок не найдет общий язык, то ему прилетит палкой по голове от тим-мейтов или шамана.
В наше время, если вы не найдете общий язык со своей командой и шаманом, то есть менеджером, то можете остаться без премии, а там уже прилетит палкой по голове от жены, которая не получит свою поездку на Мальдивы или досрочное погашение ипотеки (ну или о чем она там у вас мечтает).
В общем, даже если вы супер-профессионал, но бука или социофобушек, то в индустрии будет тяжеловато и вам и команде. Поэтому, когда надоест изучать инженерные навыки, качайте софты.
Top comments (0)