Кто такой джуниор и стоит ли идти им работать?
Некоторые компании пишут в объявлениях, что ищут джуниор-программистов. В этой статье — кто такие джуны, что они делают и надо ли вам туда.
Послушать аудиоверсию этой статьи (6 минут):
Джуниор-программист или джун — стартовая позиция в программировании. Это человек, который имеет небольшой опыт работы с каким-то языком и выполняет рутинную работу с перспективой роста.
Если вы умеете писать простые программы, понимаете их принцип работы и можете разобраться в чужом коде с комментариями — значит, вы можете быть джуниором.
Градации программистов и фулстек
Есть четыре градации в программировании: стажёр, джуниор, мидл и сеньор (Junior, Middle, Senior).
Деление условное, всё зависит от требований компании. То, что одни компании требуют от джуниоров, другие хотят от мидлов.
Единых требований к рабочему процессу у джуниоров тоже нет. Кто-то ждёт, что человек на этой позиции будет делать только вспомогательную работу, но не допускают до основного кода. Максимум — им могут дать писать документацию. В других фирмах джунов сразу сажают на рабочие проекты и дают мидла в помощь.
За опытом
Если хотите быстро прокачаться в языке программирования, быть джуном — идеальный вариант. Есть компании, которые не готовы платить много новичкам, но готовы вкладываться в их развитие, чтобы вырастить себе сильного программиста. Они платят по 30–40 тысяч рублей, но помогают вам освоить язык: комментируют код, дают кураторов, обучают. При этом вы тоже будете делать что-то полезное для компании.
Требования к кандидатам простые: знание основ языка, желание развиваться, упорство и готовность работать за маленькую зарплату. Для многих начинающих это реальный способ за полгода прокачаться в профессии.
За деньгами
Второй вариант работы джуниором — сразу начать зарабатывать, но тут сложнее. Немногие компании готовы сразу платить нормальные деньги новичкам в надежде, что они сами всему научатся. Можно рассчитывать на зарплату всего на 10–15 тысяч больше, чем в первом варианте, но требования тут другие. От вас будут ждать, что вы сами способны выдать рабочий код. Поблажек на то, что вы только начинаете, не будет.
С другой стороны, если вы пишете на популярном и простом языке, то конкуренция будет выше, а зарплаты — ниже, потому что много желающих поработать. Тем, кто пишет на редких или перспективных языках типа Kotlin или Rust, платят больше.
Медианные зарплаты джунов
Мы посмотрели на статистику зарплат в калькуляторе «Моего круга». Данные на начало 2019 года:
Для сравнения: медианная зарплата фулстек-мидла — 80 тысяч.
Что в итоге
Джуниор — начинающий программист, который знает и понимает язык, но не решал реальных производственных задач.
Даже если вы только начали изучать программирование, можно найти работу, где вы получите мало денег и много опыта, или нормальные деньги и высокие требования.
Если не бросать развитие и программирование, можно вырасти в мидла с зарплатой и возможностями побольше, но о них — в другой раз.
Джун, мидл и сеньор: разбираемся, кто есть кто
«Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку»
Деление специалистов на junior, middle и senior хорошо знакомо разработчикам — так обычно определяют уровень компетенций. Но каких требований ожидать от работодателя, если ему нужен «джун», «мидл» или «сеньор»? Попробуем разобраться.
Возраст и опыт — далеко не главное
Человек, который мало знаком с IT, может подумать, что senior — это разработчик, который много лет отдал своей профессии, middle — программист среднего возраста, а junior — вчерашний школьник, который начинает осваивать программирование.
Нельзя сказать, что это полное заблуждение. Нередко джуны действительно молоды, мидлам около 35 лет, а у сеньоров уже седеют волосы. Но не так уж редко встречаются солидные джентльмены, работающие на позиции middle и даже junior под руководством молодого senior-разработчика. Все зависит от компетенций человека, его личностных качеств и, конечно, возраста старта в профессии.
Так в чём различие?
Есть несколько способов понять, кто есть кто, но самый простой и эффективный — посмотреть исходники. Если код сложной программы без труда могут разобрать другие разработчики, у него понятная архитектура и стройная логика — скорее всего, его писал сеньор. И напротив, если код простого продукта получился причудливым, со сложными абстракциями и странными однострочниками — над ним наверняка работал джун.
Сеньоры заботятся о простоте кода — чтобы его легко освоили коллеги, а поддержка не доставила хлопот. Джунам для этого не хватает опыта — они действуют по принципу «Если работает, то всё отлично». До читаемости и чистоты кода руки не доходят.
Если для сравнения взглянуть на код, написанный сеньором, может даже возникнуть недоумение: «Да как так, сложная ведь программа, а так изящно и просто написана!» Этот навык приходит с опытом и далеко не ко всем.
Разница только в коде?
Нет, на этом различия не заканчиваются. Рассмотрим внимательнее специалистов каждого уровня, а затем сопоставим наблюдения.
Junior
В большинстве случаев джуны реализуют простые задачи: например, части проекта, которые затем объединяются. Они делают кирпичики, из которых можно возвести пригодный для жизни дом. При этом джуны зачастую не представляют себе масштабы здания, в постройку которого они вкладываются.
Хорошим джуном считается тот, который может самостоятельно работать над своими «кубиками» — техническими задачами. При этом важно, чтобы его разработки нормально функционировали, когда их встраивают в приложение или сервис.
Скорее всего, на следующий уровень выйдет джун, который:
Middle
Джун, который набрался опыта, улучшил компетенции и научился чисто выполнять свои задачи, может претендовать на позицию мидла. Буквальный перевод слова middle — «середина», но на самом деле в разработке мидл ближе к сеньору, чем к джуну.
Мидлы осознают масштабы проекта, но тоже разрабатывают только его части, хотя и более крупные. Мидл способен самостоятельно выполнять сложные задачи в рамках проекта, причём не только технические, но и административные. На этом уровне разработчик должен понимать требования бизнеса и уметь реализовывать их на практике.
Важные качества мидлов:
Senior
Эта ступень не каждому доступна — многие разработчики остаются на уровне мидла всю карьеру. Чтобы подняться выше, нужны «тонкие» компетенции, которые позволят решать задачи, которые не под силу больше никому. Нужно знать и уметь больше, чем большинство коллег. Например, не просто писать хороший код, а учитывать в нём инструментарий и специфику компании. Сеньоры могут самостоятельно разработать масштабное приложение или сервис с нуля — потому что понимают архитектуру и знают, что и как должно быть создано.
Сеньору требуется не только навык командной работы, как мидлу, но и управленческий опыт. Значит, нужны и коммуникативные навыки. Сеньор может убедительно донести свою точку зрения до команды и руководства, а после реализовать предложенную идею. Он всегда знает, как задать вопрос (и коллеге, и поисковому сервису), чтобы получить нужный ответ. И ещё синьор — это часто ментор: помогает джунам осознать масштабы проекта, правильно работать и развиваться.
Сеньор должен глубоко понимать устройство библиотек, фреймворков, инструментов разработки. Иначе конечный продукт будет вести себя непредсказуемо.
Такой специалист в команде — это фактор стабильности. Он понимает технические риски и знает, как их снизить. Задача сеньора — сделать так, чтобы в коде совсем не было «костылей», которыми грешат джуниоры и мидлы. Без вмешательства опытного руководителя иногда получаются такие продукты, которые ассоциируются разве что с фантастическим гибридом бегемота с носорогом, у которого есть ещё гены утконоса и лотоса. Работает этот монстр Франкенштейна — и ладно.
В сухом остатке
Мы видим, что разница между тремя категориями специалистов — не в возрасте или стаже. Главные различия состоят в отношении к самому процессу разработки, в его понимании и осознании. Об этом и цитата в эпиграфе статьи: она очень точно характеризует новичков и профессионалов.
В GeekBrains мы готовим и джунов, и специалистов уровня middle. Для первых у нас есть короткие курсы — «профессии», а для вторых — более продолжительные программы на факультетах GeekUniversity. Выбирайте сами, по какому маршруту сократить путь до позиции сеньора 
«Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку»
Деление специалистов на junior, middle и senior хорошо знакомо разработчикам — так обычно определяют уровень компетенций. Но каких требований ожидать от работодателя, если ему нужен «джун», «мидл» или «сеньор»? Попробуем разобраться.
Возраст и опыт — далеко не главное
Человек, который мало знаком с IT, может подумать, что senior — это разработчик, который много лет отдал своей профессии, middle — программист среднего возраста, а junior — вчерашний школьник, который начинает осваивать программирование.
Нельзя сказать, что это полное заблуждение. Нередко джуны действительно молоды, мидлам около 35 лет, а у сеньоров уже седеют волосы. Но не так уж редко встречаются солидные джентльмены, работающие на позиции middle и даже junior под руководством молодого senior-разработчика. Все зависит от компетенций человека, его личностных качеств и, конечно, возраста старта в профессии.
Так в чём различие?
Есть несколько способов понять, кто есть кто, но самый простой и эффективный — посмотреть исходники. Если код сложной программы без труда могут разобрать другие разработчики, у него понятная архитектура и стройная логика — скорее всего, его писал сеньор. И напротив, если код простого продукта получился причудливым, со сложными абстракциями и странными однострочниками — над ним наверняка работал джун.
Сеньоры заботятся о простоте кода — чтобы его легко освоили коллеги, а поддержка не доставила хлопот. Джунам для этого не хватает опыта — они действуют по принципу «Если работает, то всё отлично». До читаемости и чистоты кода руки не доходят.
Если для сравнения взглянуть на код, написанный сеньором, может даже возникнуть недоумение: «Да как так, сложная ведь программа, а так изящно и просто написана!» Этот навык приходит с опытом и далеко не ко всем.
Разница только в коде?
Нет, на этом различия не заканчиваются. Рассмотрим внимательнее специалистов каждого уровня, а затем сопоставим наблюдения.
Junior
В большинстве случаев джуны реализуют простые задачи: например, части проекта, которые затем объединяются. Они делают кирпичики, из которых можно возвести пригодный для жизни дом. При этом джуны зачастую не представляют себе масштабы здания, в постройку которого они вкладываются.
Хорошим джуном считается тот, который может самостоятельно работать над своими «кубиками» — техническими задачами. При этом важно, чтобы его разработки нормально функционировали, когда их встраивают в приложение или сервис.
Скорее всего, на следующий уровень выйдет джун, который:
Middle
Джун, который набрался опыта, улучшил компетенции и научился чисто выполнять свои задачи, может претендовать на позицию мидла. Буквальный перевод слова middle — «середина», но на самом деле в разработке мидл ближе к сеньору, чем к джуну.
Мидлы осознают масштабы проекта, но тоже разрабатывают только его части, хотя и более крупные. Мидл способен самостоятельно выполнять сложные задачи в рамках проекта, причём не только технические, но и административные. На этом уровне разработчик должен понимать требования бизнеса и уметь реализовывать их на практике.
Важные качества мидлов:
Senior
Эта ступень не каждому доступна — многие разработчики остаются на уровне мидла всю карьеру. Чтобы подняться выше, нужны «тонкие» компетенции, которые позволят решать задачи, которые не под силу больше никому. Нужно знать и уметь больше, чем большинство коллег. Например, не просто писать хороший код, а учитывать в нём инструментарий и специфику компании. Сеньоры могут самостоятельно разработать масштабное приложение или сервис с нуля — потому что понимают архитектуру и знают, что и как должно быть создано.
Сеньору требуется не только навык командной работы, как мидлу, но и управленческий опыт. Значит, нужны и коммуникативные навыки. Сеньор может убедительно донести свою точку зрения до команды и руководства, а после реализовать предложенную идею. Он всегда знает, как задать вопрос (и коллеге, и поисковому сервису), чтобы получить нужный ответ. И ещё синьор — это часто ментор: помогает джунам осознать масштабы проекта, правильно работать и развиваться.
Сеньор должен глубоко понимать устройство библиотек, фреймворков, инструментов разработки. Иначе конечный продукт будет вести себя непредсказуемо.
Такой специалист в команде — это фактор стабильности. Он понимает технические риски и знает, как их снизить. Задача сеньора — сделать так, чтобы в коде совсем не было «костылей», которыми грешат джуниоры и мидлы. Без вмешательства опытного руководителя иногда получаются такие продукты, которые ассоциируются разве что с фантастическим гибридом бегемота с носорогом, у которого есть ещё гены утконоса и лотоса. Работает этот монстр Франкенштейна — и ладно.
В сухом остатке
Мы видим, что разница между тремя категориями специалистов — не в возрасте или стаже. Главные различия состоят в отношении к самому процессу разработки, в его понимании и осознании. Об этом и цитата в эпиграфе статьи: она очень точно характеризует новичков и профессионалов.
В GeekBrains мы готовим и джунов, и специалистов уровня middle. Для первых у нас есть короткие курсы — «профессии», а для вторых — более продолжительные программы на факультетах GeekUniversity. Выбирайте сами, по какому маршруту сократить путь до позиции сеньора 
Разница между «джуном», «мидлом» и «сеньором». И что делать, чтобы перейти на уровень выше
Уровень разработчика не обязательно определяется многолетним опытом программирования: «джун» вполне может быть старше «сеньора», — всё сводится к профессиональным навыкам. Это не означает, что старший разработчик должен быть специалистом во всём, но можно с уверенностью сказать, что навыки у него гораздо более развиты, чем у разработчиков младшего и среднего уровня.
Но разработчиков различных уровней отличает нечто большее, чем умение собственно программировать. Так в чем именно кроются различия?
Знания
Очевидно, что старший разработчик обладает гораздо более обширными знаниями. Для младшего разработчика изучить шаблоны проектирования, архитектуру, автоматизацию тестирования, методы повышения производительности и обеспечения безопасности и т. д. — отличный способ сократить этот разрыв в знаниях.
Важно знать, как должно создаваться программное обеспечение. Но просто знать всё это — не значит быть разработчиком более высокого уровня. Знания — это не ключевое отличие, а лишь один из факторов.

