Что должен знать Junior Java Developer и как им стать
Если ты читал наши статьи про язык программирования Java и профессию Java-разработчика, то уже знаешь, что это перспективное направление с высокими зарплатами, которое не теряет актуальность.
С Java ты сможешь работать в бэкенде, игровой индустрии, машинном обучении, мобильной разработке, аналитике и т.д. Устроиться в небольшой стартап, крупную корпорацию, фрилансить или открыть свое дело. Твои приложения будут запускать на разных платформах и устройствах миллионы людей.
Вакансии для Java-разработчиков есть и в Украине, и на зарубежных рынках. Осталось поверить в свои силы и начать учиться. Сегодня расскажем о том, как стать Junior Java Developer и найти первую работу. Надеемся, тебе поможет наш пошаговый план.
Шаг 1: определись с целью и форматом обучения
Для начала реши, зачем тебе нужен язык Java? Почитай, что на нем пишут и какие дополнительные инструменты используют. Найди примеры типичных проектов и посмотри интервью с экспертами. Изучи вакансии на рынках разных стран. Подумай, куда ты хочешь после курсов по Java: в Backend, Frontend, Fullstack, писать приложения для Android или работать с Big Data. Изучение Java с нуля – это игра вдолгую. И лучше заранее понимать, какая у тебя цель.
Затем взвесь плюсы и минусы разных форматов обучения Java. Можно бесплатно учиться самостоятельно, но это займет много времени. Тебе придется самому составлять план, перепроверять информацию, следить за своим графиком и искать практические задачи. Лучше выбрать курсы с оптимальной программой, большой долей практики, проектами для портфолио и профессиональными преподавателями. Обрати внимание на курс Java для начинающих от GoIT.
Шаг 2: составь план изучения Java
Тут помогут требования из вакансий для Junior Java Developer и программы разных курсов. Если все же решил учиться сам, составь себе список необходимого минимума знаний – от простого к сложному. А потом можешь добавлять дополнительные технологии и инструменты. Важно оценить время на изучение Java, иметь под рукой план и не утонуть в куче второстепенной информации. Вот что тебе точно понадобится:
- Синтаксис. Операторы, типы данных, переменные, условия, циклы и ключевые слова, которые используются в языке программирования Java. Попробуй создать простые объекты с различными вариантами поведения.
- Инструменты и среда разработки. Один из основных инструментов – это Java Development Kit (JDK). Он включает в себя компилятор Java для преобразования исходного кода в байт-код. Также необходимо выбрать среду программирования на Java (IDE). Существует множество популярных IDE, таких как Eclipse, IntelliJ IDEA и NetBeans. Они предоставляют функции и инструменты для упрощения разработки: подсказки, отладчик и автоматическое завершение кода.
- Основы ООП. Классы и методы, наследование, инкапсуляция, полиморфизм и т.д. Больше про объектно-ориентированное программирование мы писали в этой статье.
- Библиотеки и фреймворки Java. Некоторые из популярных библиотек и фреймворков включают Apache Commons, Spring Framework, Hibernate, Gradle и Maven. Нужно понять, как собирать проект и работать с библиотеками готового кода в Java.
- Структуры данных и алгоритмы. Для оптимизации кода и эффективного решения задач. Можешь почитать, например, «Структуры данных и алгоритмы Java» Роберта Лафоре или «Алгоритмы: построение и анализ»Томаса Кормена.
- Базы данных. Установка соединения, выполнение запросов и обработка результатов. Для работы с базами данных тебе пригодится SQL.
- Git. Это система контроля версий, которая помогает работать над проектами с другими программистами и легко отслеживать изменения в коде.
- Тестирование и отладка. Java-разработчики часто пишут Unit-тесты, чтобы быстро найти и исправить ошибки в своем ПО.
- API. Для обмена данными с другими приложениями и сервисами.
- Кибербезопасность. Особенно актуально для крупных корпораций, финансовых учреждений и других компаний, которые работают с чувствительными данными пользователей.
Это список основной информации, которая тебе точно пригодится, чтобы стать Java-разработчиком. Его можно дополнять, добавляя пункты и расширяя перечень технологий и инструментов.
Шаг 3: пиши код на языке программирования Java
Очень важно закреплять теорию на практике. Начни с простых проектов из видео или книг по Java. Пиши программы, решай задачки, тренируй способность анализировать и понимать код. Создай аккаунт на GitHub или GitLab, чтобы выкладывать туда код, который ты готов показать работодателям или другим программистам.
Шаг 4: займись английским
Этот шаг обязателен для всех IT-профессий. Английский нужен для чтения документации, общения с командой и заказчиками, написания кода, а также обучения, работы в международных компаниях и фриланса. Практически в каждой вакансии Java Junior Developer среди требований есть английский от уровня Pre-Intermediate и выше. С ним у тебя больше возможностей для поиска работы и развития. Поэтому найди себе преподавателя или учи его сам. Мы для своих студентов включили в программу курса по Java с нуля English speaking club, чтобы подтягивать английский сразу.
Шаг 5: развивай soft skills
IT-рекрутеры обращают большое внимание на мягкие навыки. Важно, чтобы ты был не только классным Java-разработчиком, но и вписывался в команду, а также разделял ценности компании. Среди ключевых софт скилов можно выделить:
- креативность;
- проактивность;
- командную работу;
- умение общаться;
- эмпатию;
- управление временем;
- внимательность;
- желание развиваться;
- оптимизм, целеустремленность, ответственность, надежность и т.д.
Также желательно ознакомиться с философией Agile и методологией Scrum, которые часто используются в управлении разработкой. В курсе программирования Java от GoIT есть блок, который поможет прокачать софт скилы.
Шаг 6: найди ментора и единомышленников
Посещай разные митапы и конференции по Java, найди профессиональные сообщества. Важно познакомиться с единомышленниками, чтобы обсуждать вопросы и сложности, с которыми ты сталкиваешься. Это гораздо эффективнее, чем учить Java самому. С единомышленниками можно создавать общие проекты и брейнштормить.
Еще очень полезна помощь ментора, который будет тебя поддерживать, проверять код, давать обратную связь и объяснять, если что-то непонятно. Ментор обязательно есть на всех наших курсах.
Шаг 7: создай портфолио Java-разработчика
Это один из самых важных пунктов. Именно портфолио показывает уровень твоих навыков и то, какие задачи ты способен выполнять. На наших курсах по Java студенты пишут 4 проекта для портфолио, которые можно показать работодателю. Расширить портфолио и сделать еще более разноплановым можно с помощью стажировок, фриланса, волонтерства и pet-проектов. Чем больше практики – тем лучше. И с тестовыми заданиями потом будет легче справиться.
Шаг 8: подготовься к поиску работы
Создай резюме и профиль на LinkedIn. Проверь актуальность портфолио и добавь в него все свои проекты со ссылками и описанием. Зарегистрируйся на сайтах поиска работы и научись писать мотивационные письма.
Также показывай свою экспертность в соцсетях. Рассказывай о том, что интересного узнал про язык программирования Java. Публикуй проекты на разных стадиях разработки и будь активным в профессиональных сообществах.
Шаг 9: проходи собеседования на должность Junior Java Developer
Ты не узнаешь, достаточно ли твоих знаний для получения работы, пока не начнешь проходить собеседования с рекрутерами.
Внимательно изучай информацию о компаниях и требования в вакансиях. Просмотри типичные тестовые задания для Java Junior Developer и вопросы, которые обычно задают. Рассылай резюме, пиши мотивационные письма и ходи на собеседования.
Первую работу получить довольно сложно. Тут важно не отчаиваться и после каждого отказа IT-рекрутера исправлять ошибки. Доучивать нужную теорию, добавлять недостающие инструменты и пробовать снова. Можно поискать стажировку для trainee java, чтобы получить больше коммерческого опыта.
Еще полезно проходить тестовые собеседования и готовиться к техническому интервью со специалистом. Senior Java Developer может согласиться пособеседовать тебя за отдельную плату. На наших курсах Java c нуля карьерные консультанты помогают студентам готовиться к трудоустройству.
Стать Java-разработчиком можно примерно за 10 месяцев. Если уверен в выборе профессии, скорее записывайся на наш курс. А если еще сомневаешься, проверь свои способности на бесплатном марафоне по Java от GoIT. Или протестируй сразу 5 IT-профессий за 7 дней. В общем, выбирай направление, а с обучением мы поможем. Все получится!
Кто такой Java Developer и как им стать
Почему новичку стоит стать Java-разработчиком? Из этой статьи вы узнаете, что такое Джава, как его выучить с нуля и какие перспективы открывает этот язык программирования в ближайшие 10-15 лет.
Что такое Java: 3 факта 2021
Java (произносится “Джава”) – объектно-ориентированный язык программирования, который используется для написания программного обеспечения, мобильных и веб-приложений. Он был создан в 1995 году и обновляется каждые пол года.
Подготовил для вас 3 ключевых факта, которые расскажут про актуальность и перспективность изучения Джава в 2021 году.
Факт 1: Java повсюду
С начала 2000-х и по сегодня каждый из нас ежедневно сталкивался с проектами, написанными на Java:
- игры “Змейка”, “Крестики-нолики” написаны для первых черно-белых, а потом и цветных телефонов;
- современное ПО для “умных” часов, “smart”-телевизоров, электромобилей, банковских сервисов, оборонной промышленности и т.д.;
- по данным Oracle (компания, владеющая правами на Java), проекты, написанные на Джава ежедневно открывают на 3 млрд устройств по всему миру.
Факт 2: Java – ТОП-язык программирования
По данным DOU, в 2021 году Java занимает 2 место в рейтинге языков программирования. С 2011 по 2019 он занимал 1 место – на нем писали программы 27% разработчиков. В 2021 году 14% разработчиков в мире считают Джава перспективным языком программирования.

