Привет, Хабр! Меня зовут Даниил Пилипенко, я — программный директор факультета backend-разработки направления «Программирование» в Skillbox и директор центра подбора IT-специалистов SymbioWay.
В этой статье я хочу рассказать, какого уровня знаний и навыков Java достаточно, чтобы идти на стажировку или устраиваться на работу, и на какую зарплату можно рассчитывать.
Часто бывает так, что не решаешься осваивать новую профессию или получать дополнительное образование только потому, что не знаешь, какие плоды и когда тебе это принесет. Одни долго учатся, но все равно без практического опыта в разработке никуда, кроме стажировки, устроиться не могут. Другие же умудряются пойти на курс и сразу параллельно устроиться на работу.
Мы подготовили для вас несколько карьерных треков, которые сразу разложат все по полочкам:
на какой доход можно рассчитывать;
какие знания нужно получить, чтобы зарабатывать больше;
по каким критериям выбирать обучение.
Для начала давайте разберемся, какими знаниями и навыками должен обладать начинающий Java-разработчик.
Что должен знать и уметь начинающий Java-разработчик?
Чтобы устроиться на работу на должность младшего Java-программиста, нужно:
Знать |
Уметь |
синтаксис языка, все основные операторы и конструкции; основы объектно-ориентированного программирования: что такое классы, методы, статический контекст, константы, наследование, полиморфизм, инкапсуляция, перегрузка и переопределение; принципы клиент-серверного взаимодействия, в том числе, HTTP и REST; язык запросов SQL как минимум на уровне JOIN-ов; принципы многопоточности. |
писать “чистый” работающий и достаточно оптимальный с точки зрения производительности код; работать с разными типами данных и коллекциями; работать с исключениями; писать и понимать лямбда-выражения и работать с функциональными интерфейсами; работать со Stream API; настраивать логирование; работать с сетью и с файлами. |
Еще вам понадобится опыт:
работы со сборщиком (например, Maven или Gradle) и с подключением внешних библиотек;
отладки и профилирования приложений;
работы с системой контроля версий Git;
разработки хотя бы несложных веб-приложений на Spring Boot;
работы с командной строкой Linux (bash);
командной разработки.
Это обязательная база, без которой не получится работать. Конечно, эти списки могут корректироваться и уточняться в зависимости от требований и задач конкретного работодателя.
И, если вы не владеете другими языками программирования и у вас нет никакого опыта в разработке, осваивать профессию придется полностью с нуля.
А если все навыки есть и опыт командной разработки тоже, можно смело устраиваться на работу и развиваться дальше. Когда в знаниях есть пробелы, нет уверенности в своих силах или практики разработки более-менее крупных проектов, тогда вам в стажеры. Рассмотрим карьерные треки с вилкой зарплат.
Стажер, 40 000 – 50 000 рублей в месяц
С позиции стажера часто начинается карьера любого программиста, в том числе Java-разработчика. Найти вакансии стажера можно на популярных агрегаторах — таких, как HeadHunter, Яндекс.Работа или SuperJob Student. Последняя площадка полностью посвящена стажировкам.
Вам в стажеры, если:
вы знаете только основы Java;
у вас есть практика решения задач, но только самостоятельная, и нет опыта командной разработки;
вы еще учитесь, но хотите начать подрабатывать и обучаться на практике.
Junior-разработчик, 50 000 – 90 000 рублей в месяц
Если у вас есть все перечисленные базовые знания и вы разрабатывали проекты в команде, можно претендовать на должность младшего Java-разработчика. А если вы еще учитесь, но получаете дополнительное образование, у вас есть опыт в других языках — вполне возможно, вы сможете устроиться на работу в середине обучения. В таком случае и зарплата может быть сразу 60 000 – 70 000 рублей. Все зависит от вашего стремления учиться, а также качества и скорости решения задач, которое вы приобретете в процессе такого обучения.
Можно учиться и работать параллельно. Курсы по Java в среднем длятся 6-9 месяцев. В Skillbox модуль на неделю — это где-то 1,5-2 часа видео и 5-6 часов домашних заданий. Вы сможете посвящать обучению один неполный выходной или по часу в день в течение недели и совмещать с основной работой или учебой.
Обучайтесь в своем темпе. Например, некоторым нашим студентам хватает 2-3-х месяцев для прохождения базового курса.
Middle-разработчик, 90 000 – 250 000 рублей в месяц
У вас есть все знания и навыки junior-разработчика, вы работаете по профессии, но хотите развиваться, идти дальше и зарабатывать больше. Для этого нужно интенсивно учиться, в том числе:
Освоить фреймворк Spring. Если сделать это перед трудоустройством, то вы сможете сразу претендовать на зарплату от 90 000 рублей.
Освоить работу с базами данных, алгоритмами и Enterprise-технологиями в Java. Это поможет вам быстрее вырасти до уровня middle/middle+ и зарплаты до 250 000 рублей в месяц при условии постоянной реальной практики на работе.
Например, вы можете учиться на нашем курсе «Java-разработчик PRO», обучение занимает 2 года и охватывает базовый, полный и дополнительный курс с изучением указанных выше технологий.
На что обратить внимание при выборе курсов в Java-программировании?
Схема обучения. Удобнее обучаться в любое время, но некоторые программы рассчитаны на строгое присутствие на уроках по расписанию с дедлайнами. В этом случае может быть сложно совмещать обучение с работой или основным образованием.
Нагрузка. Курс может быть слишком плотным или чересчур растянутым. Оптимально, когда есть рекомендуемые темпы обучения.
Командная разработка. Чем больше практики, реальных проектов, тем лучше, а здесь никуда без работы в коллективе. Уровень сложности — максимальный. Это отличный опыт и ваш главный козырь при трудоустройстве. Неизвестно, когда на работе вам попадется такой проект, так что используйте возможности во время обучения по-максимуму.
Обязательная стажировка. Если после обучения вам нужно обязательно стажироваться — вы учитесь на уровень Junior. Это неплохо, если после короткого обучения (6 месяцев максимум) вы уже можете идти работать. Но лучше, если программа предусматривает помощь в трудоустройстве. Это значит, что образовательное учреждение или платформа не сомневается в уровне подготовленных кадров и предоставляет выбор: если вы хотите учиться недолго — можно идти на стажировку. А если пройти полное обучение, то можно сразу устраиваться на работу.
Срок обучения. У всех разные потребности. Кто-то приходит с опытом командных разработок в других языках, кто-то совсем без всего. Понятно, что таким людям нужно учиться разное время, знания различного уровня, а значит — выбирать программу нужно под себя, под свою ситуацию и личные потребности.
Дополнительные курсы. Иногда программы обучения включают множество дополнительных курсов не по основной профессии. Такие программы, как правило, стоят дороже и занимают больше времени. Обращайте внимание на то, чтобы все курсы в рамках выбранной вами программы были так или иначе посвящены Java-разработке.
Программа курса. Тут все просто: чем больше практики, тем лучше, но теория тоже нужна. Практика в среде разработки, а не на виртуальном тренажере — дополнительный плюс. Обращайте внимание, чтобы авторы курса не тратили ваше время на устаревшие технологии, например, сервлеты и JSP, JSTL. Некоторые обучающие платформы до сих пор этому учат и берут за это деньги.
Диплом. Круто, если по результатам обучения вы выполните не только индивидуальный, но и командный диплом. Это дополнительный бонус при трудоустройстве.
Подведем итоги
Если у вас есть опыт в разработке на других языках, проходите базовое обучение по Java и смело вливайтесь в профессию. Если таких знаний нет, нужно погружаться с нуля. А если вы хотите выйти на новый уровень и зарабатывать больше, ищите продвинутые курсы уровня PRO и обязательно проходите обучение технологиям Enterprise-разработки и фреймворку Spring.
Комментарии (24)
iiwabor
06.09.2021 16:12+1Java Middle-разработчик ЗП = 250 000 рублей в месяц - это очень сомнительно...
А в "знать и уметь " я бы еще добавил английский язык, желательно уровень upper - intermediate - документация вся на английском
Areso
06.09.2021 16:41+2Для документации и Pre-intermediate за глаза. Даже для книг по специальности, потому что в большинстве таких книг авторы не отличаются красноречием.
А вот Аппер нужен, если есть коллеги (заказчики) иностранные, куплена техподдержка и нужно общаться с вендором (его представителями из Румынии, Индии или откуда-там-еще).
elzahaggard13
06.09.2021 17:08Сомневаюсь, что где то бывают такие зп
KislyFan
06.09.2021 23:10Друг детства получает 200+, Краснодар. Начал учить язык в 2016. Я конечно сам его платежку не видел, но сомневаться у меня нет причин. Да и уровень жизни говорит сам за себя.
Mayhem924
07.09.2021 03:46+2Бывают, и поверьте, указанный тут уровень это еще далеко не предел мечтаний
wkia
07.09.2021 10:20Тут, на Хабре, есть отчеты по зп. Публикуются каждые полгода. И это только по тем специалистам, кто поделился информацией. На levels.fyi тоже есть.
Если уж честно, то и 250к далеко не предел, но, конечно, зависит от региона.
onets
06.09.2021 20:04+2А каким java программистом надо быть, чтобы зарабатывать 10k$ в месяц?
BugM
06.09.2021 22:46+4Заведшим трактор Java разработчиком надо быть.
В России 700+ это или звёзды в больших корпорациях или руководители отделов там же.
onets
06.09.2021 23:14Я имел ввиду именно тех, кто из России/Украины/Белоруссии/СНГ. Еще бывает удаленка на зарубеж. В целом-то понятно, что они звезды. Хотелось бы конкретики, если кто-то таких знает.
BugM
06.09.2021 23:20+1Ну посмотрите спикеров на конференциях покрупнее. Или мейнтейнеров крупного опенсорс софта. Процент попадания будет хорошим.
Имена локальных звёзд известных в пределах корпорации вам все равно ничего не скажут.
KislyFan
06.09.2021 23:13Написал бы кто Roadmap для dotnet. Мне например очень сложно оценить свой уровень, синдром самозванца и все такое.. а в профессиональную разработку хочется.
Areso
06.09.2021 23:20-3Попросите Филиппа @fillpackart . Возможно, что он сможет написать достойный материал на эту тему
solarcore
07.09.2021 09:56+1Видел вроде такое, может подойдёт) github.com/MoienTajik/AspNetCore-Developer-Roadmap
gkislin
07.09.2021 12:51-1Книги обязательны как дополнение и как саморазвитие, когда уже трудоустроены. Если вы переходите, например в Java, с другого языка - в принципе можно обойтись самостоятельным изучением. Я бы порекомендовал только не книги для начала, а бесплатные курсы, которых много. Написать свой проект перед трудоустройством, для Java на Spring Boot, считаю обязательно. Только при кодировании начинаешь понимать, что это совсем не то, что читать книгу.
Вот пример описания и комментариев выпускного проекта у нас: https://github.com/JavaOPs/topjava/blob/master/graduation.md
26 замечаний, причем все они по реальным ошибкам участников. И это только основные ошибки. Стажировка, особенно с ревью кода - на мой взгляд кратчайший путь к хорошей ЗП. Только выбирать нужно правильно, выбор сейчас большой. Обычно первые занятия открытые - можно оценить уровень обучения и интерес своего участия в ней.
По уровню ЗП - на Украине у синьора сейчас средняя 6K$. Мы отстаем, но думаю, что чз несколько лет выйдем на этот уровень.Bringoff
07.09.2021 13:03+2на Украине у синьора сейчас средняя 6K$
Не отрицаю тот факт, что в Украине зарплаты выше, но откуда информация про среднюю зп?) Последняя статистика на dou, собранная летом, подсказывает, что и 5500 — это уже третий квартиль. На джинни медиана тоже попадает на 5-5.5к. Хотя, если считать именно среднюю, а не медиану, то да, то некоторое количество людей с 7к+ могут перекосить статистику до 6к :)
rinat_crone
Как человек, нанимающий людей — ребят, никому ваш диплом не нужен. Нужны знания, объем которых содержится в 3-5 книгах. Если у вас есть голова на плечах и усидчивость, то у вас все получится, если же их нет, то хоть на 5 курсов запишитесь — на интервью все так же будете краснеть и обтекать, как многих кто приходят ко мне (в том числе из скиллбокса)
И да, не надейтесь на 250к даже в течение 3х-5 лет со старта карьеры, если вы не работаете над собой. Постоянно. Каждый день.
P.S. Если реклама курсов упоминает зарплату — бегите с таких курсов, они вас просто «выжимают», поймав на меркантильности
iliabvf
со всем вышесказанным не согласен, я тоже нанимаю людей. Сейчас есть множество хороших курсов, помогающих людям переквалифицироваться из бухгалтера в программиста. На одних 3-5 книгах не все могут уехать, золотая середина это:
книги
курсы и практические задачи
общение с наставником
собственный пет-проект
Jammarra
Мне за все мои 10 лет в IT ни одна книга не дала знаний.
Они могут только помочь когда ты и так что то знаешь и упорядочить знания. Но все только с опыта.
От того что ты там 4 или 20 книг прочитаешь ничего не изменится. Да даже если выучишь ничего не изменится. (Хотя собеседование поможет пройти да. На них как раз любят задавать вопросы из теории которые на практике никогда не потребуются. Особенно если задача собеседующего не человека который работу делать будет найти, а самоутвердиться).
Учится программировать по книгам это тоже самое что оперировать по мед справочникам или учится водить по книжке с ПДД. Или рисовать по учебнику академического рисунка не беря карандаш в руки. Да даже зная учебник наизусть у тебя первые 5 лет фигня будет получится.
Так что никогда ничего нет и не будет для кандидата чем портфолио. Это или опыт работы и рассказ о прошлых проектов. Или если студент то хоть какой то код или что то такое. Пусть даже это сайт про его любимого котика. И там уже есть что обсуждать.
А заставить человека краснеть и обтекать поверьте не сложно. Даже вас можно легко загрузить. уверен на 100%) Было бы желание.
WraithOW
Звучит как особая форма мазохизма — не хочу учиться на чужих ошибках, хочу всегда ходить по граблям сам.
Плохая аналогия — как котенок с дверцей. Для сдачи прав надо выучить ПДД. Чтобы оперировать человека — нужно вызубрить вагон справочников.
Maccimo
Читать не пробовали?
Bringoff
Я бы сказал «Если не умеете продавать себя». Гола полтора назад я сидел себе и получал что-то типа 2000$, не особо зная ситуацию на рынке. Потом пару раз сменил работу, параллельно узнав, что если минимально поискать и сделать хорошее резюме, то за мою экспертизу спокойно готовы платить х2 от этого и больше.