Фото — Clem Onojeghuo, площадка Unsplash
Программирование
Несмотря на мнение большинства обычных людей, программирование — это не общение с компьютером. Программировать — значит общаться с людьми и отдавать указания компьютерам. Ведь код в итоге компилируется и превращается в нули и единицы.
Код должен нести в себе смысл для тех, кто будет работать с ним в будущем. Команда, подхватившая за кем-то другим проект, должна иметь возможность открыть его исходный код и начать работать над новыми функциями или исправлением ошибок. И здесь кроется существенная разница между «джуном» и «сеньором».
Разработчиков среднего уровня в этом сравнении я учитывать не буду, поскольку в отношении навыков программирования они представляют собой своего рода переходную область — скорее ближе к уровню старшего разработчика. В основном «промежуточное» положение определяется опытом, поскольку обычно «мидл» успевает пройти весь цикл разработки хотя бы раз, а также совершить множество простейших ошибок и извлечь из них уроки.
Как вычислить «джуна»
Младшие разработчики неопытны: иногда это выпускники, которые только начинают работать на полную ставку. В их голове основная задача — заставить код работать. Если приложение работает — значит, оно хорошее.
Писать простой код — это сложная задача. И младшие разработчики этого делать не умеют: обычно код у них довольно своеобразный. Узнать их можно по причудливым однострочникам и чрезмерно сложным абстракциям — так «джуны» стремятся показать себя и пытаются дать понять другим, насколько хорошо они умеют программировать. Но это неверный подход.
Младшие разработчики сосредотачиваются на «компьютерной» части кода, упуская из виду «человеческую».
Как пишут код «сеньоры»
Глядя на код старшего разработчика, можно подумать: и это всё? А где остальное? Достаточно опытный разработчик пишет простой, понятный и, возможно, местами даже чересчур прямолинейный код — и это одно из самых важных качеств, если говорить о программировании. «Сеньор» следует принципу KISS, гласящему, что код должен быть простым и понятным: «Keep it simple, stupid»
Поэтому у старшего разработчика совершенно другой подход к написанию кода: он учитывает удобство дальнейшей поддержки и масштабируемость. Это совершенно не похоже на мышление младшего разработчика: «сеньор» думает о тех, кто будет работать с кодом, а «джуну» важно в первую очередь заставить код работать.
Не программированием единым
Помимо навыков программирования, есть и другие факторы, которые могут подсказать, что за разработчик перед вами.
Младшие разработчики, как правило, выполняют самые простые и не самые важные задачи; они не занимаются разработкой архитектуры. Разработчики среднего уровня тоже не разрабатывают решения, а просто выполняют задачи, однако их меньше контролируют — если задание довольно типовое. А вот «сеньоры» могут разработать приложение совершенно самостоятельно.
Это не значит, что у старшего разработчика по ходу дела не возникает вопросов: у любого из нас каждый день появляется множество вопросов, и «сеньоры» тут не исключение.
Разница в том, что последние знают, как задавать правильные вопросы и что делать с полученными ответами. Менее опытные разработчики могут задавать правильные вопросы, если речь идет о привычных им задачах, но в более сложных случаях им приходится обращаться за помощью.
Старший разработчик никогда не теряется и знает, как правильно действовать, получив ответ на вопрос. Это не значит, что он не будет просить совета у других — иногда лучшим решением бывает именно обратиться за помощью к тем, кто имеет больше опыта в данной области.
Разработчик среднего уровня также должен уметь задавать правильные вопросы, если только это не очень сложные задачи, требующие глубокого уровня знаний.
А вот в случае «джунов» не следует ожидать, что они смогут задавать нужные вопросы: у них недостаточно практики, поэтому ими должны руководить более опытные коллеги. Младшего разработчика следует обеспечить необходимыми ресурсами или хорошенько подтолкнуть в правильном направлении.
Переход на следующий уровень
Мы все хотим совершенствоваться, в том числе профессионально. Но какие шаги можно предпринять, чтобы перейти на следующий уровень?
От «джуна» — к «мидлу»
Начинающие разработчики не обладают богатым опытом, поэтому важно хотя бы пару раз пройти весь цикл разработки — таким образом вы сможете встретить на своем пути множество ловушек и научитесь их избегать.
Что касается программирования — следует научиться писать простой код: представьте, что после вас над проектом будет работать другой человек. Кроме того, придется научиться заниматься отладкой — это углубит понимание того, что происходит во время работы программы.
Также необходимо ознакомиться с лучшими методиками и побольше узнать об архитектуре, производительности, безопасности и т. д. Закройте пробел в знаниях, отделяющий вас от среднего уровня.
От «мидла» — к «сеньору»
Разработчикам среднего уровня подняться выше может быть довольно сложно: некоторые остаются на этом уровне всю свою карьеру.
Старший разработчик знает, в каких случаях можно пойти на компромисс, и когда этого делать ни в коем случае нельзя — потому что он успел проверить это на собственном горьком опыте.
Чтобы перейти на уровень «сеньора», нужно быть готовым к выполнению задач, за которые никто понятия не имеет, как браться. Нужно знать и уметь больше, чем просто делать свою работу.
Кроме того, как старший разработчик вы должны помогать менее опытным: вы для остальных — спасательный круг, за который можно ухватиться, когда не знаешь, как что-то сделать.
В свете этого неудивительно, что «сеньоры» полностью владеют своим техническим стеком. Нужно не просто уметь программировать, а знать все инструменты и приложения, которые используются в нанявшей вас компании.
Заключение
Разница между «джуном», «мидлом» и «сеньором» заключается не только в многолетнем опыте. Да, можно с уверенностью сказать, что у последнего навыки гораздо более развиты, чем у разработчиков младшего и среднего уровня. Но знание — не самый важный фактор.
Опытные разработчики пишут более простой код и подходят к этому иначе. Но кроме того, чтобы уметь программировать, очень важно также знать, какие вопросы задавать и что делать с полученными ответами. Именно старший разработчик — тот человек, чей богатый опыт позволяет не растеряться и в любой ситуации найти решение.
«Джуну», чтобы расти дальше, нужно постараться научиться писать простой код и пройти через несколько полных циклов разработки. Чтобы подняться выше среднего уровня, нужно сосредоточиться на изучении чего-то большего, чем просто рутинные задачи по исправлению ошибок. Вы должны быть готовы брать на себя самые сложные задачи и полностью овладеть своим техническим стеком. Еще одна обязанность старшего разработчика — выручать менее опытных.
Напоследок процитирую Мартина Фаулера:
«Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку»
Перевод статьи выполнен в Alconost.
Alconost занимается локализацией игр, приложений и сайтов на 70 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.
Мы также делаем рекламные и обучающие видеоролики — для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.
Кто такие джуниоры? Что должен знать Junior-разработчик?
Если вы только пытаетесь войти в «айти», то вы вряд ли можете претендовать на позицию выше джуниора. В этой статье мы расскажем о том, кто же такой джун (джуниор, Junior), какими навыками он должен обладать, а также ответим на вопрос, какие еще градации существуют.
Очень часто в объявлениях о трудоустройстве можно найти информацию о том, что та или иная компания ищет джуниора. Под наименованием «джун» подразумевается стартовая позиция в разработке. Речь идет о «новичке» — человеке, имеющим минимальный опыт работы, причем не столь важно, сколько этому человеку лет. Да, «эйджизм» порой присутствует, однако можно привести примеры, когда джунами успешно становились люди, которым более 40 лет (часто именно в среднем возрасте появляется желание перейти в новую профессию, есть даже случаи, когда люди устраивались в IT и в 50 лет, ведь никогда не поздно начать все с нуля).
Пусть вас не смущает словосочетание «начинающий разработчик», то есть не стоит думать, что джун ничего не умеет. Джуниор — это все же специалист, хоть и младший. То есть он способен самостоятельно писать свой код, понимает принципы работы программ, может разобраться в чужом коде, успешно справляется с простыми задачами, а при помощи ментора может принять участие и в решении средних по сложности задач.
Но прежде чем продолжить, давайте рассмотрим общую градацию программистов.
Уровни разработчиков
В программировании, как и в тестировании программного обеспечения, существуют 4 общепринятых градации: — Trainee (стажер). Он может работать в компании временно и часто бесплатно (хотя в некоторых компаниях стажировка оплачивается, но платят за нее мало). Это чаще всего студент старших курсов, который учится и практикуется, набирается опыта. Он редко участвует в написании «боевого» кода, но основами программирования уже владеет; — Junior (младший специалист). Пишет код под чутким присмотром нескольких более опытных коллег. Такому специалисту уже мало основ, его уровень компетенций выше; — Middle (мидл, специалист среднего уровня). Вполне себе состоявшийся спец среднего звена, который способен самостоятельно писать качественный код. Такие нужны на рынке часто — им и платить не надо слишком много, и навыки у них довольно высокие; — Senior (сеньор, старший специалист). Имеет неплохой опыт разработки. Разбирается в архитектуре программного обеспечения и паттернах программирования, знает о взаимодействии систем, модулей и т. п.
На практике это деление бывает условным и зависит от внутренних требований ИТ-компании. Бывает, что тестировщик не может получить уровень Senior, если не подтвердит свою квалификацию путем сдачи экзамена по ISTQB.
Компании компаниям рознь. То, что одни требуют от младших специалистов, другие хотят от мидлов. Каких-нибудь единых требований тут нет, поэтому одни джуны первое время делают вспомогательные задачи, а другие сразу садятся за рабочие проекты под присмотром старших коллег. Старших по опыту и компетенциям, а не по возрасту, количеству лет и наличию седых волос в бороде.
Какова зарплата у юниоров?
Не стоит думать, что, только устроившись разработчиком, вы сразу же станете получать тысячи долларов — это не так. Сколько вы получите — зависит и от языка программирования, и от компании, и от результатов собеседования, и от специфики деятельности (бэкенд, фронтенд, фулстэк). Но все равно заработная плата не бывает поначалу слишком большой и находится в пределах 40-60 тысяч российских рублей.
А вот уже медианная зарплата мидла составляет, судя по данным 2019 года, 80 тысяч рублей, так что, стремиться есть куда.
Выбрав это направление, будьте сразу готовы к тому, что придется постоянно совершенствовать свои навыки. Нужны старания, да и учиться придется всегда, иначе вы просто со временем станете неконкурентоспособными.
Важно понять, что карьера в IT — это путь, который нужно пройти, то есть на быстрое обогащение рассчитывать не стоит. Не надо думать и то, что пройдя один из многочисленных ИТ-курсов, вы сразу станете профессионалом — достаточно вспомнить, что для получения профессии инженера в университете нужно учиться не менее 4 лет. Почему же некоторые думают, что все нюансы специальности инженера-программиста можно освоить за неполный год, пройдя соответствующий онлайн-курс?
Всё, что нужно знать Junior-разработчику
Ниже мы постараемся сделать краткий ликбез того, какими знаниями должен обладать начинающий девелопер, чтобы пройти собеседование и правильно ответить на большинство вопросов.
Hard skills
Популярные вопросы: — почему вы выбрали именно этот язык программирования? Нужно понимать, какие у выбранного языка слабые и сильные стороны, где его лучше использовать, в каких случаях он не подойдет. Или же вы просто постарались выучить то, за что платят больше? — где учились, участвовали ли в реальных проектах? Тоже простой вопрос, от которого многое зависит. Приветствуется опыт участия в небольших проектах, которые вы реализовали в рамках обучения (именно поэтому обучение на большинстве курсов OTUS заканчивается курсовым проектом). Также важно иметь базу работ на GitHub. Хорошо, если вы участвовали в профильных мероприятиях: митапах, конференциях, хакатонах и конкурсах (прекрасно, если побеждали). Сертификаты об изучении технологий и окончании курсов тоже должны быть, хотя спрашивают их не всегда; — принципы ООП. Желательно не просто знать, но и иметь опыт применения на практике, разбираться в том, когда и какие принципы лучше применять; — алгоритмы сортировки. Могут задать вопрос про алгоритмы, а также дать задание написать код с применением быстрой сортировки; — какими технологиями владеете? Знать один лишь язык программирования явно недостаточно. Младший программист должен обладать и другими знаниями. Это и Spring, и базы данных/SQL, и системы контроля версий. Что-то требуется знать на начальном уровне, что-то будет просто плюсом; — опыт работы с IDE. Один из популярных вопросов — с какими средам разработки вам приходилось работать. Можно знать и одну среду, но при условии, что вы в ней разбираетесь довольно хорошо; — опыт работы с БД. Совсем необязательно быть профессиональным архитектором баз данных и работать с ними много лет. Но понимать, как выполнять запросы к БД, знать язык SQL (хотя бы на простом уровне), понимать логику работы БД — это все важно. Дополнительный плюс — назвать СУБД, с которыми приходилось работать, рассказать их плюсы и минусы; — опишите свой проект. Тоже важный вопрос, который мы уже упоминали. Дело в том, что младшие разработчики должны знать не только теорию, но и иметь опыт применения ее на практике. Хорошо, если вы можете рассказать про самый сложный проект, продемонстрировать его и со знанием дела отметить основные сложности, которые решали в процессе создания проекта; — какие методологии разработки известны? Такой вопрос задают и тестировщикам. Надо понимать суть основных классических методологий и быть в курсе методологии Agile (принципы, а также Scrum и Kanban). Эти знания точно лишними не будут; — опыт работы с Git. Важный вопрос, о котором уже вкратце упоминали. Главное — разбираться в системах контроля версий. Это может быть не только всенародно любимый GitHub, но и GitLab или BitBucket.
Кроме вышеописанных вопросов, соискателя могут попросить решить парочку несложных задач: 1) на логику; 2) на память и внимание; 3) на поведенческие качества и скорость мышления.
Возможны и другие вопросы, это как повезет. И будьте уверены, что всегда найдется вопрос, на который у вас не будет ответа.
Soft skills
Сегодня без неспециализированных надпрофессиональных навыков тоже никуда. Какие вопросы тут могут быть: — командный ли вы игрок? Коммуникативность — хороший и востребованный навык; — готовы ли вы постоянно учиться? IT-сфера и технологии стремительно развиваются, поэтому следует в очередной раз повторить, что надо быть готовым к постоянной «прокачке» своих скиллов; — какой уровень английского? Да, иногда он не должен быть слишком высоким, но если речь идет о компании, где практикуется работа в распределенной команде из разработчиков из других стран, то хотя бы Intermediate должен быть. Также девелоперу нередко приходится читать техническую документацию на английском и общаться напрямую с заказчиками, которые живут в Европе, США и т. п. Правило простое: чем выше уровень English — тем лучше; — как вы справляетесь со стрессом? Как и на любой работе, в IT тоже есть правила, обязанности, ошибки, дедлайны и прочие «радости» жизни, которые не дают заскучать и ободряюще действуют на нервную систему; — у вас возникла проблема на работе. Как вы ее решите? Это уже вопрос на самостоятельность. Тут следует понимать, что не нужно сразу дергать и отвлекать своих коллег — лучше попытаться разобраться самому, а в случае неудачи прийти за советом не с пустыми руками, а с вариантами решения и некоторыми наработками; — способны ли вы оценить время выполнения задач? Тут будет плюсом опыт с системами управления задачами, да и обычное человеческое умение адекватно оценить сроки и грамотно распределить свое время. Это важно особенно сейчас, когда весь мир перешел на удаленку.
Каких не берут в космонавты?
По итогу статьи сделаем краткие выводы: 1. Учиться придется постоянно. 2. Будьте готовы пройти сложный и долгий путь, карьера в IT не делается за один год (срок превращения младшего разработчика в сеньора индивидуален и зависит от ваших личных способностей/старания). 3. Поначалу платят немного. Это не факт, но лучше быть к этому готовым. Главное, что с годами и при должном старании труды окупятся с лихвой — главное не бросать все на полпути. 4. Приходя на собеседование, будьте подготовлены по максимуму.
Значит это лишь одно: если вы хотите попасть как Junior в компанию, вы должны быть на голову лучше конкурентов, иначе вы так и не проникнете в этот интересный, сложный и высокооплачиваемый мир информационных технологий, увидеть который изнутри дано не всем.



