Данная статья вряд ли будет полезна опытным разработчикам - это больше условная дорожная карта для начинающих специалистов или для тех, кто хочет войти в ИТ

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

Эта статья предназначена для тех, кто не только мечтает войти в IT, но и хочет закрепиться в профессии. Если вы получили первый оффер, поздравляю! Но это только начало вашего пути. Давайте разберем, как не остановиться на этом и продолжать расти.

1. Почему начинающие разработчики теряют мотивацию?

1.1. Ошибочные ожидания

Многие представляют себе карьеру разработчика как простой путь с высокой зарплатой. Однако работа в IT — это постоянное обучение, адаптация к новым технологиям и необходимость решать сложные задачи. Нереалистичные ожидания могут привести к разочарованию.

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

Разработчик, в наше время, - это специалист широкого профиля, который должен обладать навыками DevOps, архитектора, тестировщика, технического писателя, так как ты должен теперь не только уметь писать код, но и зачастую выбирать верный стек, правильно проектировать взаимодействие микросервисов, а так же уметь развернуть свой сервис в кубере, например.

Совет: Старайтесь смотреть на трудности как на возможность расти, а не как на преграду.

1.2. Отсутствие наставника

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

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

Совет: Найдите ментора или участвуйте в профессиональных сообществах, где опытные коллеги смогут делиться знаниями.

1.3. Узкий круг задач

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

Совет: Предлагайте инициативы, берите на себя больше ответственности и пробуйте себя в смежных областях.

2. Как не остановиться в развитии?

2.1. Ставьте вызовы

Задачи, выходящие за рамки привычного, помогают расти. Не бойтесь брать инициативу, оптимизировать код или изучать новые архитектурные подходы.

2.2. Учитесь постоянно

  • Работайте над собственными проектами. Например, создайте чат-бота или небольшой веб-приложение.

  • Читайте книги и проходите курсы. Постоянное изучение основ и продвинутых тем, таких как алгоритмы или базы данных, укрепит ваш профессионализм.

2.3. Применяйте T-shaped подход

Развивайте как глубину в своей области, так и ширину знаний. Например, Java-разработчику полезно изучить DevOps или основы UI-дизайна.

3. Что нужно, чтобы остаться востребованным?

3.1. Следите за трендами

Технологии развиваются стремительно. Знание популярных инструментов, таких как Docker или Kubernetes, и новых языков программирования вроде Go или Rust, выделит вас среди других специалистов.

3.2. Развивайте софт-скиллы

Умение объяснять сложные технические детали, работать в команде и понимать цели бизнеса ценится не меньше, чем знание фреймворков.

3.3. Экспериментируйте с искусственным интеллектом

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

Литература и ссылки для развития начинающего разработчика:

Это лишь минимально необходимый перечень.

Общие книги

  • "Чистый код" — Роберт Мартин

  • "Совершенный код" — Стив Макконнелл

Онлайн-курсы и практические платформы

  • LeetCodeHackerRankBaeldung.

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

Разработка на Java

  1. "Spring in Action" — Крэйг Уоллс

    • Практическое пособие по работе с фреймворком Spring.

  2. "Effective Java" — Джошуа Блох

    • Продвинутые советы по использованию Java от одного из создателей языка.

  3. "Java Concurrency in Practice" — Брайан Гетц

    • О многопоточности и конкурентности в Java.

Софт-скиллы и развитие карьеры

  1. "Мифический человеко-месяц" — Фредерик Брукс

    • Книга о проектной работе и управлении в IT.

  2. "Soft Skills: The software developer's life manual" — Джон Сонмез

    • Практическое руководство о развитии не только технических, но и личностных качеств.

Эти ресурсы и книги помогут начинающим разработчикам не только освоить технологии, но и оставаться востребованными на рынке труда.

Попасть в ИТ — это успех, но сохранить актуальность и расти как профессионал — это вызов. Регулярное обучение, участие в проектах и личная инициатива помогут не только остаться в профессии, но и стать востребованным специалистом. Если вы только начинаете путь в ИТ, помните: ваша карьера — это марафон, а не спринт.

