Готовимся к собеседованию на должность Junior PHP Developer
Привет. Ну что, прошел все прошлые уроки? Красава! Теперь у тебя есть почти всё что нужно для устройства на работу программистом. Как это «почти всё»? Говорили же, что после курса можно устраиваться на работу. Да, но ведь этот урок – это всё ещё продолжение курса. И именно в этом уроке исчезнут все «почти» и ты будешь готов завтра идти на собеседование. Готов? Поехали!
Итак, первое, что нужно сделать – это написать мне в личку о том, что ты закончил курс. Я предоставлю тебе дополнительный список уроков, актуальный на сегодняшний день. Всё, что нужно знать о программировании на PHP для джуниора ты уже знаешь. Я дам лишь небольшое дополнение о программировании в целом, и о том, что необходимо современному разработчику помимо PHP.
Второе. Тебе нужно сделать резюме. На сегодняшний день поиск работы программистом в России стоит производить только на сайте hh.ru – здесь больше всего вакансий в сфере IT. В резюме стоит указать зарплату – указывай среднюю для джуниора по своему городу. Узнать её ты можешь на том же hh.ru, поискав резюме. Либо просто просмотрев вакансии для джунов – большинство компаний указывает зарплату. Следом пишешь о своих навыках – о тех, что ты приобрел в этом курсе:
Все это красиво оформляешь и сохраняешь. Желательно также прикрепить фото – обычную фотку, главное чтобы без «странностей». И публикуешь резюме.
Третье. Не сиди сложа руки – не жди пока работодатели будут тебе писать. Начинай сам просматривать вакансии и отправлять отклики. Не смотри, что чего-то не знаешь, зачастую описание вакансий составляют некомпетентные люди, не знающие что на самом деле должен уметь джуниор. Это – правда. Не бойся и откликайся, на крайняк придешь на собеседование и скажешь, что без проблем готов научиться той или иной штуке. Пойми, к джуниору не предъявляют каких-то заоблачных требований – тебя будут учить другие программисты, и в компаниях это прекрасно понимают. Отправляй отклики сразу в несколько компаний – так ты повысишь свои шансы. И в несколько – это значит в 10 минимум.
Четвертое. Само собеседование. Они бывают самые разные: где-то готовы общаться только по скайпу, где-то с радостью приглашают в офис (и даже оплачивают перелет и проживание в другом городе на время собеседования). Помимо того, что нужно приходить вовремя и быть опрятным, дам несколько советов о том, как себя вести. Цель собеседования – выявить ваши знания и плюсы, а не «завалить». В какой-то момент вам могут задать вопрос, на который вы дадите ответ, следом может последовать вопрос в стиле «а еще как-нибудь можно решить?» или «а если так не получится потому что. ». Вас не пытаются завалить, нет 🙂 Ваш собеседник пытается посмотреть, готовы ли вы предлагать идеи в не самых приятных условиях. Не нужно в этот момент злиться на того кто вас собеседует, нужно попытаться накидать как можно больше вариантов. Разумеется, в какой-то момент они закончатся – в этот момент стоит улыбнуться и сказать: «я не знаю, что еще предложить». Это самая хорошая стратегия. Ну и стоит быть честным. Не знаешь чего-то – так и скажи. В остальном проведение собеседования – задача компании, а не ваша. Вам также дадут возможность задать вопросы – будет круто, если у вас будет заранее подготовленный список. Я так делал несколько раз – интервьюверам нравится, когда ты готовился.
До новых встреч
Я пока не знаю, что я буду делать дальше и будут ли еще курсы. Но что-нибудь интересное обязательно будет – проект я на этом не завершаю. Возможно начну делать разборы заданий с собеседований, а возможно – сделаю курс по какому-нибудь фреймворку. Так что, подписывайтесь на новости, чтобы ничего не пропустить. И до встречи!
По возможности, расскажите о моих курсах своим знакомым – репостом в соц. сетях или при личной встрече. Разумеется, если курс вам действительно понравился и был полезен. Также, буду рад отзыву мне в личку. Для меня это важно.
Рекомендации по php для младшего php-разработчика
Ниже изложенный материал может помочь начать идти в ногу со временем в php мире. Данная подборка создана вначале 2014 года и раздавалась всем желающим после собеседований.
Ссылки
Существует много аналогичных сайтов http://www.phptherightway.com/, где изложены различные полезные ссылки. Если вас интересует mysql, javascript — google вам поможет.
Первые шаги
Code style у каждого фреймворка или команды может быть свой, но так или иначе есть базовая основа: PSR. Это как алфавит, его нужно обязательно знать, до самых мелочей. Тогда вам не будет стыдно что-то закомитить в тот же open source, или переходить на другую работу, или в другой проект.
Современная разработка направлена на гибкость, на получение результата с хорошим качеством. Совокупность Agile и code review вынуждает обращать внимание на децентрализованные системы контроля версий, например git.
Из полезных титуриалов можно выделить:
Основные темы: stash, rebase, merge, различия между rebase и merge, cherry-pick, checkout, squash, alias.
Изначально, когда разрабатывается продукт, встает выбор подключения зависимостей. В наше время уже существуют менеджеры зависимостей: composer, bower. Если мы посмотрим на все современные версии библиотек и фреймворков, мы обязательно встретим там конфиги для этих менеджеров.
Базовый набор книжек.
У меня есть традиционный набор книжек, с которых я рекомендую начать читать техническую литературу. По-моему мнению, их обязан прочитать каждый, хотя бы раз. Кто-то найдет в них что-то новое и перевернет свое мировоззрение, кто-то утвердит свое "я" и полученный опыт, найдя абсолютную поддержку от авторов.
- Рефакторинг. Улучшение существующего кода. Мартин Фаулер. (Refactoring: Improving the Design of Existing Code) Хороший стартап по данной теме. http://refactoring.guru/
- Чистый код: создание, анализ и рефакторинг. Роберт Мартин или просто uncle Bob. (Clean Code: A Handbook of Agile Software Craftsmanship)
Не стоит браться за банду четерех (Design Patterns: Elements of Reusable Object-Oriented Software/Приёмы объектно-ориентированного проектирования. Паттерны проектирования) на первых своих шагах. Вы можете выучить все паттерны в теории, но без знания и опыта проведения рефакторинга вы никогда не примените их на практике. Если все же решите читать, уделяйте при первом прочтении только азам (название, назначение, мотивация, применение) и не читайте и не забивайте голову реализацией. Сначала надо научится сразу сопоставлять в своей голове задачу поставленную перед вами, к каким проблемам она относится и с помощью чего ее можно решить более изящно и полезно для проекта. Хорошая альтернатива банде четырех для начинающих это серия head first (паттерны проектирования).
Будьте современны, следите за тем, что происходит в современном мире. Очень неплохой дайждест новостей ведет @pronskiy, с периодичностью раз в две недели. Я не буду давать ссылки на блоги разработчиков, которые предпочитаю лично я, вы сами найдете своих авторов.
Немного рекламы
Почти все начинающие программисты имеют одни те же пробелы в своих знаниях. Кто-то ищет сам что-то, кто-то просто плывет по своему течению.
Некоторые базовые вещи я с какой-то периодичностью стараюсь описывать в своем блоге.
Во-первых, тут есть наброски лекций про PHP. Почти все темы содержат какие-то тезисы-оглавления, теоретические и практические задания. Особое внимание, хочется обратить именно на 9 пункт, про ООП. Где в принципе изложены полноценные лекции, я очень надеюсь, что они прояснят много информации.
Если у вас проблемы с базовыми знаниями php, рекомендую читать официальную документацию к языку, опираясь на содержание лекций и заданий.
Во-вторых, я неравнодушен к тестированию. И в блоге можно найти несколько статей на эту тему. Может они дадут вам некий толчок к познанию тех же unit test, и покажут вам, что можно жить без дебага, print_r и die.
Пожелания
Попробуйте начать с первых шагов и не бойтесь применять новые знания на практике. Какие-то попытки будут удачные, какие-то нет.
Вы всегда можете связаться с opensoft и договориться о встрече, где вы сможете обсудить любые вопросы, получить совет для дальнейшего развития.
Что должен знать php junior
Ниже изложенный материал может помочь начать идти в ногу со временем в php мире. Данная подборка создана вначале 2014 года и раздавалась всем желающим после собеседований.
Ссылки
Существует много аналогичных сайтов http://www.phptherightway.com/, где изложены различные полезные ссылки. Если вас интересует mysql, javascript — google вам поможет.
Первые шаги
Code style у каждого фреймворка или команды может быть свой, но так или иначе есть базовая основа: PSR. Это как алфавит, его нужно обязательно знать, до самых мелочей. Тогда вам не будет стыдно что-то закомитить в тот же open source, или переходить на другую работу, или в другой проект.
Современная разработка направлена на гибкость, на получение результата с хорошим качеством. Совокупность Agile и code review вынуждает обращать внимание на децентрализованные системы контроля версий, например git.
Из полезных титуриалов можно выделить:
Основные темы: stash, rebase, merge, различия между rebase и merge, cherry-pick, checkout, squash, alias.
Изначально, когда разрабатывается продукт, встает выбор подключения зависимостей. В наше время уже существуют менеджеры зависимостей: composer, bower. Если мы посмотрим на все современные версии библиотек и фреймворков, мы обязательно встретим там конфиги для этих менеджеров.
Базовый набор книжек.
У меня есть традиционный набор книжек, с которых я рекомендую начать читать техническую литературу. По-моему мнению, их обязан прочитать каждый, хотя бы раз. Кто-то найдет в них что-то новое и перевернет свое мировоззрение, кто-то утвердит свое "я" и полученный опыт, найдя абсолютную поддержку от авторов.
- Рефакторинг. Улучшение существующего кода. Мартин Фаулер. (Refactoring: Improving the Design of Existing Code) Хороший стартап по данной теме. http://refactoring.guru/
- Чистый код: создание, анализ и рефакторинг. Роберт Мартин или просто uncle Bob. (Clean Code: A Handbook of Agile Software Craftsmanship)
Не стоит браться за банду четерех (Design Patterns: Elements of Reusable Object-Oriented Software/Приёмы объектно-ориентированного проектирования. Паттерны проектирования) на первых своих шагах. Вы можете выучить все паттерны в теории, но без знания и опыта проведения рефакторинга вы никогда не примените их на практике. Если все же решите читать, уделяйте при первом прочтении только азам (название, назначение, мотивация, применение) и не читайте и не забивайте голову реализацией. Сначала надо научится сразу сопоставлять в своей голове задачу поставленную перед вами, к каким проблемам она относится и с помощью чего ее можно решить более изящно и полезно для проекта. Хорошая альтернатива банде четырех для начинающих это серия head first (паттерны проектирования).
Будьте современны, следите за тем, что происходит в современном мире. Очень неплохой дайждест новостей ведет @pronskiy, с периодичностью раз в две недели. Я не буду давать ссылки на блоги разработчиков, которые предпочитаю лично я, вы сами найдете своих авторов.
Немного рекламы
Почти все начинающие программисты имеют одни те же пробелы в своих знаниях. Кто-то ищет сам что-то, кто-то просто плывет по своему течению.
Некоторые базовые вещи я с какой-то периодичностью стараюсь описывать в своем блоге.
Во-первых, тут есть наброски лекций про PHP. Почти все темы содержат какие-то тезисы-оглавления, теоретические и практические задания. Особое внимание, хочется обратить именно на 9 пункт, про ООП. Где в принципе изложены полноценные лекции, я очень надеюсь, что они прояснят много информации.
Если у вас проблемы с базовыми знаниями php, рекомендую читать официальную документацию к языку, опираясь на содержание лекций и заданий.
Во-вторых, я неравнодушен к тестированию. И в блоге можно найти несколько статей на эту тему. Может они дадут вам некий толчок к познанию тех же unit test, и покажут вам, что можно жить без дебага, print_r и die.
Пожелания
Попробуйте начать с первых шагов и не бойтесь применять новые знания на практике. Какие-то попытки будут удачные, какие-то нет.
Вы всегда можете связаться с opensoft и договориться о встрече, где вы сможете обсудить любые вопросы, получить совет для дальнейшего развития.
Что должен знать Junior PHP разработчик // PHP
В данной статье я хочу ответить на вопрос — “что должен знать Junior PHP разработчик в 2016м году?”.
При этом я постараюсь добавить побольше ссылок на учебные материалы, чтобы на собеседовании вам не пришлось краснеть.
Отчасти перед вами обновленная статья Что должен знать начинающий PHP разработчик, а поскольку PHP достаточно интенсивно развивается в последнее время, то мне пришлось внести изменения в большую половину текста, можете сравнить из любопытства
Пункт номер ноль
Разработчик должен соображать и уметь использовать Google. Первое оценить крайне сложно, для этого придумано много «дурацких» вопросов для собеседований. Второй пункт прививается в первые дни испытательного срока. Плюсом будет аккаунт на stackoverflow.com.
Фундамент
Если вы твёрдо намерены заняться web-разработкой, то первое что вам нужно будет понять – это принцип работы HTTP протокола (эти знания можно почерпнуть в профильных ВУЗах). Так же вы должны поверхностно знать о существовании TCP/IP протокола и понимать за что отвечает DNS сервер.
- установить дистрибутив, рекомендую ubuntu
- изучить файловую систему и её особенности
- научиться использовать командную строку
- научиться редактировать текстовые файлы в vim/nano
- научиться выходить из текстовых редакторов с сохранением и без
- разобраться с управлением процессами — просмотреть запущенные, убить зависшие
- установить Apache, PHP и MySQL
- узнать о SSH
Установив Apache — научитесь его настраивать и рестартовать:
- sudo a2enmod .
- sudo a2ensite .
- sudo service apache2 restart
Будьте осторожны, 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’а вам сильно пригодятся — особое внимание уделите изучению следующих моментов:
- синтаксис знать нужно в обязательном порядке
- понимать область видимости переменных
- познать замыкания
- изучить события, и разобраться со «всплытием»
- AJAX — что за зверь, как работает
Это немного, изучение данных вопросов у вас не займет более недели, всё это очень наглядно есть в учебнике Ильи Кантора.
Ещё желательно приступить к изучению jQuery, вот вам учебник и по нему — jQuery для начинающих — это еще неделька на усвоение материала.
Как вам списочек вышеописанных скилов? И это мы ещё не добрались к PHP
PHP начинается с основ языка:
- нужно знать что такое переменные и константы , приведение типов и сравнение данных
- чуток затронуть строковые функции, такие как:
- explode()
- str_replace()
- strpos()
- substr()
- trim()
- но их куда больше…
- array_push()
- array_pop()
- array_map()
- array_keys() и array_values()
- семейство array_diff и array_intersect
- различные сортировки
- поиск по массиву in_array() и array_key_exists()
А ещё нужно иметь представление об объектной модели в PHP:
- понимание паттерна MVC
- уметь работать в IDE отличной от текстового редактора
- знание английского на уровне понимания примеров на stackoverflow
Так что ещё забыл, ах да — система контроля версий:
- пройдите обучалку по Git на Code Academy либо GitHub
- почитайте Git Book
- заведите аккаунт на GitHub
- сохраните в закладки GitHub Guides
PHP через год
Отдельно выделю те знания, которые требуются от Junior разработчика через год работы:
Что должен знать «PHP Junior Developer без опыта работы»?
Время несётся стремительным домкратом. Эта статья в значительной степени устарела, хоть конструктивные моменты типа «изучайте смежные области» едва ли когда утратят актуальность. Кадровый голод ощущается всё более явно и вносит больше конструктива в процесс найма начинающих разработчиков. Баланс смещается в сторону хороших знаний языка и инструментов от готовности к написанию кода «как-нибудь» но с первого дня.
Не забывайте, что всё это оценочные суждения какого-то анонимуса. У вас нет никаких гарантий, что я разработчик и понимаю, о чём говорю. Собственно, вы даже не можете гарантировать, что этот текст не набран каким-то ежом в уплату за съеденую котлету.
Эта статья стала результатом двухмесячного поиска работы в Новосибирске. В процессе общения с работодателями я обнаружил некоторые факты, которые для меня были весьма неочевидны. Рекомендована к прочтению всем, кто собирается в ближайшее время стать таким же соискателем.
- в той или иной мере был контакт с 20+ работодателями
- выполнено 12 тестовых заданий
- пройдено 8 собеседований с техническими специалистами
- получил моральные травмы средней степени тяжести один начинающий PHP-разработчик
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, почему вы не можете потратить пять минут на человека, который потратил на вас день?
Если вы столкнётесь с такой проблемой, не ждите ответа. Звоните и пишите, спрашивайте почему про вас забыли.Собеседование это огромный плюс
Общение с опытным разработчиком и просмотр вашего кода сильно продвигает вас в развитии. Даже если вам отказали в вакансии, вы всё равно получили ценный опыт.
После каждого собеседования обязательно пройдитесь дома по вопросам и уточните неясные вам моменты. Как правило эти вопросы относятся к базовым знаниям, без которых ваша работа будет как минимум некачественно. Что-то не знаете — обязательно разберитесь. Хотя бы потому, что подобный вопрос с большой вероятностью повторится.Что требуют от джуниоров работодатели: анализ вакансий для младших программистов
В этом обзоре систематизируем требования работодателей к Junior-программистам, а также обобщаем условия, которые предлагают компании младшим разработчикам. Для этого анализируем реальные вакансии, опубликованные на hh.ru.
Кого ищут работодатели: критерии анализа
Чтобы проанализировать требования работодателей к младшим программистам, я выбрал вакансии на сайте hh.ru по Москве, Санкт-Петербургу и Казани. Смотрел вакансии для JavaScript-программистов (фронт- и бэкенд), PHP-, Python- и Java-программистов. Проанализировал как минимум 10 вакансий по каждому стеку.
В вакансиях анализировал следующие параметры:
- требования к опыту работы;
- требования к возрасту;
- требования к образованию;
- требования к софт-скилам;
- требования к хард-скилам;
- предложенные условия труда.
Параметры анализировал без разделения по стекам. Исключение — требования к хард-скилам. Этот параметр проанализировал для каждого стека отдельно.
Какой опыт работы нужен Junior-программисту
В идеальном мире на позицию джуниора могут претендовать соискатели без опыта работы. В реальном мире всё не так просто.
В подавляющем большинстве вакансий для Junior-программистов опыт работы не требуется. Но иногда работодатели хотят видеть стажёра или джуна с опытом работы. Например, «Яндекс» ищет стажёра-разработчика с опытом работы от 1 года.
«Яндекс» ищет стажёра с опытом работы
Какое образование нужно джуниору
Нужно ли высшее образование программисту? На этот вопрос сложно ответить только с помощью анализа вакансий. HR-менеджеры могут не указывать требования к образованию в вакансиях. Но они наверняка обращают внимание на этот пункт в резюме, когда рассматривают заявку соискателя. Тем не менее даю слово реальному рынку труда.
В большинстве вакансий для Junior-разработчиков нет требований к образованию. Но часть работодателей хочет видеть соискателей с высшим техническим образованием или студентов старших курсов.
Важный момент: требования к образованию я встретил только в вакансиях для Java- и Python-программистов.
От Java- и Python-программистов чаще требуют высшее техническое образование
Промежуточный итог: в большинстве вакансий работодатели не указывают требования к образованию. Но иногда в объявлениях встречаются пожелания: компании хотят видеть у новичка диплом технического вуза или в крайнем случае студенческий билет. Такие требования я встретил только в вакансиях для Java- и Python-программистов.
Требования к возрасту джуниров
Этот вопрос чаще всего волнует специалистов, которые меняют сферу деятельности в возрасте 30+. Давайте посмотрим, есть ли ограничения по возрасту в опубликованных вакансиях.
Я просмотрел около 50 вакансий в разных стеках, но ни в одной не нашёл явных требований к возрасту. Иногда работодатели указывают, что набирают студентов последних курсов. Такие условия есть в объявлениях о стажировке, а не в вакансиях для джуниор-программистов.
На стажировку приглашают студентов
Это не значит, что работодатели не обращают внимание на возраст кандидатов. Эйчары видят резюме и могут уточнить год рождения соискателя, если эта информация не указана. А о среднем возрасте junior-программистов рассказывает HR-менеджер Вероника Ильина в комментарии ниже.
Промежуточный итог: работодатели обычно не указывают формальные требования к возрасту, но учитывают возраст соискателей при отборе.
Какие софт-скилы нужны джуниору
Софт-скилы или гибкие навыки — неспециализированные навыки, которые влияют на профессиональную деятельность специалиста. Примеры софт-скилов: дисциплинированность, проактивность, умение общаться, стрессоусточивость, способность к обучению.
В большинстве вакансий работодатели не указывают требования к гибким навыкам. В нескольких объявлениях есть пожелания к софт-скилам, например:
- готовность общаться с разработчиками и с экспертами в предметной области;
- аналитический склад ума;
- ответственность за результат;
- стремление к профессиональному росту;
- любопытство;
- коммуникабельность;
- умение чётко формулировать мысли;
- адекватность;
- умение и желание работать в команде;
- умение планировать работу;
- умение работать со скучными задачами.
Мне показалось, что в некоторых вакансиях работодатели пишут о гибких навыках формально. Например, сложно представить, что кто-то из кандидатов скажет на собеседовании, что ему не хватает любопытства или адекватности.
В некоторых вакансиях софт-скилам уделяется повышенное внимание. Например, одна из компаний ищет Python-разработчика для работы в медицинском стартапе. Работодатель хочет, чтобы у соискателя был интерес к предметной области, то есть к медицине. Это объясняется тем, что разработчику придётся общаться с врачами, которые участвуют в разработке медицинских приложений.
В объявлениях часто встречается требование знать английский язык. В частности, указывается уровень intermediate.
Промежуточный итог: работодатели иногда указывают желаемые гибкие навыки. Любой кандидат может на собеседовании сказать, что он коммуникабельный, любопытный и адекватный. Реально оценить софт-скилы соискателя работодатель сможет во время испытательного срока.
Адекватные стрессоустойчивые соискатели интересуются вакансией
Какие хард-скилы нужны Junior-программистам
Хард-скилы или профессиональные навыки уместно рассматривать в разрезе стеков.
Требования к JavaScript-разработчикам (фронтенд)
Работодатели требуют от соискателей на позицию фронтенд-разработчиков такие знания и умения:
- знания основ JavaScript;
- базовые знания HTML и CSS;
- умение верстать (встречаются требования умение верстать по принципу pixel-perfect);
- умение использовать UI-фреймворки и библиотеки, чаще всего React и Vue.
- Знание протокола HTTP;
- умение работать с графическими редакторами (Adobe Photoshop требуют чаще всего);
- умение работать с Git и пакетными менеджерами.
В одной вакансии встретил пожелание — соискатель на позицию фронтендера должен знать PHP хотя бы на базовом уровне. Также в единичных вакансиях работодатель искал кандидатов со знанием TypeScript, умением работать с препроцессорами (SCSS или Less), знание Angular.
Требования к Node.js-разработчикам (бэкенд)
Работодатели ждут от Node.js-разработчиков таких знаний и умений:
- знание Node.js;
- опыт использования GitHub и GitLab;
- знание Vue.js;
- знание HTML и CSS, умение верстать;
- знание Websocket;
- знание SQL, умение работать с базами данных;
- понимание принципа MVC.
В вакансиях для Node.js-разработчиков часто встречаются жёсткие требования к знанию английского языка. В нескольких вакансиях увидел пожелание к знанию ещё одного серверного языка, например, PHP или Python.
Требования к PHP-программистам
От младших программистов на PHP компании ожидают таких знаний и умений:
- знание PHP;
- базовые знания HTML и CSS;
- знание бэкенд-фреймворков (чаще всего требуют Laravel и Yii2);
- знание SQL, умение работать с базами данных;
- знание CMS (встречаются разные, включая 1C-Битрикс, WordPress, Magento);
- умение работать с Git;
- понимание принципов ООП.
В нескольких вакансиях работодатели хотят, чтобы соискатель имел базовые знания JavaScript.
Требования к Python-программистам
Один из работодателей принимает стажёров, которые знают основы Python и SQL. Стажировка оплачиваемая. К младшим программистам предъявляются более серьёзные требования:
- знание Python;
- знания scikit-learn, tensorflow-pythorch, matplotlib;
- знание алгоритмов машинного обучения и теоретическое понимание работы нейросетей (для джуниор-программистов в области machine learning);
- в вакансиях для Python-программистов часто встречаются требования уметь работать с Linux;
- для веб-разработчиков на Python актуальны умение работать с базами данных и знание веб-фреймворков, например, Django.
В вакансиях для Python-программистов практически не встречаются требования знать ещё один язык программирования. Также мне не попались требования знать HTML и CSS и уметь верстать. Тем не менее это актуальные для веб-разработчиков умения.
Требования к Java-программистам
Выше сказано, что от джавистов работодатели чаще всего требуют высшее техническое образование. Также компании хотят видеть такие знания и умения:
- знание Java;
- понимание принципов ООП;
- знание SQL;
- умение работать с базами данных;
- знание HTML и CSS;
- знание сетевых технологий, включая TCP и HTTP.
В вакансиях для Java-программистов несколько раз встретил требование уметь писать юнит-тесты. В объявлениях о поиске джуниоров в других стеках такого требования не увидел.
В одной из вакансий нашёл пожелание к знанию второго языка программирования, например, Python. В вакансии для веб-разработчика на Java увидел требование понимать принцип MVC.
Промежуточный итог: от младших программистов во всех стеках работодатели ожидают базового знания выбранного языка программирования. Часто встречается пожелание знать хотя бы ещё один язык. В большинстве вакансий есть требование знать HTML и CSS.
Работодатели ожидают, что Junior-программисты умеют работать с базами данных, знают сетевые технологии, владеют популярными фреймворками и библиотеками.
Изучайте операционные системы, повысьте свой уровень У нас есть курс по операционным системам. Зарегистрированные пользователи могут пройти его бесплатно. Другие бесплатные курсы можно найти по ссылке.
Что работодатели предлагают Junior-программистам
В части вакансий эйчары не указывают заработную плату, которую предлагают сотрудникам. Тем не менее объявления позволяют оценить уровень зарплат, на которые могут претендовать джуниоры. Также в вакансиях обычно есть информация о других «плюшках».
Работодатели предлагают будущим сотрудникам такие плюшки:
- добровольное медицинское страхование за счёт компании;
- абонемент в спортзал;
- напитки, йогурты, фрукты;
- изучение английского языка за счёт компании;
- корпоративные мероприятия;
- официальное оформление по трудовому кодексу;
- гибкий график работы;
- оплата обедов;
- услуги массажиста за счёт компании.
Промежуточный итог: Junior-программист может рассчитывать на заработную плату от 15 000 рублей в месяц и выше. Работодатели готовы дополнительно мотивировать джуниоров и обеспечивать им комфортабельные условия труда.
Что требуют и что дают джунам: комментарий HR-эксперта Вероники Ильиной
Я анализировал требования работодателей к джуниорам по опубликованным вакансиям. Чтобы получить полную картину, обратился к HR-эксперту Веронике Ильиной и попросил её рассказать, что требуют работодатели от Junior-программиста. Слово Веронике.
«Обычно в вакансиях джунов пишут в требованиях или пожеланиях техническое образование. На это есть несколько причин: от традиций до убеждения, что универ учит системному мышлению. Но все знают, что действительно учатся даже в топовых вузах десятки, если не единицы людей на каждом потоке. То есть настоящих сильных выпускников никогда не хватит, чтобы закрыть потребность рынка в джунах. Так что многие работодатели на самом деле закрывают глаза на образование. Особенно после того, как встречают тимлида с опытом CTO и 9 классами школы или берут в джуны бывшего бариста, потому что мехмат МГУ не смог в сортировку. А бариста смог.
Опыт обычно не требуется, то есть учебного достаточно. Но и в целом джун джуну рознь: кто-то год параллельно с учебой стажируется в известной компании, но ничего не умеет. Кто-то даже учит школьников программировать, но у самого знаний все же не хватает даже в основах. А кто-то — тот самый бывший бариста, который выучил Java дома, и нормально работает
Идеальный джун — это, конечно, вчерашний студент. Опыта нет, впитывает всё, что дают, легко подстраивается под рабочие процессы и увлечённо старается. Но студентов не напасёшься: их просто меньше, чем нужно. А тем более не хватает студентов с хорошо думающей головой. Поэтому компании медленно, но верно начинают смотреть кандидатов около 30 и старше. Да, они уже не такие «на всё согласные», но они знают, чего хотят. Конечно, негласный возрастной ценз и неверие в то, что человек в 30 может куда-то эффективно переучиться, никуда не исчезают. Но когда на рынке мало хороших студентов, кого еще рассматривать и брать?
Самое главное для джуна — уметь гуглить и не бояться спрашивать непонятное, просить помощи у живых людей. Такие джуны быстро растут. Молчуны растут намного медленнее, это логично: как расти, если ты знаешь меньше правильных решений и собственных ошибок, чем твой коллега-активист?
По хард-скилам: джун джуну рознь. «Яндекс» будет требовать от вас алгоритмов, маленькая студия — умения делать хоть что-то, маленькая и гордая студия — уметь делать простое, но очень хорошо. Нужно смотреть на конкретные требования и пробовать. Нет универсальной формулы технических навыков, с которыми вас возьмут. Но есть то, что помогает на любом уровне — кругозор в Computer Science.
Что предложат джуну: в Москве и Санкт-Петербурге джун любого направления в разработке может иметь 30-100 тысяч рублей на руки. Просто за 100 у него будет минимальный опыт работы и например невероятная алгоритмическая подготовка. А за 30 легкая стажировка или парттайм работа. Скорость роста дальше зависит от самого джуна и компании, не все умеют вовремя поднимать деньги джунам. А джуны не всегда приходят с запросом про деньги. «Плюшки» у всех примерно стандартные: пресловутые «печеньки», ДМС, фрукты какие-нибудь с фитнесом, компенсация обучения. Бывает больше и лучше, бывает меньше».
Вместо заключения: что нужно, чтобы получить должность младшего программиста
О требованиях работодателей к джунам мы узнали благодаря анализу вакансий и комментарию HR-эксперта Вероники Ильиной. Чтобы соответствовать этим требованиям, достаточно единственного фактора. Вам нужно развиваться: изучать программирование и смежные дисциплины, нарабатывать гибкие навыки. И не забывайте рассылать резюме и ходить на собеседования, без этого найти работу не получится.
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях
Что должен знать «PHP Junior Developer без опыта работы»?
2014-06-16 в 13:04, admin , рубрики: junior, php, Веб-разработка, Карьера в IT-индустрии, поиск работы, метки: junior, PHP, поиск работы
- в той или иной мере был контакт с 20+ работодателями
- выполнено 12 тестовых заданий
- пройдено 8 собеседований с техническими специалистами
- получил моральные травмы средней степени тяжести один начинающий PHP-разработчик
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, почему вы не можете потратить пять минут на человка, который потратил на вас день?
Если вы столкнётесь с такой проблемой, не ждите ответа. Звоните и пишите, спрашивайте почему про вас забыли.Собеседование это огромный плюс
Общение с опытным разработчиком и просмотр вашего кода сильно продвигает вас в развитии. Даже если вам отказали в вакансии, вы всё равно получили ценный опыт. Моё последнее собеседование это подтвердило.
— Вы применяли х?
— Да, в тестовом задании одной компании я делал y при помощи x.
— Вы знакомы с z?
— Да и знаю что нельзя делать так и можно вот так.
Кроме того, при общении над распечаткой кода очень многие вещи в вашей голове, которые до этого момента не имели своего места, соберутся в упорядоченную систему знаний.Happy End
Вот собственно со всем этим и придётся столкнуться начинающему разработчику. При некоторой подготовке ваши будующие собеседования пройдут намного проще, чем мои.
Возможно пытливому читателю будет интересно, чем же закончились эти поиски работы?
Я понял, что для начинающего разработчика без опыта работы у меня слишком мало опыта, и устроился на вакансию с IT вообще никак не связанную. Через год планирую, поднабравшись знаний, снова начать поиски.