Что нужно чтобы стать junior программистом
Перейти к содержимому

Что нужно чтобы стать junior программистом

  • автор:

Как стать джуном, которого берут на работу (frontend-разработка)

Привет, Хабр! Я — начальник отдела разработки небольшой IT-компании, и мы — те самые люди, которые не ищут на работу сеньоров, и мы готовы брать не только мидлов, но даже и джуниоров, и готовы растить их до уровня крепких мидлов. Однако 80% приходящих на вакансию frontend-разработчика соискателей, даже называющих себя мидлами, с опытом работы, по сути оказываются не то что джуниорами — вообще не программистами. Что же на самом деле должен знать джун, чтобы попасть в компанию, подобную нашей? И как к этому прийти, если за плечами нет высшего программистского образования или богатого опыта программирования в школе? Я расскажу об этом и о том, как устроено техническое собеседование в нашей компании.

Базовый уровень программирования

Итак, к нам приходит среднестатистический кандидат, который прошел курсы по JavaScript, сделал там пару проектов. Потом узнал, что во многих местах хотят React, сходил на курсы по нему, тоже сделал пару проектов, выложил их на Github. Приходит к нам, уверенный в себе. И мы его просим написать функцию, которая выбирает из строки все большие буквы, или реализовать «вручную» какой-нибудь метод из array. И половина кандидатов в этом месте выбывают из строя. Кто-то вообще не может это сделать, у кого-то на двухминутную функцию уходит больше получаса. Зачем мы вообще это спрашиваем и почему с этого начинаем?

Дело в том, что когда вы начинаете делать реальные проекты, то такие микрозадачи (просто чуть более сложные или чуть менее стандартные) регулярно начинают возникать:

  • то нужно покрасить гласные буквы;
  • то написать правильное окончание у слова с числительным (2 ракетки, но 5 ракеток, и вам нужно в автоматическом режиме подставить окончание);
  • то вычислить новые положения всех точек змейки после очередного шага; и так далее.

И эти кусочки обычно являются очень маленькими фрагментами той задачи, которую вы решаете. И если сначала на каждый такой кусочек у вас уходит по полчаса, то как только вы овладеваете этим инструментарием, вы начинаете писать это за две минуты, практически не задумываясь. И ваша работа ускоряется в 10 (!) раз.

(Да, бывалые программисты здесь мне скажут, что нужно предусматривать много граничных условий, и речь идет не о 2 минутах, а больше, и вообще если есть библиотека, которая это умеет из коробки, то лучше ее подключить. Но примерный смысл работы библиотеки всегда лучше знать, чтобы мочь сделать вручную то же самое, но слегка модифицированное; а кроме того, человек, который пишет этот кусок кода за полчаса, а не за две минуты, граничные условия не напишет просто никогда).

Почему он этого не знает?

А у среднестатистического соискателя этой части обучения не было. Чаще всего он даже понятия не имеет о том, что она существует. Это во многом связано с тем, что курсы гораздо лучше продаются, когда человек получает на них быстрый результат. Но на таких курсах, даже 5-месячных, не остается времени на собственно базовое программирование — и поэтому в учебном проекте преподаватель предусматривает самые легкие пути с минимумом проблем. А шаг вправо-шаг влево от этого дается студентам с огромным трудом.

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

Но можно эту часть выучить и после того, как вы прошли курсы по javascript и React. И у вас сразу станет больше шансов стать айтишником, чем у 95% остальных выпускников курсов. Потому что действительно сложно потратить несколько месяцев, решая какие-то задачки, которые, как кажется, не имеют практического применения, мучая строки, массивы и циклы. Но это только кажется: в реальной работе вы будете иметь с ними дело очень часто.

Матчасть

Но, допустим, перед нами соискатель, который научился базовому программированию. Следующее, что мы просим на собеседовании, — найти на странице все кнопки и покрасить их в какой-нибудь цвет. В этом месте отваливаются еще 30% соискателей. Возможно, с этого стоит начинать разговор — с человеком, который не знает ответа на эту задачу, можно распрощаться за 7 минут, а в предыдущей на это уходит минут 15-20 обычно 🙂 Но как так, спросите вы? Человек сделал 4 проекта, разве он ни разу не делал чего-то подобного за это время?