Комментарии (6)


  1. rexer
    02.12.2024 06:34

    Привет!
    Спасибо за статью!

    Что хотелось бы добавить/отметить:

    1.2. Отсутствие наставника
    Для начала, новичкам хочется дать еще такой совет: ОЧЕНЬ внимательно относитесь к курсам, менторам которых вы выбираете. Курсов становится все больше, менторов - тем более и велик шанс попасть на то, где вы разочаруетесь и потратите деньги на ветер.

    1.3. Узкий круг задач
    Здесь скорее лучше не просто 'расширять кругозор', а посмотреть на hh и вакансиях то, что надо работодателю и развивать это. Например: увидели 'опыт работы с PostgreSQL и Kafka': попробуйте реализовать проект на этих технологиях, постарайтесь и сделайте его аккуратно, красиво, добавьте README, docker compose, попросите ревью в чатах и каналах у разных людей, послушайте критику, исправьте и сделайте это как вашу визитку. Да, не все собеседующие посмотрят это, но это будет в любом случае полезно.

    2.3 Применяйте T-shaped подход
    По началу не распыляйтесь и сфокусируйтесь на том, что просят работодатели.

    3.1. Следите за трендами
    Это вообще может быть очень вредный совет, особенно для начинающего. Сфокусируйтесь на важном - на вашем развитии, тренды на то и тренды, что меняются регулярно.

    LeetCode - полезен, научитесь решать спокойно задачи хотя бы уровня easy, попрактикуйтесь, чтобы на собеседовании не растеряться.

    Про книги
    Для начинающего разработчика читать книги из раздела "Софт-скиллы и развитие карьеры" - рано. Такие книги пора читать тогда, когда вы уже уровня middle и выше, на мой взгляд.

    Помните, что ваше время ограничено и все успеть не получится - не распыляйтесь!

    Про книги "Разработка на Java": это хорошие и полезные книги, но уже не новые и некоторые вещи там устарели. Опять же, "Java Concurrency in Practice" - это не книга для совсем начинающего, хоть и это крайне полезная книга.
    Если уж совсем посмотреть в классику, то также полезно посмотреть "Философию Java", она тоже старая и где-то устаревшая, но все еще дает хорошие мысли. И я НЕ советую читать Шилдта.
    Лучше посмотрите Хортсмана, на собеседованиях также спрашивают про GoF design patterns.

    И еще: смотрите mock-собеседования и отвечайте на вопросы там, подмечайте свои белые пятна в знаниях. Вообще, в статье не указали, но сейчас достаточно много интересных и полезных youtube каналов про образование и обучение (в том числе и Java) - не упускайте это.

    Также можете посмотреть мои советы новичкам в Java и заметки по Java.


    1. Lewigh
      02.12.2024 06:34

      И еще: смотрите mock-собеседования

      Ни в коем случае. Mock-собеседования выкладывают все кому не лень. Шанс нарваться на видео где кандидат несет ахинею а интервьюер его радостно поддерживает очень высокий.
      Таких видео полно. Для начинающего, распознать где хорошо а где плохо не просто.
      Тоже самое касается статей. Лучше всего для новичка - сделать упор на книги и официальные мануалы.


      1. rexer
        02.12.2024 06:34

        Тут согласен, также как и с курсами - надо осторожно.

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

        Да и в целом вопросы послушать полезно, на мой взгляд.


  1. Lewigh
    02.12.2024 06:34

    Развивайте как глубину в своей области, так и ширину знаний. Например, Java-разработчику полезно изучить DevOps или основы UI-дизайна.

    Технологии развиваются стремительно. Знание популярных инструментов, таких как Docker или Kubernetes, и новых языков программирования вроде Go или Rust, выделит вас среди других специалистов.

    Получаем разрабы в стиле - слышал про многое, не знаю из этого толком ничего.

    Умение объяснять сложные технические детали, работать в команде и понимать цели бизнеса ценится не меньше, чем знание фреймворков.

    Для кого? Для джуна?

    "Java Concurrency in Practice" — Брайан Гетц

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

    Отличные советы чтобы навичок все забросил.
    Вот есть новичок. Ему итак сложно, он итак перегружен даже той базой знаний что требуется от него здесь и сейчас. А сейчас от него требуется изучить нормально язык программирования, текущие фреймворки, подходы, git, жизненный цикл разработки и т.д., чтобы он хотя бы смог самостоятельное работать и закрепиться в профессии, стать полноценным разрабом.

    А Вы ему предлагаете дополнительно изучать Go, Rust, Docker, Kubernetes, многопоточку и учиться решать алгоритмы.


    1. rexer
      02.12.2024 06:34

      Мне не хватает кармы плюс поставить, поэтому оставлю плюс этим комментарием.


  1. samurai-dot
    02.12.2024 06:34

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