Факт 3: Java Developer – в ТОП-2 по количеству вакансий
По данным Djinni на октябрь 2021 года, в сентябре’21 было открыто 2445 вакансий Java Developer. Этот показатель в 3+ раза выше, чем был год назад (793 вакансии).
Что эти факты значат для новичков?
Что Java – это актуальный сейчас и перспективный в будущем язык программирования. Потому что:
- современные технологии, благодаря автоматизации, делают нашу жизнь проще. Происходит это благодаря приложениям, написанным на Java;
- автоматизация требует все больше проектов на Джава. А значит, будет открыто больше вакансий;
- средняя зарплата Junior Java Developer за первое полугодие 2021 составляет $900, что выше средней зарплаты по стране.
Чтобы попробовать себя в профессии java-разработчика и понять, насколько она интересная для вас – зарегистрируйтесь на бесплатный Java-марафон GoIT и создайте самостоятельно первый Telegram-бот.
Что должен знать Junior Java Developer?
Я провел 50+ собеседований с Java Developer разных уровней и под разные проекты. На основании этого опыта я составил для вас чек-лист навыков, которые должны быть у кандидата на должность Junior-разработчика:
- Java Core (синтаксис Джава) – основы языка программирования. Вы должны знать, что программы на Java состоят из классов, объектов, методов и переменных, понимать логику написания кода.
- Базовые принципы объектно-ориентированного программирования. В мире Java принят именно объектно-ориентированный подход.
- Системы контроля версий – важно уметь работать с git.
- Системы сборки кода – проекты собираются с помощью Maven и Gradle – научитесь использовать эти инструменты.
- Работа с реляционными базами данных. Вам нужно знать SQL, уметь пользоваться популярными СУБД (Postgres, MySQL).
- Структурирование данных и алгоритмы. Junior Java разработчик должен знать, что такое структуры данных, какие они бывают, и когда какие лучше применять. Также нужно знать, что такое алгоритм уметь применять.
- Фреймворки и платформы – будьте готовы к тому, что на собеседовании вас спросят про Spring, Hibernate и т.д.
- UNIT-тестирование – вы должны уметь проверить работоспособность отдельной части кода, написав специальный код на фреймворках для тестирования.
5 советов новичкам, как выучить Java быстрее?
Каждый IT специалист начинал учиться самостоятельно – читал книги, смотрел вебинары на YouTube и онлайн-сервисах.
Так же начинал и я. Это помогло накопить лайфхаки, зная которые раньше, я сэкономил бы минимум 1 год и вышел на первую работу быстрее.
Совет 1: учитесь гуглить
В интернете есть все, что нужно знать, чтобы стать Java Junior:
- на сайтах Java Community найдете документацию и форумы, где обсуждают язык программирования Джава;
- на Хабр в свободном доступе 1000+ часов видео про изучение Java с нуля;
- на YouTube есть сотни видео с вебинаров и воркшопов.
Совет 2: найдите ментора
Самая большая проблема новичка – некому задать вопрос, ответ на который не получается найти в интернете. Найдите ментора – Java-разработчика, который согласится:
- отвечать на вопросы и объяснять сложные моменты в процессе обучения;
- делиться актуальной информацией про Java;
- проверять практические занятия и давать обратную связь.
Совет 3: посещайте митапы, IT-конференции
Митапы, конференции и воркшопы в IT – шанс познакомиться с другими новичками, задать вопросы опытным разработчикам и выиграть ценные призы от спонсоров.