Ну, во-первых, проекты обычно довольно небольшие. Даже если там много файлов, интересный код хранится от силы в 1-2. И там несколько раз они, конечно, выбирали элементы, но не настолько часто, чтобы это вошло в пальцы и в голову. И проблема вовсе не в том, что эти люди не были усердны, и даже не в том, что задачи на курсах достаточно невелики и упрощены. Проблема еще и в том, что при подготовке кандидаты решают какие-то задачи, ожидая, что на собеседованиях могут спросить примерно про что угодно, от стрелочной функции до каких-нибудь throttle и debounce. Но на самом деле есть несколько классов задач, с которыми frontend-разработчик имеет дело практически каждый день. В нашей рабочей практике (и в фирме, и времен фриланса) этих классов всего три:

  • работа с DOM-моделью (изменение стилей, атрибутов, html-кода);
  • работа с событиями (как минимум — обработка кликов по кнопкам, в том числе — сгенерированным в процессе работы);
  • отправка данных на сервер и обработка ответа (и тут, кстати, тех, кто походил на курсы базового программирования, ждет приятный сюрприз, потому что, например, если поднять сервер на PHP, то окажется, что там ровно и есть базовое программирование +/- работа с базой данных (ну, на уровне, когда надо всего лишь отправить на фронт какой-то ответ для тестирования), вот оно и пригодилось нечаянно).

И вот эти штуки, хотя бы в базовой версии, тоже надо знать очень хорошо, а применяемые команды и их синтаксис — наизусть (благо, их не так уж много). Как выбрать элемент — по тэгу, классу, атрибуту, его значению; как поменять стили, как поменять атрибуты, innerHTML и insertAdjacentHTML. Как обработать событие, что там внутри event (хотя бы target и currentTarget); как быть, когда кликабельные элементы сгенерированы или когда их очень много. Как отправить на сервер данные (fetch или даже хотя бы $.ajax). И, вы не поверите, если вы знаете наизусть синтаксис этих штук и применили их в реальных задачах раз по сто — ваша скорость разработки увеличивается еще в 5-10 (!) раз. То есть разница по скорости разработки между обычным соискателем и соискателем, который знает базовое программирование и базу матчасти языка, может доходить до 100 (. ) раз.

И вот как раз с этого места мы готовы называть его способным джуном и учить его дальше. Потому что дальше, до мидла, там еще очень много всего.

Что должен знать мидл

Собеседование с мидлом начинается, на самом деле, по той же схеме:

  • сначала задачка на базовое программирование;
  • потом на выбор элементов и покраску/скрытие/изменение атрибутов;
  • потом какое-нибудь простое событие и обсуждение стрелочных функций;
  • потом отправка данных на сервер и разговоры про GET/POST;
  • и пару слов про git (его, слава богу, хотя бы в базовом варианте умеют использовать даже джуны).

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

А дальше можно разговаривать в очень разных направлениях. Мы задаем много вопросов, но не ждем, что соискатель-мидл ответит на все — крепкий мидл должен знать процентов 70-80, начинающий — 30-40. Обычные вопросы в нашем случае такие:

  • всякие подробности про промисы;
  • какие-то другие способы взаимодействия с сервером, кроме ajax (например, websocket);
  • сборщики (webpack, gulp), разделение кода по компонентам;
  • event loop, всякие детали событий, кастомные события;
  • прототипы и полифиллы;
  • filter, map, reduce;
  • работа с линтером;
  • тесты и заглушки;
  • декораторы, throttle и debounce;
  • регулярные выражения.

Соответственно, если джун в курсе про что-то из этого, то это плюс и к общему впечатлению, и к пути до уровня мидла. Но знание базы гораздо важнее, и бонусы его не заменят.

Движение от джуниора к мидлу

Тем, кто только стал джуниором, для начала лучше идти в организации, в которых используют vanilla js, может быть, с небольшими усовершенствованиями, и первые год-два проводить именно здесь. Почему я так думаю? Ведь если вам удастся устроиться сразу React-разработчиком, вам, скорее всего, будут платить больше денег!

