Открыть меню

Ценность php разработчика

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

Попытаюсь привести область качеств некоего не идеального, но оптимального php-программиста в моем представлении.

Итак, он должен обладать следующим (список неполный, может обновляться):

  1. Хорошее знание синтаксиса языка и опыт практического применение его возможностей.
  2. Знание возможностей и опыт работы с общими необходимыми инструментами разработки (вспомогательный функционал, делающий процесс разработки приятнее и эффективнее)
    1. Git + сервисы хостинга (github, bitbucket)
    2. Менеджер зависимостей (composer + репозиторий packagist)
    3. Среда разработки (IDE)
    4. Vagrant
  3. Знание и опыт работы с технологиями и популярными библиотеками:
    1. Базы данных, субд (sql, mysql )
    2. Тестирование
    3. Кэширование
    4. Безопасность
  4. Знание и опыт использования лучших практик применения языка программирования (полезности от продолжительного опыта работы сообщества разработчиков)
    1. Стиль кода (применение стандартов PSR)
    2. Документирование
    3. Шаблоны проектирования (общие подходы, применимые к любому языку)
    4. Лучшие приемы работы с php. (Так называемые рецепты)
    5. Лучшие приемы работы с выбранным фреймворком.
    6. Умение находить наиболее эффективные способы при использовании языка (ведь задачи можно решить многими способами, главное — выбирать оптимальные).
    7. Скорость разработки.
  5. Навыки, связанные с конкретными задачами (зависящие от конкретного проекта)
    1. Знание архитектуры, api, опыт работы с фреймворками/cms.

Я попытался разбить знания и навыки на 5 категорий.  Где-то они пересекаются и сложновато однозначно определить категорию.

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

Изучение синтаксиса — самое простое и быстрое, а вот пункты 4 и 5 (лучшие практики работы с языком в целом и с фреймворками в частности) — практически бесконечные и как раз по этой причине, сложно представить, как можно поменять свой основной язык программирования, на котором работаешь, так как эти пункты придётся набирать с нуля.

Отдельно стоит сказать о стиле и архитектуре кода. На мой взгляд, именно это отличает профессионала от новичка. Если не брать в расчёт компании-лидеры it, которые создают новые технологии, то окажется, что 80% задач по силе решить и senior и junior-программисту, но разница будем в том, что в первом случае будет элегантная система с прозрачной архитектурой, которую будет просто сопровождать, а во-втором куча костылей, в которых через пару недель самому автору будет трудно разобраться..

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

© 2017 Продвижение сайтов в Санкт-Петербурге · Копирование материалов сайта без разрешения запрещено