Я занимаюсь менторством. Могу на основе некоторого опыта подсказать, как изнутри работает какой-либо процесс: разработка, найм, вот это всё.
Одни из наиболее популярных вопросов от подшефных звучат примерно так:
- Как вкатиться?
- Как эффективно изучать новые технологии?
- Как догонять их развитие?
За этим всем я вижу, прежде всего, неадекватно низкую самооценку начинающих специалистов на фоне некоторой сакральности имиджа IT-индустрии.
Важно понимать несколько вещей.
Вокруг такие же люди
Не существует людей, которые бы “знали” всю айтишечку полностью.
Есть эксперты в определенных областях, которые, тем не менее, могут иметь пробелы в соседних.
Кстати, есть и просто красиво заливающие нарциссы. 🌷
Нормально состояние сколько-то опытного специалиста хорошо описывается понятием T-shaped - есть наибольшая экспертность в одной области, и менее продвинутые знания в остальном.
Например, я – DevOps-инженер.
С силу специфика задач, я неплохо разбираюсь в облачной инфраструктуре, разработке, архитектуре, но лишь поверхностно в тестировании, мобильных технологиях, 3d, нейронках.
Плюс, сами технологии не стоят на месте. Так что, заходя в индустрию сегодня, человек не слишком-то отстаёт от тех, кто работает в ней, скажем, уже 15 лет.
Это может показаться спорным, но посмотрим объективно:
И “новичкам”, и “старичкам”, надо практически с нуля погружаться в новые решения - machine learning, какие-нибудь новые сервисы, модный тулинг вокруг no-code, языки программирования типа Rust, набравшие популярность сравнительно недавно.
Да, у “старичка” будет за плечами опыт, который он сможет экстраполировать на новое решение, но это не обязательно преимущество.
Один достаточно опытный коллега лет 5 назад воевал в ту сторону, что Docker это очень вредная технология т.к. на хосте появляется процесс Docker Engine, якобы представляющий собой единую точку отказа.
То, что у нас уже есть PID 1 в лице systemd, почему-то не учитывалось. 🐳
Работать надо!
Я бы сказал, нет никакого сакрального рецепта, как изучать технологии.
Не надо быть каким-то очень опытным специалистом, чтобы браться за Kubernetes.
Просто надо брать – и изучать.
Сначала посмотреть какие-то лекции/документацию, а далее применять технологию в каком-нибудь проекте - рабочем или личном.
Например, я так учился разработке: работая linux-админом, постоянно писал себе чат-ботов, какие-то API, автоматизации.
В рамках этих задач мне надо было учить особенности языка, смотреть на решения в сети, читать обсуждения и рассуждения о паттернах.
Большинство этих проектов никуда не пришло, да.
Но я получил необходимую базу и перекатился из админа в devops-инженера, и стал заниматься тем, что нравится.
Подытожим
Я бы свел совету junior-у к следующему:
Не надо пытаться смотреть на себя через призму статуса, “достаточно ли я догнал технологии?”, статус придёт сам со временем.
Стараться достигать каких-то небольших промежуточных целей. Сегодня написать бота, завтра найти новую работу, послезавтра закрыть интересный проект, ну и так далее.
Применять интересные лично тебе технологии, чтобы питаться внутренней энергией, и расширять кругозор.