20 ноября в GoIT состоится IT Fest, где я расскажу про уникальную систему обучения с нуля до первой работы Java разработчиком со стартовой зарплатой $900.
Регистрируйтесь на IT Fest сейчас, узнайте, как стать Java разработчиком и выигрывайте
Совет 4: пишите код каждый день
Лучше уделять написанию кода 1 час, но каждый день, чем 10 часов, но 1 раз в неделю. Думаете, не найдете время на IT-обучение? Студенты GoIT умудряются совмещать учебу, работу, воспитание детей и семейные обязанности. Узнайте, как найти время на все, пользуясь советами разработчиков Сергея Головко (SoftServe) и Ивана Лапы (DataRobot).
Совет 5: регистрируйтесь на курсы Java
Курсы – возможность стать Джава разработчиком 10-12 месяцев, а не за 3 года, как при самообучении. Вы экономите 2 года за счет:
- готовой и постоянно обновляемой программы обучения, в которой преподаватели передают информацию последовательно;
- персональных менторов, которые закрепляются за вами, помогают и отвечают на вопросы;
- прохождения вебинаров, где Senior-разработчики дают советы, разбирают сложные моменты и практикуются вместе с вами;
Хотите стать Java разработчиком и получать зарплату, выше средней по стране уже в 2022 году? В GoIT есть пошаговый план! Регистрируйтесь на курс Java Developer и достигните своей мечты!
Пять навыков Java, которые точно проверят на собеседовании в 2022 году

