zey_ser
Новичок
Добрый день. Повстречал вот такой интересный список требований к знаниям джуна https://geekbrains.ru/topics/197. Как вы считаете, адекватный ли он? Чтобы вы добавили в него? Чтобы убрали?
- отчетливо понимать этапы выполнения программы "Парсер - Компилятор - Рантайм", понимать, что PHP - компилируемый язык
- уметь объяснить слова "динамическая нестрогая типизация"
- знать, что такое переменная, константа (глобальная и в классе)
- иметь представление об областях видимости, глобальности и локальности имён
- знать, какие типы есть в языке, помнить о неочевидностях при приведении и сравнении разных типов (типа "1" == "01")
- иметь представление о приоритете операций
- понимать, что в PHP всё является выражением
- булев тип и операции над ним, разница между &&, & и and например
- знать несколько самых нужных строковых функций
- уверенно работать с массивами, знать самые востребованные функции, не пугаться большой вложенности
- уметь получить данные из $_POST, загрузить файл (или несколько сразу) через $_FILES
- уверенно владеть файловыми операциями, понимать концепцию "всё есть файл" и иметь представление о правах на файлы
- знать все циклы и управляющие конструкции языка кроме goto
- понимать, зачем нужны пространства имён
- уметь написать автозагрузку для своего проекта, знать о существовании стандартов на автозагрузкуобъектная модель PHP:
- наследование и модификаторы доступа
- разница между статикой и динамикой, смысл в статических свойствах и методах, хотя бы на примере ORM
- позднее и раннее статическое связывание
- интерфейсы и трейты, как обход отсутствия множественного наследования
- абстрактные классы с реализацией методов
- класс, как тип, instanceof, класс-хинтинг, опять же тут интерфейсы
- магические методы на примере конструктора, __get, __set, __call
- исключения - понимание темы и хорошие примеры использованияПаттерны проектирования:
- MVC
- ORM
- ActiveRecord
- Depedency InjectionПрочее:
- PHPStorm уже фактически обязательно
- знакомство хотя бы с одним современным фреймворком
- умение пользоваться composer
- аккаунт на гитхабе, что подразумевает хотя бы начальное владение git в обязательном порядке
- в плюс будет linkedin или еще какая-то профессиональная сеть
Не) ну так не пойдет. Если бы вы были HR, вы бы наверняка изощрялись)))все бы убрал
0) уметь думать головой
1) уметь программировать
2) понимать ООП
3) не иметь проблем с чтением тех.литературы на английском
4) уметь пользоваться гуглем
Спасибо, поржал.- аккаунт на гитхабе, что подразумевает хотя бы начальное владение git в обязательном порядке
Линус Торвальдс только недавно научился пользоваться гитом!11- аккаунт на гитхабе, что подразумевает хотя бы начальное владение git в обязательном порядке
ну вот 2) - это уже мидлвсе бы убрал
0) уметь думать головой
1) уметь программировать
2) понимать ООП
3) не иметь проблем с чтением тех.литературы на английском
4) уметь пользоваться гуглем
Для начала сойдет."Инкапсуляция - это что бы прятать данные" 80% ответов"Наследование" - вынести общие методы.
Кстати, раз уж такая пьянка. Вот "адекватный" список того, что нужно знать джуниору, с пояснениями:
1) RFC 2616 - не требую детального знания, перед собеседованием просто прошу наискосок просмотреть. Джуниора никогда не заставят писать демона на php, вся его работа будет вертеться в компании исключительно вокруг приложения, поэтому протокол знать все же надо, хотя бы базово.
2) Общие понимание/знание базовых алгоритмов и алгоритмической сложности. Для того, чтобы разработчик не дергул базу рекурсивными вызовами необходимо все же понимать, как это можно сделать по-другому. Это один из примеров — их сотни. Рекурсивные вызовы по апи внешнего сервиса и загрузка страницы по 20 секунд, это реальность.
3) Безопасность и общее понимание концепции атак: SQL, XSS, CSRF
4) Навык в дебаггинге (x-debug или общение о том, как кандидат производит отладку)
5) Знание синтаксиса SQL. Бонус — профилирование запросов, расстановка индексов. Обычно прошу в накидать скрипт: запрос из базы через PDO
6) Синтаксис PHP и базовое ООП. Чем больше знает, тем лучше, но особо не придираюсь, ибо многих приходиться переучивать, что дороже.
7) IDE (сам адепт PhpStorm, но спокойно отношусь к NetBeans, Eclipse, Vim, Emacs ...)
8) VCS
9) Linux уровня понимания пермиссий и менеджера пакетов
Я бы убрал… Огонь в глазах на работе только мешает.Яб добавил огонь в глазах и умение читать англ.