«Как
улучшить мои навыки в PHP?» - актуальный
в интернете вопрос. Его
чаще задают
новички, но и каждый
опытный разработчик спрашивает
себя о том же. В конце
концов, стремление
к самосовершенствованию
заложено в человеческой природе. Это
сложный
вопрос и, если подумать,
на него нет
точного
ответа. Тем не менее я
попытаюсь дать обширный ответ, который,
надеюсь, будет полезен не только новичкам,
но и людям с некоторым опытом.
В книге “Bounce” Мэтью Сайда (Matthew Syed) говорится, что для достижения высокого уровня в любой дисциплине, нужно практиковать её 10 000 часов (что примерно равняется 10 годам). Я не думаю, что мастерство в программировании на PHP требует 10 лет практики. Очевидно практика должна быть целенаправленной, иначе она бесполезна.
Последнее предложение предыдущего параграфа содержит ключ к успеху. Оно не только о том, что вам нужно делать, но и о том как это делать.
Убедитесь, что выбрали самый эффективный способ обучения. Это будет зависеть от ваших текущих знаний. Начинающие могут предпочесть взаимодействие с людьми или следование видеоурокам, когда опытные разработчики выбирают блоги, книги или конференции.
Как только вы научились чему-нибудь новому — опробуйте это. Это может потребовать создания концепции, любимого проекта или изменения ваших привычек. Сохраняйте любознательность и открытость ума. Не бойтесь что-нибудь сломать. Если вы можете проверить что-то самостоятельно, сделайте это.
Хотя в контексте этого поста - PHP, вопрос не привязан к конкретному языку программирования. Улучшить навыки в программировании на PHP, значит улучшить ваши универсальные навыки программирования. Их можно разбить на 3 области:
-разработка (стандарты кодирования, шаблоны проектирования, юнит тестирование, алгоритмы и т. д.)
-управление (жизненный цикл приложения, контроль версий, гибкость и т. д.)
-окружение (базы данных, операционные системы, сети, протоколы и т. д.)
Программирование на PHP
- Основы PHP: переменные, циклы и функции
- Массивы (http://uk1.php.net/manual/ru/book.array.php)
- Работа с файловой системой (http://uk3.php.net/manual/ru/ref.filesystem.php)
Основы фронт-энда
- HTML
- CSS
Объектно-ориентированное программирование в PHP
- Классы и объекты (http://php.net/manual/ru/language.oop5.php)
- Исключения (http://www.php.net/manual/en/language.exceptions.php)
- Пространства имён (http://www.php.net/manual/en/language.namespaces.php)
Основы баз данных
- Основый SQL (select, insert, update, delete)
- PHP PDO (http://uk3.php.net/manual/en/class.pdo.php)
Фронт-энд
- JavaScript
- jQuery
- Отзывчивый web-дизайн
PHP
- XML & DOM (http://uk3.php.net/manual/en/book.dom.php)
- Регулярные выражения (http://www.regular-expressions.info/tutorial.html)
- SPL (http://uk3.php.net/manual/en/book.spl.php)
- Магические методы (http://php.net/manual/en/language.oop5.magic.php)
- GD (http://uk3.php.net/manual/en/book.image.php)
- JSON (http://uk3.php.net/manual/en/book.json.php)
Базы данных
- Проектирование баз данных (http://en.wikipedia.org/wiki/Database_design)
- Индексация
- Разработка (управление пользователями, резервное копирование)
- Оптимизация SQL
Проектирование ПО
- Шаблоны проектирования (“PHP Objects, Patterns and Practice”)
- Алгоритмы и структуры данных (Introduction to Algorithms)
- Юнит-тестирование (The Art of Unit Testing: with Examples in .NET)
- PHP фреймворки (одного достаточно)
- UML
Безопасность веб-приложений
- MySQL инъекции
- Межсайтовый скриптинг (CSS)
Управление кодом
- Контроль версий (SVN or GIT)
- Ветвление (http://nvie.com/posts/a-successful-git-branching-model/)
- Отслеживание багов (любое доступное ПО)
- Стандарты кодирования (“Clean Code: A Handbook of Agile Software Craftsmanship”)
Линукс
- Командная строка
- SSH
- Установка и конфигурирование LAMP окружения
- Установка расширений PHP
Apache веб-сервер
- Виртуальные хосты
- MOD_Rewrite
Альтернативные хранилища
- Кеширование: Memcached или Redis
- NoSQL: MongoDB или CouchDB или Cassandra
- Поисковые движки: SOLR или ElasticSearch
Сети
- Модель OSI (http://en.wikipedia.org/wiki/OSI_model)
- Протокол TCP/IP
- Протокол HTTP
- Работа со снифферами (tcpdump или wireshark)
- CURL (http://uk3.php.net/manual/en/book.curl.php)
Ведение разработки
- SCRUM (“Agile Project Management with Scrum”)
- Ведение (“How to Lead: What the best leaders know, do and say”)
- Разработка через тестирование
Я хочу чтобы этот список был как можно более полезен, так что я буду дополнять его время от времени. Если вы считаете что я что-то упустил, или хотели бы порекомендовать хороший учебник, пожалуйста дайте мне знать.
Вольный перевод этой статьи
Комментариев нет:
Отправить комментарий