По данным Хабр.Карьеры за июнь, чаще всего среди всех IT-специалистов российские компании искали backend-разработчиков. При этом самым популярным языков программирования, на которых реализуют backend, является Java. Так, доля вакансий Java-разработчиков среди всех вакансий на backend составляет более 35%.
Программный директор факультета backend-разработки направления «Программирование» Skillbox, директор центра подбора IT-специалистов SymbioWay Даниил Пилипенко рассказал, какие умения должен показать джуниор Java-разработчик, чтобы успешно пройти собеседование.
Умение писать код, который легко поддерживать
Ключевой навык любого разработчика, в том числе, на языке Java –– умение писать чистый код. Чем чище код, тем легче другим разработчикам в нём разбираться и вносить изменения. Вот наиболее типичные признаки чистого кода:
- Понятные названия переменных
Называть переменные нужно так, чтобы было понятно, что в них содержится. Например, переменную, отражающую количество денег, можно назвать moneyAmount. Названия вроде a, b или c использовать не стоит. - Избегание длинных методов
Краткость облегчает чтение кода, поэтому создавайте методы длиной не более 20-ти строк. Ещё не стоит создавать методы с более чем тремя параметрами. Компактные методы будет легко использовать, тестировать и изменять. - Структура классов и методов
Имена классов, методов и структура самих классов должны быть созданы понятно и с соблюдением принципов объектно-ориентированного проектирования и принципов SOLID. - Минимум комментариев
Код должен быть понятен без комментариев и содержать их минимальное количество. Тогда при работе разработчику не придется погружаться в длительное изучение комментариев и в их актуализацию. С кодом, в котором много комментариев, часто бывает такое, что сам код меняют, а комментарии остаются старые. - Структура по правилам фреймворка
Приложение должно быть структурировано по файлам и папкам в соответствии с правилами фреймворка, на котором пишется этот код. Если вы пишете код на фреймворке Spring, то контроллеры должны быть максимально плоскими и содержать минимум кода, а основная логика должна быть вынесена в сервисы. Кроме того, работать с базой данных нужно только через классы репозиториев –– не в сервисах или в контроллере, а шаблоны Thymeleaf нужно размещать отдельно. Если соблюдать все эти требования, время поиска любого фрагмента кода в приложении снизится до нескольких секунд. При ошибке в приложении разработчик сможет быстро найти класс и метод, который требует исправлений. - Низкий уровень вложенности
Фрагменты с высоким уровнем вложенности операторов друг в друга делают код слабо поддерживаемым. Каждый дополнительный уровень вложенности приводит к излишним нагрузкам на разработчиков при чтении. Если в вашем коде внутри метода есть оператор if, в нём цикл, в нём ещё один оператор if, а внутри него — switch…case, такой код необходимо переписывать и делать менее вложенным.
Чтобы проверить навык написания поддерживаемого кода, на собеседовании могут дать небольшую задачу на так называемый live coding — написание кода в реальном времени под наблюдением. Тот, кто будет собеседовать кандидата, будет оценивать два фактора: работоспособность и поддерживаемость написанного кода. Также обычно смотрят на скорость работы –– время, которое кандидату потребовалось на решение задачи.
Знание фреймворка Spring
Этот фреймворк используется в большинстве современных веб-приложений на Java. Каждый начинающий Java-разработчик должен понимать, как создавать их. Важно знать, прежде всего, Spring Boot –– специальный вариант фреймворка Spring, который позволяет создавать веб-приложения быстро и удобно.
На собеседованиях часто спрашивают про структуру приложений на этом фреймворке, про их конфигурацию, про то, как обрабатывать запросы и формировать ответы в контроллерах, работать с базами данных и с шаблонами, создавать и использовать сервисы. Кроме того, перед собеседованием могу попросить примеры кодов веб-приложений на Spring, написанных соискателем.
Умение работать с массивами и коллекциями Java
Начинающий разработчик должен понимать разницу между массивом и коллекцией, уметь создавать и изменять массивы и работать с классом Arrays. Важно также знать основные виды коллекций –– ArrayList, HashSet и HashMap. Стоит понимать механизмы работы List, Set и Map: это позволит выбирать оптимальную для решения той или иной задачи коллекцию.
Преимуществом на собеседовании станет и знание других коллекций, которые позволяют удобно оперировать наборами элементов –– их в Java много. Например, знать класс Collections, в котором есть большой набор инструментов для работы с коллекциями.
Разберитесь с принципами работы коллекций. На собеседовании могут спросить, например, что произойдет, если в HashSet добавить два разных объекта с одинаковым хэш-кодом. Это важный навык, так как от выбора класса коллекции может сильно зависеть скорость работы реализуемого приложения.
Знание языка запросов SQL
Практически любое веб-приложение использует базу данных (БД), чаще всего реляционную. Такие БД состоят из таблиц, в которых есть столбцы (поля) и строки (записи). Поля могут быть разных типов –– например, числа, строки, даты, JSON и так далее. Таблицы также могут быть связаны между собой. Чтобы работать с реляционными БД, разработчики используют язык запросов SQL.
С помощью SQL можно получать данные из таблиц, добавлять их туда, изменять и удалять, он также позволяет фильтровать и сортировать данные при выводе. Кроме того, с помощью SQL можно управлять и самими БД –– создавать их, добавлять в них новые таблицы, менять их структуру или удалять, а также управлять связями между таблицами.
Разработчик должен уметь оптимизировать базы данных, таблицы и отдельные SQL-запросы, чтобы делать работу с БД более быстрой и эффективной. На собеседовании вас могут попросить написать какой-нибудь SQL-запрос или рассказать, например, о том, как работают разные типы оператора JOIN.
Знание принципов клиент-серверного взаимодействия
Формат взаимодействия браузера и просматриваемой веб-страницы с сервером обычно четко регламентирован. Для него используется протокол HTTP или его защищенная версия HTTPS. Они описывают форматы запросов к серверу и его ответов.
Разработчик должен знать протокол HTTP хотя бы верхнеуровнево. В частности, он должен понимать структуру запросов и ответов. Они состоят из строки запроса/ответа, заголовков и тела. Строка запроса содержит адрес ресурса и метод запроса, строка ответа содержит код ответа в числовом формате.
Важно знать популярные коды ответов. Например, 2xx –– коды успешных ответов, 3xx –– коды перенаправлений, 4xx –– коды ошибок на клиенте, 5xx –– коды ошибок на сервере. Вспомните популярную ошибку «Страница не найдена», которую может выдавать браузер –– это код ответа 404.
На собеседовании могут также проверить знания стандарта REST. REST –– это надстройка над протоколом HTTP. REST описывает правила клиент-серверного взаимодействия веб-приложений, по которым операции с сущностями соответствуют определённым методам HTTP. Так, метод GET отвечает за получение ресурса, метод POST –– за создание, PUT –– за полное изменение, a PATCH –– за частичное изменение.
Еще REST регламентирует пути запросов: например, при работе с новостями их список можно получить запросом GET /news. Если разработчик хочет создать новость, то он должен применить запрос POST /news. Чтобы получить конкретную новость, нужно ввести запрос GET /news/id, где id — это идентификационный номер этой новости.
Заключение
Конечно, темы вопросов на собеседованиях могут отличаться от компании к компании. Например, у вас могут проверить знания принципов объектно-ориентированного программирования, задавать более сложные вопросы по SQL и HTTP. Начинающему Java-разработчику также стоит хотя бы в общих чертах понимать, как работает вёрстка — технологии HTML и CSS.
Еще соискателю стоит понимать, как работать с системой контроля версий Git, таск-трекерами, командной строкой bash. Эти навыки являются основными, они позволяют начинать работу в новой команде и компании “гладко”. Те, кто владеет перечисленными навыками, очень быстро после выхода на новое место работы начинают приносить пользу своему работодателю.
- Блог компании Skillbox
- Программирование
- Java
17 вопросов джуну: что должен знать Junior-разработчик
Что должен знать Junior-разработчик и не завышены ли требования? Разобрали популярные вопросы с собеседований, разделив их на hard и soft skills.
Как считаете, завышены ли сегодня требования к Junior-разработчикам?
В пределах нормы
Они даже занижены
Что должен знать Junior-разработчик, чтобы получить должность или удержаться на уже «завоёванной» позиции?
Джун — это уже пусть и младший, но специалист. Подразумевается, что он самостоятельно умеет писать код, может справиться с простыми задачами сам, а со средними по сложности задачами — под присмотром ментора.
Кто-то говорит, что требования завышены, и в 2020 году младший программист должен знать то, что знал Middle в нулевых. Кто-то парирует аргументами о росте конкуренции, сложности задач и, соответственно, требований.
Что касается технических требований к джунам, то в последние годы они действительно выросли. Профессия программиста стала доступнее из-за курсов, и рынок переполнился начинающими разработчиками. Поэтому компании начали выставлять определённые требования, чтобы найти из общей массы тех, кто лучше других.Например, теперь на позицию начинающего front-end разработчика недостаточно просто знать JavaScript, HTML5/CSS3: нужны базовые знания одного из популярных фреймворков (React, Vue, Angular). Кажется, что со временем требования будут расти ещё сильнее.
Мы разобрались, что должен знать Junior-программист в 2020 году, и собрали общие вопросы с собеседований, по которым работодатели определяют, дотягивает кандидат до нужной планки или нет.
Hard skills
Почему вы выбрали этот язык программирования? Вопрос нехитрый, но джун должен хорошо понимать, где лучше использовать один язык, а где отдать предпочтение другому, какие у выбранного языка сильные и слабые стороны.
Где проходили обучение, участвовали ли в реальных проектах?
В Galileosky мы всегда обращаем внимание на следующие моменты:опыт некоммерческих проектов, в основном небольших проектов, реализованных в рамках обучения;Pet-проекты, база работ на GitHub (само наличие проектов + качество кода);участие в хакатонах и конкурсах (особенно победы);посещение профильных мероприятий: митапов, конференций, лекций;сертификаты об окончании курсов или изучения технологий и пр.
Назовите принципы ООП. Старо как мир, но всё так же актуально. Держите шпаргалку по принципам ООП: там всё разложено по полочкам. Если вы хорошо разбираетесь в ООП, можете рассказать о своём опыте их применения на практике. Идеально, если вы также расскажете, почему те или иные принципы не стоит применять в некоторых ситуациях.
Какие алгоритмы сортировки вы знаете? Напишите код с использованием быстрой сортировки. Ох уж эти алгоритмы сортировки — понять бы, где они пригодятся в реальной жизни. А зачем вообще Junior-разработчику это знать? Тут всё просто: понимание принципов и гибкость мышления. Опять же, с помощью небольшого примера вы покажете, что владеете синтаксисом языка и умеете объяснять, что происходит в вашем коде.
Какие технологии вы знаете?
Для работы на реальном проекте мало знать сам язык программирования. Младшему разработчику необходим большой багаж знаний. Если мы рассматриваем разработчика на Java, кроме самого языка, необходимо иметь хотя бы начальные знания о Spring, базах данных, SQL, системах контроля версий. Это не означает глубокое изучение всех аспектов, но представление о работе с этими технологиями быть должно, даже если нет реальной практики. Зачастую разница между Middle- и Junior-разработчиком — это реальный опыт.%save-sc1%Если говорить о знании конкретных технологий, от начинающего разработчика требуется опыт разработки на каком-то классическом языке программирования со строгой типизацией — подойдёт Java, C++, C#. При этом не так важно, на каком языке программирования придётся писать в будущем: синтаксис языка выучить легко, а вот понимание, что «можно» делать, а чего «нельзя» — нет.
Расскажите, с какими IDE вы работали. Достаточно назвать одну, но хорошо в ней разбираться: какие редакции есть, как подключить библиотеку к проекту, чем выбранная среда разработки лучше других, какие плагины вы использовали, etc. Это то, что должен знать Junior-разработчик.
Есть ли опыт работы с базами данных? Сколько нормальных форм вы знаете и чем они отличаются? Знать, как обращаться к БД, нужно, а вот что касается нормальных форм — это, скорее, плюс, чем необходимость. Будет хорошо, если вы назовёте СУБД, с которыми работали, обозначите их ключевые особенности.
Также к навыкам стоит добавить SQL. Да, на SQL сейчас никто не пишет, но без SQL невозможно понимание логики работы СУБД.
У вас был свой проект? В чём заключалась задача и как вы её решали? Чтобы стать Junior-разработчиком, нужно знать теорию и применять её на практике. Разумеется, вы как джун уже должны были что-то писать, будь то на курсах или для себя. Перед собеседованием стоит разобрать один из самых сложных проектов, вспомнить, какие проблемы возникали в процессе работы над ним, и как вы их решали.
Какие методологии создания продукта вы знаете? Назовите несколько принципов Agile. Да, вам стоит почитать об Agile. Даже если вы твёрдо уверены, что никогда не столкнётесь с командной разработкой, поверьте — столкнётесь. Это не то, что обязательно знать Junior-разработчику, но будет плюсом, если вы разбираетесь.
Есть ли опыт работы с Git? Какой веб-сервис для хостинга проектов вы используете? Неважно, GitHub это, GitLab или BitBucket. Интервьюера интересует главное — разбираетесь ли вы в системе контроля версий.
Также вас могут попросить решить несколько несложных задач.
Минимальный испытательный набор состоит из трёх тестов.Во-первых, оценивается логическое мышление соискателя. Для этого человеку дают несколько достаточно простых задач, которые позволяют проверить, может ли кандидат выполнить обобщение или сделать выводы из поступившей информации.Во-вторых, смотрят, как кандидат усваивает информацию, как работает его внимание и память. Обычно перед разработчиком ставится задача из 5–6 вводных пунктов, после чего идёт обсуждение её решения. Кандидат должен резюмировать задачу, описать своё решение, а затем сделать выводы.В-третьих, по косвенным признакам, оценивается коммуникабельность кандидата — развитие его речевых навыков и способность работать в команде. Часто от соискателей на Junior-позицию требуется проактивность (её оценят, предложив несколько «поведенческих» задач) и скорость мышления.
Soft skills
Вы командный игрок? Коммуникативные навыки — одни из важнейших, и даже если вы разработчик-одиночка, акцентируйте внимание на том, что вы с удовольствием приобщитесь к командной работе.
Даже опытные разработчики могут ошибиться с оценкой сроков, но они знают, как с этим быть — сразу сообщают менеджеру, обращаются за помощью к коллегам. Джуниор с неразвитыми soft skills промолчит и будет пытаться решить вопрос самостоятельно, в результате ничего толком не сделает и только потратит время.
В удалённой работе гораздо большую роль начинают играть soft skills. Гибкие навыки — это не только умение общаться с коллегами, но и банальное уважение к коллегам, к примеру, в чатах — когда ты отмечаешь коллегу, дублируешь сообщение, которое могло потеряться, и закрепляешь важные ссылки на самом верху.
IT-сфера изменчива, постоянно появляются новые технологии. Готовы ли вы всё время учиться?
Все понимают, что у младшего разработчика нет большого опыта и, скорее всего, нет глубоких знаний фреймворков. Поэтому на собеседовании больше внимания уделяется его soft skills: насколько разработчик мотивирован, готов ли он обучаться.
Каков ваш уровень английского языка?
Для нас, в EPAM, важным фактором является также уровень английского языка — не ниже Intermediate, поскольку после обучения можно попасть на проект с распределённой командой, с разработчиками из других стран.
Кроме того, аутсорсинговые компании зачастую работают с иностранными заказчиками, организовывают с ними встречи и созвоны. И вообще, читать и писать документацию стоит на английском, да и на Stack Overflow лежит всё, что нужно знать Junior-разработчику. Поэтому перед собеседованием обязательно подтяните английский язык.
Умеете ли вы справляться со стрессом?
Часто младший разработчик сталкивается с трудностями, на которые он тратит много сил и времени из-за отсутствия опыта. Поэтому просто необходимо уметь понижать свой уровень стресса, когда это требуется, иначе обучение затянется.
Если возникла проблема, как вы будете её решать? Это больше вопрос на самостоятельность, нежели на способы решения.
Хочется поделиться советом: прежде чем идти к более опытным коллегам с вопросом, постарайтесь сами разобраться в проблеме. Во всех командах очень ценится, когда человек подходит не просто с вопросом «А как это сделать?», а уже обладает какой-то информацией, прикинул варианты решения и обращается за советом, как решить проблему правильнее.
Можете ли вы оценить время выполнения задачи? Да, это то, что должен уметь Junior-разработчик уже с кое-каким опытом, но на стадии обучения вы должны были получить хотя бы базовый навык оценки сроков.
У нас сотрудники работают удалённо. Поэтому важно грамотно распределять время для решения задач, уметь сосредотачиваться, оценивать сроки и соблюдать их.
Что должен знать Junior-разработчик? Отвечают эксперты
Олег Власенко
заместитель генерального директора SimbirSoft
Говоря о необходимых навыках, сразу важно прочертить границу между джуном и стажёром, поскольку эти роли достаточно часто путают.
Стажёр — человек, который только учится, часто он не имеет опыта разработки. Со стажёрами мы в компании чаще всего имеем дело на наших стажировках, которые мы в разных форматах организовываем с 2012 года. Как правило, значительная часть их аудитории — это студенты без опыта работы. Конечно, если стажёр хорошо себя показывает, мы можем пригласить его на собеседование, а по итогам собеседования даже взять его в компанию, если есть надежда, что он за пару месяцев выйдет на уровень джуна. Но далеко не все стажёры так быстро дорастают до этого.
Тем временем джун — это уже пусть и младший, но специалист. Подразумевается, что он самостоятельно умеет писать код, может справиться с простыми задачами сам, а со средними по сложности задачами — под присмотром ментора. Соответственно, такой специалист обязан обладать уверенными знаниями как минимум одного языка и фреймворка. Да, его знания, скорее всего, не будут глубокими, но он должен знать основы. Значительная часть сил джуна уходит на освоение нового. Ведь чтобы стать мидлом и выйти на новый уровень оплаты своего труда, джуну придётся освоить несколько фреймворков пусть и поверхностно, глубоко изучить как минимум один фреймворк, возможно, подготовиться и сдать экзамен по сертификации, получить опыт в разных проектах. Соответственно, важнейшими soft skills для джуна (да и для любого ИТ-специалиста вообще) будут навыки самообучения, навыки и опыт решения любых проблем, самодисциплина и мотивация к обучению.
Если рассматривать hard skills, то, наверное, нужно упомянуть такие профессиональные навыки, как умение искать информацию в поисковых системах, знание средств коллективной разработки (Git и другие), знание IDE, языка и фреймворка.
Завышены ли требования к джунам? Уверен, нет. Всё проясняется, если разделить понятия стажёр и джун и рассматривать джунов, как младших специалистов, а не просто тех, кто начал учиться.
София Техажева
руководитель программ «Python-разработчик» и «Алгоритмы для разработчиков» в Яндекс.Практикуме
Junior-разработчику, как в принципе и любому специалисту в сфере ИТ, важны такие качества, как ответственность, стремление к профессиональному росту, умение управлять рабочим временем и работать в команде. Кроме того, от начинающих разработчиков дополнительно ждут умения быстро осваивать новый материал и вникать в суть задач.
Требования к hard skills будут зависеть от направления. Например, мы уже подробно рассказывали, что работодатели ждут от Junior-Python-разработчика. Для таких специалистов это чаще всего знание языка программирования Python, алгоритмов и структур данных, опыт работы с базами данных и фреймворками.
Современные требования к Junior-разработчикам не кажутся мне завышенными. Во-первых, требования очень отличаются от компании к компании. Нужно также иметь в виду, что в описании вакансий обычно пишут портрет идеального соискателя, на деле же готовы брать кандидатов не со всеми перечисленными навыками. Во-вторых, большинство работодателей понимают, что любого джуниор-специалиста придётся учить, поэтому хотят от кандидатов в первую очередь бойкости и заинтересованности.
В технических навыках обычно требуется наличие какого-то (хотя бы учебного) опыта программирования, знакомство с основными инструментами, умение решать типовые задачи. Для получения даже этих навыков придётся постараться. Разработка имеет относительно высокий порог входа по сравнению с другими ИТ-профессиями, но планка по найму в последние годы, скорее, снижалась, чем наоборот.
Александр Махновский
руководитель отдела разработки Аванпост
По нашему опыту в последние годы требования к Junior-разработчикам у нетоповых компаний снизились. Связано это с кадровым голодом, вызванным, с одной стороны, ростом рынка, с другой, демографическим провалом девяностых–начала 2000-х.
В целом для джуна, планирующего работать в прикладной разработке, требования можно определить следующим образом:
- Знать синтаксис языка, на котором предстоит работать.
- Знать основу стандартной библиотеки языка и представлять её структуру в целом.
- Понимать принципы работы технологической платформы и среды исполнения (например jvm).
- Понимать принципы работы реляционных СУБД, иметь навыки работы с ними.
- Знать основы веб-разработки.
- Понимать, как в целом устроен мир: как работает сетевое взаимодействие, какая инфраструктура существует в интернет- и корпоративных сетях, понимать отличия парадигм программирования, скриптовых языков от компилируемых и т. д.
- Уметь решать простые прикладные задачи, т. е. применять знания, перечисленные выше, с пользой.
- Умение слушать, воспринимать постановку задач и пояснения, не упускать детали, но и не зацикливаться на них.
- Способность и желание обучаться в процессе работы.
- Умение задавать вопросы и в целом формулировать мысли.
- Любознательность и стремление к развитию.
- Ответственность.
Как правило, у всех ребят, приходящих к нам на собеседование, всё в порядке с основными хард-скиллами, учитывая, что они предварительно проверяются простейшим тестовым заданием.
Большинство же отклонений по результатам собеседования происходит по причине отсутствия практических навыков или критичных софт-скиллов, таких, как умение слушать.
Это не самые высокие требования: могу с уверенностью сказать, что 10-15 лет назад требования были значительно серьезней. Отрасль была менее лояльной к новичкам, готовность брать на работу, платить не самую низкую зарплату и учить была у единиц компаний. Сейчас же все, даже самые небольшие софтверные и не только компании, готовы вкладываться в обучение вчерашних студентов, несмотря на все сопутствующие риски. Всё, что нужно джуну сегодня, — общая адекватность и минимальные знания технологий.
Как стать разработчиком с нуля
Выводы
Мнения насчёт того, завышены требования к джунам или нет, очень разнятся. Но практически все эксперты сходятся в том, что Junior-разработчик должен знать о преимуществах и сферах применения выбранного языка или технологии, уметь работать с Git, знать основные алгоритмы, библиотеки и фреймворки в своей сфере, быть в курсе возможностей хотя бы одной IDE, знать английский не ниже уровня Intermediate и уметь работать в команде.