Содержание

Что должен знать «PHP Junior Developer без опыта работы»? / Хабр

<update>

Время несётся стремительным домкратом. Эта статья в значительной степени устарела, хоть конструктивные моменты типа «изучайте смежные области» едва ли когда утратят актуальность. Кадровый голод ощущается всё более явно и вносит больше конструктива в процесс найма начинающих разработчиков. Баланс смещается в сторону хороших знаний языка и инструментов от готовности к написанию кода «как-нибудь» но с первого дня.

Не забывайте, что всё это оценочные суждения какого-то анонимуса. У вас нет никаких гарантий, что я разработчик и понимаю, о чём говорю. Собственно, вы даже не можете гарантировать, что этот текст не набран каким-то ежом в уплату за съеденую котлету.

</update>

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

При написании этой статьи:

  • в той или иной мере был контакт с 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, почему вы не можете потратить пять минут на человека, который потратил на вас день?

Если вы столкнётесь с такой проблемой, не ждите ответа. Звоните и пишите, спрашивайте почему про вас забыли.

Собеседование это огромный плюс

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

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

Happy End

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

Возможно пытливому читателю будет интересно, чем же закончились эти поиски работы?

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

Что должен знать Junior Java программист? | Foxminded

Разберем, какими знаниями должен обладать джуниор Джава.

 

 

Должно быть четкое понимание ООП (объектно-ориентированного языка программирования), трех принципов ООП, как они работают (кто кого наследует, кто кого переопределяет, какие ограничения на наследования есть и пр.). Эти вопросы будут на любом собеседовании на должность Junior Java.

 

  • Методы объекта Object Java

 

Вопросы по данной теме также будут на любом собеседовании. Возможно, не напрямую, но если вы не будете знать Object Java, это вызовет у интервьюера удивление, так как это база.

 

  • Java Collections Framework

 

Вы должны знать основные интерфейсы и их реализацию (когда и какую использовать, какие есть особенности, понимать привязку Collections Framework к методам hashCode и equals), понимать, как и почему это работает и пр.

 

  • Многопоточность

 

В общих чертах у вас должно быть понимание, что такое многопоточность. Это могут спросить далеко не всегда, но общее понимание должно быть. Что такое мьютекс семафор, для чего методы wait и notify должен понимать любой разработчик.

 

 

Знание SQL-запросов обязательно на уровне написания простых запросов на Join на двух таблицах. Если вы пишите их легко, особо не напрягаясь, то, скорее всего, вы пройдете. Понятно, если у вас будут сложности на большом списке ложных запросах, на хевингах и так далее — это не будет критично для джуниора. Но писать джоины с двух таблиц вы должны уметь.

 

  • Стеки технологий

 

Вас этого могут не спросить, но знать нужно. На Java сейчас есть два альтернативных стека технологий: Java ЕЕ и Spring. Если вы еще не знаете никакой и только выбираете, какой учить — учите спринговый. Он более популярен и востребован. Что вы должны знать про стек? Список фреймворков, понимать для чего каждый из них предназначен, какие ограничения, какие аннотации и как он вяжется с остальными фреймворками. Хотя бы в общих чертах. По-хорошему, вы должны написать хотя бы одну программу на этом стеке, потому как если вы не имеете практики, только теоретические знания, то вас быстро поймают, поверьте.

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

 

  • Английский язык

 

Знание языка должно быть не ниже Intermediate. Если нет языка, то найти работу будет очень и оче

Как вырасти от Junior до Middle и выше?


Оценка: 4.9/5. На основании 7 голосов.