@tosha_lol_daaa

Знания Junior php разработчика?

Например мои знания сейчас:
  • написал велосипед (mvc) (если кому-то интересно - могу показать конечно);
  • 3 месяца работаю с laravel 5.2;
  • имел дело с lumen;
  • умею адаптивно верстать(materialize);
  • jquery & ajax (начал знакомится совместно с Laravel, сейчас проблем с этим нету);
  • немного Node & redis & socket (Тот же Laravel);
  • Ну и немного(совсем капельку): symfony 3;
  • паттерны (синглтон, фабрику умею применять, остальное - теория).


Я пытался что-то вынести в общую "кашу", что есть в вакансиях:
Cms, фреймы, паттерны, ооп, mvc, адаптивно верстать, Jquery(как минимум, иногда react, angular), работать в фш и т.п.

Так вот, вопрос:
Что вообще должен знать Junior php?

Не могу никак вынести что-то в одно.
Спасибо.
  • Вопрос задан
  • 18746 просмотров
Пригласить эксперта
Ответы на вопрос 8
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
что должен знать идеальный джуниор (мое личное мнение):

- Сетевой стэк. Нужно иметь хотя бы базовое представление о том как с сервером общаются. Ну то есть не нужно лезть в дебри, но понимать что такое HTTP или чем TCP от UDP отличается - нужно. В целом это пара часов чтения википедии.
- GIT или любая другая распределенная VCS. Базовые навыки, что бы хотя бы понимал что есть git revert или git rebase, что такое фичабрэнчи и примерное представление как это работает и зачем надо.
- Базовые основы unix. Ну то есть что бы не пугаться таких вещей как ssh хотя бы.
- PHP. Без этого никуда. Он должен понимать что такое слабая динамическая типизация (не заучивать табличку кастов типов, а понимать плюсы и минусы, такая же история с приоритетами операторов - не заучивать а знать как избегать проблем с чтением кода)
- Понимать что код чаще читают чем пишут, а потому не экономить 5 минут на написании кода, а писать так, чтобы сэкономить 30 минут человеку, разбирающемуся в куске кода.
- Знать базовые вещи в плане безопасности. XSS и как защищаться, SQL инъекции и как защищаться, CSRF, MITM. Понимать что такое NDA, что данные пользователей - секретная информация. Как хэшировать пароли (не md5 а password_hash) и почему это важно.
- Знать SQL. Глубоких знаний не требуется, нужно лишь понимание того, что такое нормальная форма, желательно разобраться с вопросом денормализации данных. Идеально иметь хотя бы базовые представления о том как работать с NoSQL решениями.
- Процедурное программирование: почему глобальные переменные порождают сложность, что такое состояние, как можно использовать классы для изоляции состояния и т.д. Инкапсуляция. Инварианты, пост/пред условия, сохранение целостности...
- Разделение ответственности. Это один из важнейших принципов, и упрощать все это до "mvc фреймворк" слегка неправильно. Вы должны понимать что от чего отделяете и главное зачем.
- Автоматические тесты. Джуниор должен знать что это такое и иметь хотя бы минимальный опыт их написания. Должен понимать разницу между юнит и интеграционными тестами. Быть знакомым с пирамидой тестирования.
- Уметь решать стандартные задачи не задавая слишком много вопросов. Например регистрацию пользователя по email-у вы должны написать, или авторизацию через соц сети, или комментарии, или новостную ленту.
- Уметь дебажить. xdebug, blackfire и тд.

В целом где-то за годик весь этот список можно влегкую покрыть с нуля.

p.s. Я в списке специально не указывал ООП, поскольку всеравно первые пару лет у разработчиков выходит процедурщина на классах. Это не плохо, но того что в моем списке более чем должно хватать для решения стандартных задач. Но термины вроде "инкапсуляция/полиморфизм/наследование" требуются в обязательном порядке подавляющем количеством интервьюверов, а стало быть знать это надо. Единственное что - рекомендую в свободное время глубже погрузиться в этот вопрос а не тупо заучивать формулировки.

Так же вещи вроде docker джуниорам знать не обязательно просто потому, что их врядли допустят сходу к управлению инфраструктурой. А так пару неделек на изучение и вперед.
Ответ написан
@entermix
Пункт номер ноль

Разработчик должен соображать и уметь использовать Google. Первое оценить крайне сложно, для этого придумано много «дурацких» вопросов для собеседований. Второй пункт прививается в первые дни испытательного срока. Плюсом будет аккаунт на stackoverflow.com.

anton.shevchuk.name/php/required-skills-for-junior...

https://dou.ua/forums/topic/14427/
ru.stackoverflow.com/questions/581042/%D0%A7%D1%82...
Ответ написан
OnYourLips
@OnYourLips
Как минимум на нижний край джуниорских навыков вы тянете.
Может быть и не на нижний: покажите свои тесты.

Вангую зарплату 70-110тр в Москве.
Ответ написан
@Alzasr
Твой уровень знаний, если ты все честно описал, достаточен для джуниора и мб даже больше. Как я понял, ты хорошо обучаешься. Можешь легко идти на вакансии джуниоров, а через полгода-год стать мидлом. Если ты живешь в Ижевске, обращайся, готов тебя взять, правда после общения с HR, к себе в отдел.
Ответ написан
gangstarcj
@gangstarcj
Вы уже достаточно знаете для джуна
Ответ написан
@Fractalzombie
Software Engineer
Ну посмотрев код на гитхабе, скажу, что в части ООП вам еще много чего предстоит понять. Особенно как делегировать полномочия и что это такое вообще.
Понять суть абстракций, не просто выучить, а понять где, зачем и почему, что бы не дублировать. Где располагать классы сервисов, утилс и т.п.
Ну и самое важное, это паттерны в этом случае, придется тоже понять зачем и почему.
Ответ написан
@zzzmaikzzz
Junior-web
HTTP + TCP + IP + SQL + PSR-0, PSR-1 и PSR-2 + Библиотека PHP (SPL) + XDebug + Composer + PEAR + PDO + Безопасность + Хэширование паролей + Фильтрация данных + PHPUnit + Selenium + Кэширование + и т.д.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SaveTime Москва
от 100 000 руб.
Teamlead Ставрополь
от 25 000 до 50 000 руб.
от 60 000 до 80 000 руб.
19 нояб. 2019, в 17:42
300 руб./за проект
19 нояб. 2019, в 17:33
10000 руб./за проект
19 нояб. 2019, в 17:26
500 руб./за проект