Дело в том, что если вы работаете с обычным js, вы гораздо лучше понимаете, что и как устроено изнутри (и потом вам будет легче понимать и то, как устроены конструкции в React-е). У вас становится гораздо больше опыта работы с css-свойствами, больше способов сбора данных с кнопочек и форм; вы начинаете гораздо легче читать чужой код, потому что вы видели несколько способов и синтаксисов сделать то, что вы делаете, некоторые из них вы переняли; вы уже пробовали настраивать всякие штуки типа сборщиков и линтеров, потратили на это довольно много времени и знаете кой-какие нюансы. И дальше, когда вы идете уже непосредственно работать с React-ом, то вы все это уже умеете, и в 95% случаях вам не приходится учить еще и это. Потому что возможности мозга ограничены, и при большом объеме того, что нужно понять сразу, вы рискуете не справиться. Точнее, не справляться примерно первые несколько лет работы. И вам будет очень трудно, вы регулярно будете хотеть бросить работу, а ваши коллеги, которые уже имеют этот бэкграунд, будут обгонять вас в росте с космической скоростью.

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

И если путь «сначала js — потом фреймворки» будет соблюдаться (а когда-то это был естественный путь разработчика), то как раз и будет получаться, что с фреймворками работают мидлы и сеньоры. Проблема в том, что кто-то когда-то это заметил и поставил телегу впереди лошади: решил, что если вы пройдете курсы по React-у, то вы уже мидл. Но это так не работает 🙂

О реальных сроках роста

Существуют ли вообще люди, которые за полгода смогли пройти курсы, хорошо устроиться на работу и потом быстро вырасти? Да, они существуют. Проблема в том, что 90% из них имеют несколько лет бэкграунда самостоятельного кодинга, или школьного/университетского программирования, то есть это совсем не те люди, которые пришли с нуля. У них получится так быстро, а у вас нет 🙂

В реальности требуется около года на то, чтобы спокойно выучить все, что нужно джуну (если вы знаете, что именно учить). Когда я говорю о трех месяцах на базовое программирование, я имею в виду занятия хотя бы через день, а такую интенсивность может выдержать далеко не каждый взрослый человек с работой, семьей и ипотекой, решивший сменить профиль деятельности. Если вы занимаетесь два раза в неделю — закладывайте полгода на базу, месяцев пять на курс по матчасти и месяца два-три на практику и выучивание базовых конструкций матчасти. То есть чуть больше года — реальный срок развития с нуля до джуна.

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

Дальше начинается путь к сеньору, и он занимает еще минимум пару лет. Но про это лучше думать, уже будучи более-менее приличным мидлом.

Как войти в IT

Резюмирую. Путь, по которому стоит войти в IT и стать джуном, которого берут на работу, в первую очередь включает в себя обучение базовому программированию. Если у вас этого еще нет, но уже есть курсы js и/или react — потратьте на это три-шесть месяцев, и процент интервью, которые вы будете проходить, резко возрастет. И к этому добавьте знание и практику матчасти по работе с DOM, событиями и ajax. Откровенно говоря, в этот момент вам должно казаться, что вы можете сделать на сайте примерно всё, что угодно. И это не очень далеко от правды, но. Многих технологий вы еще не знаете, как и многих деталей и нюансов DOM-модели. Еще вам предстоит изучить способы делать многое проще и быстрее; научиться хорошей организации кода; и так далее. И вот этому уже вы будете учиться на работе.

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

Удачной вам учебы и дальнейших поисков работы!

Как стать востребованным Junior программистом? Приходи учиться к нам!

История существования Direct Line насчитывает уже более двадцати лет, шестнадцать из которых мы посвятили разработке сайтов для компаний по всему миру. Мы хотим поделиться своим опытом, поэтому мы решили открыть DL Academy — место, где будут преподавать лучшие специалисты нашей компании. DL Academy предлагает офлайн курсы для программистов, обучаясь на которых вы узнаете все о сфере IT из первых рук, поработаете бок о бок с практикующими разработчиками и станете востребованным junior программистом. Выберете интересующую вас программу в DL Academy и освойте профессию, о которой давно мечтали.

логотип dl academy

Кто такие junior программисты и что они делают?

