что должен знать junior php разработчик
Что должен знать Junior PHP разработчик // PHP
В данной статье я хочу ответить на вопрос — “что должен знать Junior PHP разработчик в 2016м году?”.
При этом я постараюсь добавить побольше ссылок на учебные материалы, чтобы на собеседовании вам не пришлось краснеть.
Отчасти перед вами обновленная статья Что должен знать начинающий PHP разработчик, а поскольку PHP достаточно интенсивно развивается в последнее время, то мне пришлось внести изменения в большую половину текста, можете сравнить из любопытства 😉
Пункт номер ноль
Разработчик должен соображать и уметь использовать Google. Первое оценить крайне сложно, для этого придумано много «дурацких» вопросов для собеседований. Второй пункт прививается в первые дни испытательного срока. Плюсом будет аккаунт на stackoverflow.com.
Фундамент
Если вы твёрдо намерены заняться web-разработкой, то первое что вам нужно будет понять – это принцип работы HTTP протокола (эти знания можно почерпнуть в профильных ВУЗах). Так же вы должны поверхностно знать о существовании TCP/IP протокола и понимать за что отвечает DNS сервер.
Установив Apache — научитесь его настраивать и рестартовать:
Будьте осторожны, Linux затягивает, вроде неделька нужна для познания азов, а очнулся — уже Новый Год, а ты сидишь и iptables настраиваешь
SQL/MySQL
Основы синтаксиса SQL требуются практически от всех программистов, будь то веб-разработка, или мобильная, вам же надо немного вникнуть в MySQL и понимать различия между MyISAM и InnoDB. Знать как работают LEFT/RIGHT/INNER JOIN’ы — это наглядно разъясняется в статье Visual Representation of SQL Joins:
Проверьте свои познания — создайте базу данных для учёта вашей домашней библиотеки (у вас же есть такая?), в ней должны быть следующие сущности:
Основываясь на данной структуре данных, вы должны составить запросы которые покажут вам:
SQL можно изучать в отрыве от всего остального, и он никому не повредит, чтобы разобраться на должном уровне с ним вам потребуется неделька усердного изучения без перерывов на поиграться.
HTML и CSS
Сверстайте пару страниц, от и до. Не слушайте, что это работа дизайнера/верстальщика/кого-то еще. Поверьте моему опыту — вам отдадут свёрстанную страницу, никто за вас не будет интегрировать HTML шаблон в вашу систему, так что знание HTML и CSS в обязательном порядке. И забудьте о том, что верстальщики будут готовые шаблоны вам отдавать — это сказки.
Разберитесь с селекторами в CSS, следующий код не должен вызывать у вас ужаса:
Узнайте что есть блочная модель, да как работает float. Что есть margin и padding. Почему CSS это каскадная таблица стилей, и что есть такое понятие как специфичность CSS-селектора.
Со всем этим можно разобраться за недельку-две, главное не лениться, ну и не стоит лезть в дебри кросс-браузерной вёрстки и анимации. Примочки типа LESS, SASS или БЭМ тоже стоит оставить на фронт-енд разработчиках
JavaScript
Несмотря на то, что PHP это бэкенд разработка, знания JavaScript’а вам сильно пригодятся — особое внимание уделите изучению следующих моментов:
Это немного, изучение данных вопросов у вас не займет более недели, всё это очень наглядно есть в учебнике Ильи Кантора.
Ещё желательно приступить к изучению jQuery, вот вам учебник и по нему — jQuery для начинающих — это еще неделька на усвоение материала.
Как вам списочек вышеописанных скилов? И это мы ещё не добрались к PHP 😉
PHP начинается с основ языка:
А ещё нужно иметь представление об объектной модели в PHP:
Так что ещё забыл, ах да — система контроля версий:
PHP через год
Отдельно выделю те знания, которые требуются от Junior разработчика через год работы:
Объектная модель PHP должна не вызывать озадаченности на лице:
Паттерны проектирования пора уже понимать и использовать:
Прочие навыки и познания:
Что должен знать junior php на 2020 и стоит ли ходить на все собеседования?
смотрел видео человека из Индии,
все что надо, есть в доке и гите
Что должен знать junior php на 2020
как вы задолбали со своими 2019, 2020, маразм да и только.
на 3 буквы таких спутниц жизни
«туда же, в одну топку» (с)
Найдите работодателя-наставника, пофиг на чем писать будете, фреймворк, бесплатная CMS, студийная CMS, главное, чтобы вы понимали принцип работы и могли решать задачи.
Просто сделайте сами проект, который вам интересен. Сделайте сайт, который вам интересен. Вы увидите, что на голом PHP писать его долговато, тогда вы попробуете фреймворки, и увидите что фреймворки облегчают и ускоряют написание кода. Да, технологии нужны, так как облегчают жизнь, но изучение их как таковых без реального применения, не сделает вас специалистом. Специалистом вас сделает написание собственного проекта.
(надеюсь не поздно, хотя по словам девушки которая собирая вещи ушла)
Я её понимаю частично, вы открываете аудитории свои проблемы, которые никому не важны. Т.к у каждого свои.
На сколько хорошо jun должен знать HTML?
На что обратить особое внимание при php и где лучше брать тест задания?
Стоит ли сразу же после прохождения курсов и пару месяцев практики, браться за фреймворк? В том году учил Laravel, смотрел видео человека из Индии, где он достаточно хорошо говорил на этот счет. Есть еще мысль купить курсы Laracast и пройти их, но не знаю на счет целесообразности?
Когда ходил на собеседования, не решался пойти на все. Понимал что уровень знаний не совсем достаточный, хотя определенные плюсы видел. Сразу было понятно, где я отстаю и тд. Стоит ли ходить на абсолютно все, даже если ты понимаешь что еще не совсем готов, или подождать пару месяцев, и досконально довести до идеала?
Что должен знать начинающий PHP разработчик
Хотел было написать очередную статью о собеседованиях, но мне кажется формат себя изжил, так что читаем и мотаем на ус.
Фундамент
Соображать и использовать Google. Первое оценить сложно, для этого придумано много «дурацких» вопросов для собеседований. Второй пункт либо прививается в первые дни испытательного срока, либо разработчик владеет им изначально, иной вариант никто не рассматривает…
Общепознавательное
Я таки опять возвращаюсь к собеседованиям, и манит меня прям
Из чего состоит HTTP запрос/ответ (да откройте же firebug или что у вас там установлено и посмотрите)
Установка связки Apache+PHP+MySQL — потренируйтесь, это ой как надо.
Таки немного о linux — о различиях файловых систем в сравнении с windows, о раздаче прав (chmod) и как выйти из vi без сохранения.
Пару-тройку дней потребуется на усвоение базовых знаний.
Основы основ — получение и обработка входящих параметров.
Работа с циклами, массивами и строками. И да, простенькое задание с собеседования (пора угомониться):
Работа с базой данных и с файлами. Для усвоения материала — вот вам задание: написать анонимную доску объявлений (с блек. аплоадом картинок)
Должны знать как работает механизм сессий — т.е. что происходит от момента вызова session_start, и каким боком это всё связано с cookies (помните я говорил о HTTP?).
Знать для чего служит include, require и какая между ними разница.
Разницу между echo и print не только знать, но и понимать.
Таки научиться работать с объектами, понимать разницу между абстрактным классом и интерфейсом.
Знать и использовать namespace.
Отдельно стоит упомянуть о гигиене кода — необходимо соблюдать стандарты кодирования, из множества существующих рекомендую стандарты кодирования Zend Framework’а
Чем больше опыта, тем лучше, но основы вы подтяните за неделю, ОПП потребует еще недельку.
Основы синтаксиса SQL. Немного вникнуть в MySQL и понимать различия между MyISAM и InnoDB.
Знать как работают LEFT/RIGHT/INNER JOIN’ы — наглядно в статье Visual Representation of SQL Joins (ссылка на картинку для ленивых — Visual_SQL_JOINS_orig.jpg O_o)
Переделать БД, т.к. в библиотеке зачастую больше, чем один экземпляр книги, а надо знать какой именно экземпляр брал посетитель.
Сосредоточенного изучения в течении недели вам хватит.
HTML и CSS
Сверстайте пару страниц, от и до (HTML должен быть валидным). Не слушайте, что это работа дизайнера/верстальщика/кого-то еще. Поверьте моему опыту — вам отдадут свёрстанную страницу, никто за вас не будет интегрировать HTML шаблон в вашу систему, так что знание HTML и CSS в обязательном порядке.
Забудьте о том, что Smarty создан для верстальщиков, и они вам будут готовые шаблоны отдавать — это сказки. О Smarty тоже забудьте, хотя нет — иметь представление что это такое конечно надо, а вот использовать — нет.
Должны понимать CSS следующего содержания:
Узнать что есть блочная модель, да как работает float. Что есть margin и padding.
Дней пять вам хватит для освоения базовых навыков верстальщика.
JavaScript
Знать: синтаксис, о том как работают события, понимать что такое замыкание, и как работает AJAX. Рекомендую прочитать учебник Ильи Кантора. Это немного, изучение данных вопросов у вас не займет больше недели.
Далее прочитайте первые шесть частей из моей серии «jQuery для начинающих» — это еще пару-тройку дней на усвоение материала.
Еще чуть-чуть напрягов
Понимание шаблона MVC. Знакомство с каким-нить фреймворком (Zend Framework, Symfony, Yii, и т.д.). Можно пройти Quick Start от Zend Framework’а.
Научиться работать с БД посредством PDO. Знать что есть SQL-инъекция.
Познакомиться с какой-нить современной системой контроля версий (да хоть с SVN)
И на что я могу расчитывать?
Месяц изучения, и вы уже сможете претендовать на должность Junior PHP разработчик. Ответ на меркантильный вопрос смотрите на DOU
Что должен знать «PHP Junior Developer без опыта работы»?
Время несётся стремительным домкратом. Эта статья в значительной степени устарела, хоть конструктивные моменты типа «изучайте смежные области» едва ли когда утратят актуальность. Кадровый голод ощущается всё более явно и вносит больше конструктива в процесс найма начинающих разработчиков. Баланс смещается в сторону хороших знаний языка и инструментов от готовности к написанию кода «как-нибудь» но с первого дня.
Не забывайте, что всё это оценочные суждения какого-то анонимуса. У вас нет никаких гарантий, что я разработчик и понимаю, о чём говорю. Собственно, вы даже не можете гарантировать, что этот текст не набран каким-то ежом в уплату за съеденую котлету.
Эта статья стала результатом двухмесячного поиска работы в Новосибирске. В процессе общения с работодателями я обнаружил некоторые факты, которые для меня были весьма неочевидны. Рекомендована к прочтению всем, кто собирается в ближайшее время стать таким же соискателем.
HTML, CSS, JavaScript
Вам может показаться, что знать эти вещи идеально PHP-програмисту не требуется, однако это не так. Валидная вёрстка, кроссбраузерность и прочие слова, которые пишут в вакансиях верстальщиков применяйте также и к себе. В общем-то это вполне логично, поскольку даже самый идеальный код на PHP не нужен никому, если он при этом генерирует неадекватный HTML.
В некоторых организация мне сразу говорили, что вакансия подразумевает именно разработчика PHP, есть отдельные верстальщики/скриптовики. Однако таких организаций было мало.
Самый показательный пример — одно из выполненых мной тестовых заданий. В нём соотношение строк PHP:JavaScript:HTML было примерно 20:50:30.
Фреймворки
Ваши знания PHP как такового интересуют весьма незначительную часть работодателей. Большинство компаний используют в разработке различные фреймворки, и хотят от кандидата того же. Если в пожеланиях к кандидату вы увидели «-знакомство с фреймворком х», то скорее всего это не пожелание, а требование.
В Новосибирске наиболее популярны (исходя из вакансий джуниоров) Yii, Symfony и Zend. Изредка мелькает CakePHP.
Лично мне освоить Yii на базовом уровне удалось за неделю спокойной работы. Что, впрочем, не значит, что вы не сможете разобраться в нём быстрее.
PHP — тоже програмирование
Со всеми вытекающими отсюда последствиями. А именно — без знания теории ваша квалификация крайне низка.
Порог вхождения в PHP невысок. Как следствие, все прочие програмисты смотрят на PHP-шников с презрением и неодобрением. Да и в общем-то есть за что.
Незнание основ теории может приводить к таким ужасным вещам, как генерация в коде миллиона объектов с последующим применением к ним пузырьковой сортировки. Это, конечно, гипербола, но суть её вы, наверное, уловили.
В общем настоятельно рекомендую вам прочитать пару-тройку книг по теории програмирования. Вряд ли вас спросят о подсчёте сложности алгоритма, но общие вопросы, некий начальный уровень програмиста, на собеседовании стараются выяснить.
Разработка включает в себя многое
Лично мне никогда не приходила в голову мысль, что стоит думать не только каком языке ты пишешь, но и чем ты пишешь. Очень желательно знать основные IDE, точнее их главные функции.
Для нормальной работе в команде необходим контроль версий.
Кроме того, в проектах принято проводить тестирование и как-то собщать об ошибках.
А ошибки бывают такие, что неплохо бы знать содержимое php.ini.
И конфиги nginx/apache.
И можно очень долго продолжать.
Готовьтесь к резкому расширению кругозора
При выполнении каждого второго тестового задания вам придётся с нуля осваивать что-то новое. NoSQL, AJAX, чьи-то API, JS библиотеки и прочие вещи, о которых вы в лучшем случае слышали пару раз в жизни, вам придётся экстренно изучать.
То что вам не знакомо вовсе не обязательно является чем-то сложным. Это ведь действительно задания для начинающего разработчика без опыта работы. А значит, несмотря на кажущуюся сложность, решение задачи вы быстро найдёте, уделив полчаса документации.
Не отказывайтесь от задания, если оно показалось вам слишком сложным. Просто почитайте статьи или учебники по этой теме, вы поймёте, что бояться нечего.
Тестовые задания могут быть неточны
Как правило тестовые задания коротки и ясны. И всё же неточны. Я понятия не имею, чем это вызвано. Возможно составляют и проверяют задания разные люди.
В одном задании мне явно указали применить ООП, затем на собеседовании спросили, зачем я это сделал. В другом с точностью наоборот. В третьем попросили приложить описание на английском и затем спросили зачем я его приложил.
В общем некоторая часть ваших работ будет проверяться без оглядки на задание.
HR`ы нередко адекватны и профессиональны
Нередко — это 6 из 10. Будьте готовы к тому, что на остальные письма вам не ответят, тестовые задания не проверят, мы вам перезвоним.
Я уж не знаю, чем руководствуются эти люди. Серьёзно, HR, почему вы не можете потратить пять минут на человека, который потратил на вас день?
Если вы столкнётесь с такой проблемой, не ждите ответа. Звоните и пишите, спрашивайте почему про вас забыли.
Собеседование это огромный плюс
Общение с опытным разработчиком и просмотр вашего кода сильно продвигает вас в развитии. Даже если вам отказали в вакансии, вы всё равно получили ценный опыт.
После каждого собеседования обязательно пройдитесь дома по вопросам и уточните неясные вам моменты. Как правило эти вопросы относятся к базовым знаниям, без которых ваша работа будет как минимум некачественно. Что-то не знаете — обязательно разберитесь. Хотя бы потому, что подобный вопрос с большой вероятностью повторится.
17 вопросов джуну: что должен знать Junior-разработчик
17 вопросов джуну: что должен знать Junior-разработчик
Что должен знать Junior-разработчик, чтобы получить должность или удержаться на уже «завоёванной» позиции?
Джун — это уже пусть и младший, но специалист. Подразумевается, что он самостоятельно умеет писать код, может справиться с простыми задачами сам, а со средними по сложности задачами — под присмотром ментора.
Кто-то говорит, что требования завышены, и в 2020 году младший программист должен знать то, что знал Middle в нулевых. Кто-то парирует аргументами о росте конкуренции, сложности задач и, соответственно, требований.
Что касается технических требований к джунам, то в последние годы они действительно выросли. Профессия программиста стала доступнее из-за курсов, и рынок переполнился начинающими разработчиками. Поэтому компании начали выставлять определённые требования, чтобы найти из общей массы тех, кто лучше других.
Например, теперь на позицию начинающего front-end разработчика недостаточно просто знать JavaScript, HTML5/CSS3: нужны базовые знания одного из популярных фреймворков (React, Vue, Angular). Кажется, что со временем требования будут расти ещё сильнее.
Мы разобрались, что должен знать Junior-программист в 2020 году, и собрали общие вопросы с собеседований, по которым работодатели определяют, дотягивает кандидат до нужной планки или нет.
Hard skills
Почему вы выбрали этот язык программирования?
Вопрос нехитрый, но джун должен хорошо понимать, где лучше использовать один язык, а где отдать предпочтение другому, какие у выбранного языка сильные и слабые стороны.
Где проходили обучение, участвовали ли в реальных проектах?
В Galileosky мы всегда обращаем внимание на следующие моменты:
Назовите принципы ООП
Старо как мир, но всё так же актуально. Держите шпаргалку по принципам ООП: там всё разложено по полочкам. Если вы хорошо разбираетесь в ООП, можете рассказать о своём опыте их применения на практике. Идеально, если вы также расскажете, почему те или иные принципы не стоит применять в некоторых ситуациях.
Какие алгоритмы сортировки вы знаете? Напишите код с использованием быстрой сортировки.
Ох уж эти алгоритмы сортировки — понять бы, где они пригодятся в реальной жизни. А зачем вообще Junior-разработчику это знать? Тут всё просто: понимание принципов и гибкость мышления. Опять же, с помощью небольшого примера вы покажете, что владеете синтаксисом языка и умеете объяснять, что происходит в вашем коде.
Какие технологии вы знаете?
Для работы на реальном проекте мало знать сам язык программирования. Младшему разработчику необходим большой багаж знаний. Если мы рассматриваем разработчика на Java, кроме самого языка, необходимо иметь хотя бы начальные знания о Spring, базах данных, SQL, системах контроля версий. Это не означает глубокое изучение всех аспектов, но представление о работе с этими технологиями быть должно, даже если нет реальной практики. Зачастую разница между Middle- и Junior-разработчиком — это реальный опыт.
Если говорить о знании конкретных технологий, от начинающего разработчика требуется опыт разработки на каком-то классическом языке программирования со строгой типизацией — подойдёт 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 года. Как правило, значительная часть их аудитории — это студенты без опыта работы. Конечно, если стажёр хорошо себя показывает, мы можем пригласить его на собеседование, а по итогам собеседования даже взять его в компанию, если есть надежда, что он за пару месяцев выйдет на уровень джуна. Но далеко не все стажёры так быстро дорастают до этого.
13 сентября – 9 октября, Санкт-Петербург и онлайн, Беcплатно
Тем временем джун — это уже пусть и младший, но специалист. Подразумевается, что он самостоятельно умеет писать код, может справиться с простыми задачами сам, а со средними по сложности задачами — под присмотром ментора. Соответственно, такой специалист обязан обладать уверенными знаниями как минимум одного языка и фреймворка. Да, его знания, скорее всего, не будут глубокими, но он должен знать основы. Значительная часть сил джуна уходит на освоение нового. Ведь чтобы стать мидлом и выйти на новый уровень оплаты своего труда, джуну придётся освоить несколько фреймворков пусть и поверхностно, глубоко изучить как минимум один фреймворк, возможно, подготовиться и сдать экзамен по сертификации, получить опыт в разных проектах. Соответственно, важнейшими soft skills для джуна (да и для любого ИТ-специалиста вообще) будут навыки самообучения, навыки и опыт решения любых проблем, самодисциплина и мотивация к обучению.
Если рассматривать hard skills, то, наверное, нужно упомянуть такие профессиональные навыки, как умение искать информацию в поисковых системах, знание средств коллективной разработки (Git и другие), знание IDE, языка и фреймворка.
Завышены ли требования к джунам? Уверен, нет. Всё проясняется, если разделить понятия стажёр и джун и рассматривать джунов, как младших специалистов, а не просто тех, кто начал учиться.
руководитель программ «Python-разработчик» и «Алгоритмы для разработчиков» в Яндекс.Практикуме
Junior-разработчику, как в принципе и любому специалисту в сфере ИТ, важны такие качества, как ответственность, стремление к профессиональному росту, умение управлять рабочим временем и работать в команде. Кроме того, от начинающих разработчиков дополнительно ждут умения быстро осваивать новый материал и вникать в суть задач.
Требования к hard skills будут зависеть от направления. Например, мы уже подробно рассказывали, что работодатели ждут от Junior-Python-разработчика. Для таких специалистов это чаще всего знание языка программирования Python, алгоритмов и структур данных, опыт работы с базами данных и фреймворками.
Современные требования к Junior-разработчикам не кажутся мне завышенными. Во-первых, требования очень отличаются от компании к компании. Нужно также иметь в виду, что в описании вакансий обычно пишут портрет идеального соискателя, на деле же готовы брать кандидатов не со всеми перечисленными навыками. Во-вторых, большинство работодателей понимают, что любого джуниор-специалиста придётся учить, поэтому хотят от кандидатов в первую очередь бойкости и заинтересованности.
В технических навыках обычно требуется наличие какого-то (хотя бы учебного) опыта программирования, знакомство с основными инструментами, умение решать типовые задачи. Для получения даже этих навыков придётся постараться. Разработка имеет относительно высокий порог входа по сравнению с другими ИТ-профессиями, но планка по найму в последние годы, скорее, снижалась, чем наоборот.
руководитель отдела разработки Аванпост
По нашему опыту в последние годы требования к Junior-разработчикам у нетоповых компаний снизились. Связано это с кадровым голодом, вызванным, с одной стороны, ростом рынка, с другой, демографическим провалом девяностых–начала 2000-х.
В целом для джуна, планирующего работать в прикладной разработке, требования можно определить следующим образом:
Основные хард-скиллы:
Дополнительные хард-скиллы:
Практические навыки:
Софт-скиллы:
Как правило, у всех ребят, приходящих к нам на собеседование, всё в порядке с основными хард-скиллами, учитывая, что они предварительно проверяются простейшим тестовым заданием.
Большинство же отклонений по результатам собеседования происходит по причине отсутствия практических навыков или критичных софт-скиллов, таких, как умение слушать.
Это не самые высокие требования: могу с уверенностью сказать, что 10-15 лет назад требования были значительно серьезней. Отрасль была менее лояльной к новичкам, готовность брать на работу, платить не самую низкую зарплату и учить была у единиц компаний. Сейчас же все, даже самые небольшие софтверные и не только компании, готовы вкладываться в обучение вчерашних студентов, несмотря на все сопутствующие риски. Всё, что нужно джуну сегодня, — общая адекватность и минимальные знания технологий.
Выводы
Мнения насчёт того, завышены требования к джунам или нет, очень разнятся. Но практически все эксперты сходятся в том, что Junior-разработчик должен знать о преимуществах и сферах применения выбранного языка или технологии, уметь работать с Git, знать основные алгоритмы, библиотеки и фреймворки в своей сфере, быть в курсе возможностей хотя бы одной IDE, знать английский не ниже уровня Intermediate и уметь работать в команде.
Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.
Перейти к регистрации