Highload fwdays — спікери зі Stackoverflow, Netflix, Google, AWS, Rovio | Київ, 5 жовтня
×Закрыть

Путь к Strong PHP Developer

Доброго времени суток! Хочу развиваться в направлении PHP, и хотел бы задать вопрос: что надо выучить, чтобы уже можно было браться за опэн соурс проэты? Нативный PHP, MySQL... А дальше? Есть ли еще какие-нибудь «универсальные» технологии которыми нужно овладеть новичку?

P.S. Владею на среднем уровне HTML, на низком CSS и практически на нулевом JS.

P.S.S. Гуглить я умею, но хотелось бы узнать, что делали люди, которые еще недавно были в моей ситуации.

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Взагалі в PHP немає ідеального шляху розвитку, в залежності від багатьох факторів можуть бути потрібні різні речі, але як на мене, то:
ООП, абстрактні класи, інтерфейси — для чого це все потрібно;
Розуміння MVC, MVP;
Паттерни в програмуванні (банда чотирьох);
PHPUnit і все що з ним повязано;
MySQL/PostgreSQL;
Можна також «вивчити» (тобто знати для чого вони і де їх приміняти) топ 300 функцій в PHP (gist.github.com/...​taph/807dda9b3d307702dc37)

Потім можна починати ознайомлюватись з memcached, Docker, Vagrant
Знання і хоча б поверхневе розуміння SOLID;
Знання REST API теж пригодяться;
Знати принцип роботи GIT/SVN і їх основні команди;

Дуже сильно пригодиться:
JQuery, Ajax, JavaScript, XML, SOAP, HTML5, CSS3;

А потім вже залежить від проектів і їх специфіки:
RabbitMQ;
Bash;

Вміння користуватись лінуксом і знання базових команд (щоб спокійно працювати в консольному режимі на серверах).

Загальні знання з Continuous Integration, Continuous Delivery, різні там Agile/Scrum методології.

какой именно опенсорс?
вообще я бы посоветовал сделать пару фул-стек проектов, т.е. веб-сайтиков, ибо для этого пхп и презназначается.
с mysql, потом и с монго, на паре разных пхп фреймворков, ну и т.п.
тесты покрутить тоже, да.
другого пути нет к сожалению, только практика.
но в пхп имхо нет «минимума» никакого, этим он хорош. можешь быть крутым спецом который ни разу не собирал докер или не писал phpunit’ы — и это не сарказм.

Короче, наверное все одинаково во всех языках. Зубришь до идеала и полного понимания сам язык, обязательно его ооп часть php.net/manual/ru/oop5.intro.php
Дальше обязательно прокачаться по СУБД (mysql\pgsql), чем сильнее тем лучше. Ну и, конечно, фреймворк какой-нить выучи. Хорошенько исходники поизучай, очень много полезного узнаешь. symfony рекоммендую. Ну и не забывай прокачиваться по шаблонам проектировании, досконально изучи принципы и шаблоны SOLID, KISS, DRY, GRASP и тд. Еще тестирование, PSR (обязательно) и www.phptherightway.com
Всякие варганты, докеры, гит и прочее — освоишь уже в процессе работы.
Ну и это только бэкенд начинка. Для фулстака, js хорошо выучить, и 1-2 js фрейморка.

symfony?? это чтоб подрезать крылья на взлете? :)
там же ппц ООП-геморой, это вообще не в пхп-стиле.
истинный пхп близок к хуяк-хуяк продакшн.
так что cakephp какой-нибудь или codeigniter...

Не пойму, зачем советовать херню??

«так что cakephp какой-нибудь или codeigniter...» — человек в здравом уме будет советовать такую дичь ?? В 2018 к тому же.. или вы в 2000-ых до сих пор??

ой да ладно. в реальной работе человек и не с таким столкнется. к тому же не очень понимаю в чем тут проблема, если оба фреймворка немертвые, и обновляются. все равно они ближе к реальному пхп чем симфони

Хотя бы вакансии посмотри, из фреймворков везде symfony, laravel, yii2, реже zend. Либо же нишевые платформы — magento, wordpress, drupal, но это совсем другой путь развития.

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

там же ппц ООП-геморой, это вообще не в пхп-стиле.

вот что ты мелишь?
обычный такой ООП, соблюдены современные принципы разработки, поддерживается PSR. Как раз таки серьезный php это либо симфони\зенд (последние) — либо проект с нуля, с напичканный компонентами (опять же с симфони / зенд)

в симфони кодить это сидеть и наяривать на мануалы в основном.
т.е. это ОК — точно так же кодишь и в Visual C каком-нибудь или яве.
но нафига тогда пхп юзать? бери ту же яву со всей инфраструктурой.
в пхп главное простота... я не понимаю этих попыток выжать из него непонятно что.

уровень вхождения в симфони очень высокий, как для пхп-фреймворка.
точно так же и для зенда — куча кода ради кода.

новичку с этого начинать — не имеет смысла вообще. в пхп куча норм фреймворков в которых уровень вхождения пару дней. тот же вордпресс — тоже нужны мануалы, но сам по себе он простой как валенок, без надротства как в симфони.

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

Что там высокого, особенно в 3.4/4.0, где сплошная «магия» DI-конейнера?

Где вы ООП в самой симфе нашли? Там же процедурщина завёрнутая в обьекты.

Базовый синтаксис и базовые же библиотеки. Для опенсорса в целом актуально тестирование, как минимум, юнит, прежде всего PHPUnit, если говорить об экосистеме PHP. Также базовые знания по composer и настройке среды разработки (не в смысле IDE, а в смысле веб-сервер, СУБД и т. п. поднять).

Советы сеньоров: как прокачать знания junior PHP
dou.ua/...​articles/senior-php-tips

Подписаться на комментарии