Если вы подписаны на группы Вконтакте, телеграм-каналы с вакансиями или хотя бы раз заходили на Headhunter в поисках работы, то наверняка видели объявления, в которых компании ищут junior developer или проще говоря младших программистов. Junior программист — это первая ступень в карьере IT специалиста. Следующий уровень развития специалиста — это middle developer, а за ним следует senior или старший программист. В этой статье мы подробно остановимся на том, кто такие джуны, сколько они зарабатывают и что должен уметь начинающий программист.

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

Джуны приходят в компании и работают там под присмотром и руководством более старших и опытных коллег и набивают руку на практических заданиях.

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

джуниор разработчик

Ключевые навыки, необходимые junior программисту

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

  • Язык или языки программирования. Чем больше вы умеете — тем лучше. Часто одного Java или PHP недостаточно для того, чтобы получить место в хорошей компании, однако надо с чего-то начинать и Pyton подойдет для новичков лучше всего. Это универсальный язык, который сейчас пользуется большим спросом, к тому же люди даже незнакомые с кодом смогут его освоить. DL Academy предлагает курсы для Frontend и Backend разработчиков, на которых в течении полугода вы будете изучать теорию и параллельно создавать проекты с использованием HTML, CSS, Python и других языков. После завершения программы у вас будет не только уверенная база знаний, но и практический опыт.
  • Придется разобраться в таких понятиях, как объектно-ориентированное программирование, функциональное программирование, шаблоны проектирования, принципы S.O.L.I.D. Это одни из наиболее главных концепций и основа, которая лежит в образовании программиста.
  • Английский язык. Не совсем очевидный, но абсолютный мастхэв для любого человека, который мечтает о карьере в IT. Во-первых, это основа языков программирования, а, во-вторых, сейчас многие проекты ведутся интернациональными командами, поэтому вполне вероятно, что вам придется общаться со своими коллегами именно на английском.
  • Последнее в списке, но не по значимости: умение и желание учиться, упорство и терпение. Не все будет получаться сразу, программирования это постоянный поиск и исправление своих ошибок. Многие люди, которые пытаются самостоятельно обучиться программированию сталкиваются с тем, что код, вроде бы написанный верно, не работает. У некоторых не хватает терпения и опыта для того, чтобы найти и осознать ошибку, и она забрасывают программирование, уверенные в том, что это не для них. Поэтому для начинающих лучше всего подходят офлайн курсы — там опытные специалисты быстро найдут проблему и доступно объяснят, что пошло не так. Это очень важно иметь поддержку практикующего профессионала, совместная работа поможет junior программисту быстрее освоить основные для работы навыки. На курсе по программированию от DL Academy с вами будут работать наши лучшие разработчики, проверять ваше домашнее задание и давать развернутые комментарии по вашим проектам.

Где найти работу начинающему программисту?

В первую очередь можно разместить свое резюме и откликаться на вакансии на таких площадках, как, например, HeadHunter или LinkedIn (если у вас все хорошо с английским). Также можно просматривать тематические телеграм-каналы и паблики Вконтакте. Будьте готовы предоставить свое резюме, а также укажите проекты, над которыми вы работали. Иногда junior программистов просят пройти тестовые задания, чтобы оценить их навыки, поэтому не удивляйтесь и не расстраивайтесь, работодатель просто хочет убедиться в том, что вы ему подходите.

Студентам DL Academy мы предлагаем уникальную возможность — начать свою карьеру в нашей международной компании Direct Line.

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

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

Без опыта в IT: как junior-программисту найти первую работу

Бизнес-процессы уходят в онлайн. Всем нужны удобные сайты и приложения, чтобы привлекать больше клиентов. Компании перебивают офферы друг друга — хотят заполучить нужного специалиста как можно быстрее. И не важно, что дорого. Спрос растет быстрее предложения. Дефицит кадров ощущается все острее. Именно так проживает 2021 год рынок труда в IT-сфере.

Исследование HeadHunter показывает, в России сохраняется низкая конкуренция и высокий спрос в IT: на одну вакансию претендуют до двух кандидатов. А программисты остаются самыми востребованными специалистами — 49% вакансий от общего числа в отрасли.

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

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

Константин Военков

Руководитель разработки онлайн-университета Skypro

Николай Субоч

Ведущий разработчик в Тинькофф Банке, ведущий эксперт курса онлайн-университета Skypro

Михаил Черемухин-Рерберг

Middle-разработчик в Альфа-Банке, ментор в онлайн-университете Skypro

Как попасть в профессию

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

1. Учитесь в профильном вузе

Классическое образование отличается тем, что теории дают много, но как применять знания на практике понятно не всегда. Четыре года обучения пролетают, а выпускник даже не представляет, чем он будет заниматься на работе. Как студенту получить опыт в процессе учебы рассказал Николай Субоч:

«Типичный junior — выпускник университета или студент старших курсов. Он может поинтересоваться стажировками от крупных компаний. Обычно университеты сотрудничают с работодателями и дают такую возможность своим студентам. Например, устроиться на летних каникулах на интересную стажировку и попрактиковаться. Возможно, поступит предложение остаться в штате.

Другой вариант — выпускник готовит дипломную работу со своим научным руководителем по теме Computer Science. Тогда сам преподаватель может подтолкнуть студента выступить на профильных конференциях по своей теме. Мир IT узкий. Выпускник узнает о стажировке из таких мероприятий или от научного руководителя».

2. Учитесь на курсах

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

Михаил Черемухин-Рерберг вспоминает, как получил первую работу программиста:

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

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

3. Изучаете программирование самостоятельно

Пожалуй, самый сложный и долгий путь. Выучить язык программирования нетрудно. Но для работодателя важнее, чтобы вы понимали процессы разработки, знали принципы и подходы программирования, разбирались в основах Computer Science. Все это сложно освоить без наставника. А когда в приоритете основная работа и семья, времени на обучение уходит больше: вас некому подгонять, вы начинаете и бросаете несколько раз.

«У работодателя будут дополнительные вопросы к junior-специалисту, если он во взрослом возрасте решил сменить профессию и освоить разработку самостоятельно. Все компании хотят брать новичка, который за год-два вырастет до уровня middle. А если человек долго остается на позиции junior, от него пользы меньше, чем потраченного времени».

Как проходит собеседование у новичка

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

Мотивацию и способность к обучению

Каждый руководитель понимает, в junior-специалиста придется вкладывать много времени и сил. Поэтому выбирает себе заинтересованного и самостоятельного сотрудника, чтобы быстро вырастить его до middle-разработчика.

«Я смотрю, какие знания у кандидата и их динамику. Если специалист получил свои знания за короткий период времени — для меня это хороший знак. Значит, он легко обучается и быстро дорастет до следующего уровня»

«Я спрашиваю, как человек развивается в профессии: что читает, слушает, интересуется ли смежными областями. Проверяю общую эрудицию в отрасли».

➤ Навыки общения

«Программист не просто пишет код, он решает проблемы. Поиск решения и определение проблемы — важные этапы разработки. Программирование — это про борьбу со сложностью. Чем проще вы решаете проблему, тем лучше. Чтобы выбрать оптимальное решение для конкретной задачи, приходится общаться и понимать людей с другим мировоззрением. Поэтому программисту важно развивать soft skills».

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

➤ Фундаментальные знания

Процесс найма программистов сильно отличается от компании к компании. Одни работодатели задают теоретические вопросы по чек-листу и фиксируют, правильно вы ответили или нет. Другие — выводят на простой разговор, чтобы разрядить обстановку. Иногда вам дают тестовое задание, вы делаете его в указанные сроки и отправляете на проверку.

«Junior-разработчика любят спрашивать про базовые алгоритмы и структуру данных. Проверяют мыслит ли он в терминах Computer Science. Просят реализовать несложную задачу на языке программирования. Если хотите подготовиться к алгоритмическим секциям, заходите на сайт leetcode.com. На нем весь мир тренируется решать алгоритмические задачи».

➤ Практический опыт

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

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

Три главных совета junior-разработчикам от опытных коллег:

✔ покажите заинтересованность и желание развиваться самостоятельно — руководитель должен быть уверен, что вы быстро станете middle-разработчиком;

✔ подготовьте практические проекты, они могут быть учебными — работодатель поймет ваш уровень знаний и количество вопросов к вам сократится;

✔ соблюдайте культуру общения — проявляйте уважение к собеседнику, будьте вежливы и открыты. На старте карьеры soft skills ценятся высоко.

Где учиться на разработчика

Если вас привлекает IT-сфера, вы хотите быстро развиваться, работать удаленно и оставаться востребованным специалистом, за которого борются компании, — присмотритесь к курсам онлайн-университета Skypro.

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

  • обучение
  • карьера программиста
  • карьера в it-индустрии
  • junior
  • junior developer
  • Блог компании Skypro
  • Веб-разработка
  • Разработка мобильных приложений
  • Учебный процесс в IT
  • Карьера в IT-индустрии

Что должен уметь junior в IT — главные требования к новичкам

На протяжении уже двух лет требования к джунам становятся всё жестче. IT, как отрасль, активно развивается — у специалистов растёт заработная плата, но вместе с этим увеличивается и конкуренция внутри сферы. Поэтому даже на старте многие сталкиваются с тем, что нужен либо опыт работы, либо углубленные знания. В статье мы расскажем о требованиях к junior в IT — что именно должен знать и уметь специалист.

Junior-программист или джун — это стартовая позиция для работника с минимальным опытом. Чтобы найти подходящую работу, нужно иметь не только hard, но и soft skills. Работодатель смотрит ещё и на портфолио, узнаёт про уровень образования. Forbes пишет, что в IT уменьшение числа вакансий с одновременным ростом кандидатов сильнее всего проявилось именно в сегменте начинающих специалистов. Джуны — дорогие кадры, которых надо учить и мотивировать. И вот, что требуют от такого сотрудника работодатели.

Начать карьеру в IT-сфере можно на онлайн-курсах: «Python-разработчик» от Bang Bang Education или «Разработчик на Python с гарантией трудоустройства» от Skypro.

Образование

Сложнее всего трудоустроиться тем, кто закончил онлайн-курсы за 2-3 месяца. Хоть при первоначальном просмотре резюме HR-специалист и не акцентирует внимание на образовании кандидата, но при сравнении его с другими потенциальными сотрудниками уровень образования уже играет значительную роль. Работодатели чаще отдают предпочтение джунам, имеющим высшее техническое образование. Это не значит, что если вы прошли онлайн-курс, можно даже не пробовать искать работу на эту позицию. Трудоустроиться можно и после окончания курса — возможно, не на junior, а на позицию стажёра.

Чаще всего в вакансиях не указывают желаемый уровень образования. Но в предложениях для Java и Python программистов начального уровня подготовки всё чаще мелькает фраза — «студент последних курсов или же выпускник технического вуза».

Кстати, некоторые онлайн-курсы предлагают трудоустройство. Например, «Профессия: Python-разработчик с гарантией трудоустройства» от ProductStar или «Python-разработчик с гарантией трудоустройства» от Eduson Academy.

Опыт работы

Логично предположить, что у junior-специалиста нет большого опыта работы. Современные реалии таковы, что на эту позицию берут соискателей, которые работали 1-2 года по выбранному направлению. Если вы ещё не успели нигде поработать, не стоит расстраиваться — некоторые компании рассматривают и джунов без опыта. Соотношение на рынке примерно 60 на 30% — то есть 60 процентов работодателей принимают на работу с опытом работы 1-2 года, а 30 процентов берут программистов на начальную позицию без опыта.

Кроме позиции junior есть ещё другой вариант — стажёр. Их чаще, чем джунов, устраивают без опыта. Но в крупных компаниях, например, Яндексе, даже на позицию стажёра иногда требуется опыт работы от 1 года до 3 лет.

Возраст

По исследованиям компании Zippia, считается, что средний возраст Junior Software разработчика в США составляет 39 лет. В нашей стране всё по-другому — специалисты сервиса «Мой круг» провели исследование рынка IT и пришли к выводу, что в России средний возраст соискателей на стартовую позицию — 20-22 года. Значит ли это, что на работу не берут тех, кто решил сменить сферу деятельности, например, в 35 лет? Нет. В большей части вакансий не указаны требования к возрасту, поэтому претендовать на вакантное место могут как студенты последних курсов в возрасте от 20 до 23 лет, так и те, кому за 30.

Hard skills

Профессиональные навыки, необходимые для работы в конкретной сфере, называют hard skills. Tutortop рассмотрит их в разрезе каждого из направлений.

Frontend-разработка

К Frontend относится видимая для пользователя сторона, например, интерфейс сайта. А фронтенд-разработчик создаёт пользовательский интерфейс для сайтов или приложений. Это работа с JavaScript, HTML и CSS. Чтобы претендовать на позицию джуна, нужно знать:

  • основы JavaScript;
  • основы HTML и CSS — прокачать эти навыки можно на курсе «Frontend-разработчик: расширенный курс» от Нетологии;
  • как работать с Git — системой для отслеживания изменений в файлах;
  • как использовать фреймворки и библиотеки, например, React;
  • основы работы с графическими редакторами;
  • зачем нужен протокол HTTP;
  • английский язык для чтения литературы и документов.

Backend-разработка

Если frontend — про работу с внешними данными, то backend-разработка нужна для создания и управления внутренними системами сайтов, выстраивания обмена данными. Считается, что это направление сложнее и объёмнее. Вот, что требуют от junior-специалиста:

  • владение одним из языков программирования (Java, PHP, Python, Go, C++);
  • знание HTML и CSS, умение верстать;
  • понимание, как устроены и работают сайты;
  • наличие базовых навыков программирования, работы с данными;
  • возможность работать с базами данных, чаще всего SQL — например, MySQL или Oracle;
  • понимание, как использовать систему контроля версий;
  • умение работать с GitHub и GitLab;
  • знание английского языка для чтения документации и общения с коллегами.

А узнать больше о Java можно на онлайн-обучении:

  • «Java-разработчик» от Логомашины
  • «Java-разработчик с нуля» от Нетологии
  • «Профессия: Java-разработчик с гарантией трудоустройства» от ProductStar

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

Data Analyst

Аналитикой данных или Data Analyst занимается специалист, который собирает и анализирует большие массивы информации, а потом обрабатывает их и делает вывод. Работа Data Analyst в любой из компаний ценится высоко — ведь на основе этих выводов и формируются дальнейшие планы. Junior Data Analyst должен понимать:

  • как пользоваться Google Таблицами, Excel, Word;
  • основные моменты в работе с Python;
  • как писать запросы к базам данных SQL;
  • на основе чего создаются отчёты в BI системах;
  • как использовать методы статистического анализа в работе.

Data Scientist

Для обработки данных Data Scientist использует математические алгоритмы, программное обеспечение и те инструменты, которыми пользуются программисты для разработки. Если сравнивать работу с тем, что делает Data Analyst, то Data Scientist в этом плане чуть ближе к основам программирования и работы именно с технической стороной. От начинающего дата-сайентиста работодатель ждёт:

  • знаний алгоритмов и структуры данных;
  • умения писать код на Python и работать с фреймворками;
  • знаний математики и статистики;
  • владения инструментами для анализа данных — Hive, Kafka;
  • знаний технологий машинного обучения;
  • умения отображать полученные результаты и работать с программами для визуализации данных, например, Power BI.

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

  • Data Scientist;
  • Аналитик данных;
  • Стань аналитиком данных.

DevOps-инженер

Перед DevOps-инженером стоит немало задач. Но прежде всего, он следит за всеми этапами создания продукта, например, игры или сайта, и делает так, чтобы эти этапы были скоординированы. Специалисту нужно разбираться в процессе разработки, инфраструктуре и жизненном цикле. Требования к джунам такие:

  • иметь опыт работы с одним из языков программирования;
  • знать цикл разработки и внедрения ПО;
  • уметь составлять запросы к базам данных;
  • понимать, как работают IP-сети;
  • уметь писать простые скрипты;
  • понимать, как развёртывать и администрировать кластеры;
  • знать английский язык на среднем уровне.

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

Soft skills

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

  • внимательность;
  • стрессоустойчивость;
  • умение работать в команде;
  • структурное мышление;
  • ответственность за результат;
  • коммуникабельность;
  • способность выполнять рутинную работу;
  • умение работать в режиме многозадачности;
  • профессионализм.

Хочу стать программистом!

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

Карина Лебедева

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *