Найти в Дзене
Woopanda - Digital маркетинг

Компетенций Fullstack Разработчика для SEO-проекта на WordPress 2024

Как руководитель диджитал-агентства, я часто сталкиваюсь с процессом поиска программистов, будь то партнеры для совместных проектов или штатные сотрудники. Поскольку 90% наших клиентов работают с сайтами на WordPress, я решил создать эту таблицу, чтобы ускорить процесс поиска специалистов и облегчить оценку их навыков. Таблица имеет несколько важных целей: она позволяет сэкономить время на переговорах с кандидатами, так как заполняется на первом этапе отбора. Это дает возможность сразу получить представление о навыках кандидата и его уровне компетенций. Кроме того, она помогает работодателю четко определить требования для конкретного проекта и сконцентрироваться на наиболее релевантных навыках, которые требуются для успешного выполнения задач. Таблица охватывает как ключевые технические навыки (hard skills), необходимые для работы с WordPress, так и важные soft-навыки. Для успешной работы в диджитал-сфере недостаточно только технических знаний — большое значение имеют коммуникативные
Оглавление

⭐️ Джун
⭐️⭐️🌟 Мидл
🌟🌟🌟🌟 Сеньор
🌟🌟🌟🌟🌟 Лид
⭐️ Джун ⭐️⭐️🌟 Мидл 🌟🌟🌟🌟 Сеньор 🌟🌟🌟🌟🌟 Лид

Введение

Как руководитель диджитал-агентства, я часто сталкиваюсь с процессом поиска программистов, будь то партнеры для совместных проектов или штатные сотрудники. Поскольку 90% наших клиентов работают с сайтами на WordPress, я решил создать эту таблицу, чтобы ускорить процесс поиска специалистов и облегчить оценку их навыков.

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

Таблица охватывает как ключевые технические навыки (hard skills), необходимые для работы с WordPress, так и важные soft-навыки. Для успешной работы в диджитал-сфере недостаточно только технических знаний — большое значение имеют коммуникативные и управленческие способности. Именно поэтому эта таблица станет полезным инструментом для оценки кандидатов.

Внимание: На Яндекс Дзен отсутствует возможность размещения таблиц, поэтому материал представлен в виде списка, а не в табличной форме. Если вам нужна таблица в том же формате, что на скриншоте, оставьте комментарий, и я отправлю вам ссылку на полную версию.

Пример таблицы компетенций Fullstack Разработчика (WordPress)
Пример таблицы компетенций Fullstack Разработчика (WordPress)

Hard-навыки разработчика (WordPress)

Опыт работы с Wordpress

⭐️ Понимает базовую структуру WordPress и его основные компоненты (темы, плагины, виджеты). Умеет устанавливать WordPress на локальный сервер и хостинг. Знает, как использовать панель администратора WordPress для базовых настроек сайта. Может создавать и редактировать страницы и записи через админ-панель. Имеет базовое понимание структуры тем WordPress. Умеет устанавливать и активировать готовые темы и плагины.

⭐️⭐️🌟 Знаком с WordPress Codex и умеет искать в нем информацию. Хорошо разбирается в структуре WordPress. Умеет создавать пользовательские темы с использованием основных файлов темы (index.php, header.php, footer.php, functions.php). При использовании чужих тем создает дочернюю, а не вносит изменения в существующую. Знает, как использовать основные функции для вывода контента (the_title(), the_content(), get_header(), get_footer()). Умеет работать с циклом WordPress и основными условными тегами. Знает, как подключать стили и скрипты в WordPress с помощью функций wp_enqueue_style() и wp_enqueue_script(). Может создавать простые шорткоды и виджеты. Понимает основы безопасности WordPress и применяет базовые меры защиты. Умеет работать с базой данных WordPress через функции $wpdb. Использует функции локализации. Может создавать простые пользовательские типы записей и таксономии.

🌟🌟🌟🌟Хорошо знает WordPress Codex и следует его рекомендациям. Понимает, что пользователь (контент-менеджер, редактор и т.д.) должен имет возможность изменять контент из админки. Не включает контент в шаблон WordPress, а создает меню, виджеты, настройки темы. Следует рекомендациям по структуре и именованию файлов тем и плагинов. Использует хуки (actions и filters) для модификации поведения WordPress вместо прямого изменения ядра. Создает сложные пользовательские темы с использованием иерархии шаблонов WordPress. Разрабатывает пользовательские типы записей и таксономии с метаполями. Умеет создавать сложные запросы к базе данных с использованием WP_Query и get_posts(). Разрабатывает собственные плагины средней сложности. Знает, как работать с REST API WordPress. Знает, как работать с мультисайтовыми установками WordPress. Умеет создавать пользовательские страницы настроек в админ-панели. Знает, что лучше не использовать или использовать с осторожностью для решения задач (GET-параметры, прямые SQL-запросы, хардкодинг данных и т.д.)

🌟🌟🌟🌟🌟 Обладает экспертными знаниями архитектуры WordPress и может оптимизировать ее для конкретных проектов. Разрабатывает сложные, высокопроизводительные темы и плагины с учетом масштабируемости и безопасности. Умеет оптимизировать производительность WordPress для высоконагруженных проектов. Может создавать сложные системы аутентификации и авторизации в WordPress. Умеет создавать и поддерживать многоязычные WordPress сайты. Знает, в каких случаях лучше использовать плагины, а в каких писать свой собственный код.

Работа с ACF

⭐️ Не знаком с плагином ACF

⭐️⭐️🌟 Имеет общее представление о плагине ACF и его назначении. Умеет устанавливать и активировать плагин ACF. Создает простые поля ACF (текст, изображение, число) через интерфейс админ-панели. Выводит значения простых полей ACF в шаблонах с использованием базовых функций

🌟🌟🌟🌟 Создает группы полей ACF и назначает их различным типам записей. Использует основные типы полей ACF (текстовое поле, текстовая область, изображение, галерея, выпадающий список). Настраивает условную логику отображения полей в админ-панели. Выводит значения полей ACF в шаблонах с использованием различных функций (get_field, the_field). Создает простые повторители и гибкие контентные области.

🌟🌟🌟🌟🌟 Использует продвинутые типы полей ACF (связанные записи, Google карты, дата/время). Создает сложные структуры данных с использованием вложенных повторителей и гибких контентных областей. Программно регистрирует поля ACF с помощью PHP. Интегрирует ACF с пользовательскими типами записей и таксономиями. Создает собственные типы полей ACF. Оптимизирует запросы к базе данных при работе с ACF.

Реализация сетевых интерфейсов (API)

⭐️ Не реализовывал самостоятельно сетевой интерфейс или не знает что это такое

⭐️⭐️🌟 Имеет базовое понимание концепции клиент-серверного взаимодействия. Знает, что такое REST API. Умеет использовать простые GET-запросы к WordPress REST API. Понимает основы HTTP-протокола. Знаком с форматом JSON. Имеет общее представление о геоданных и их применении в веб-разработке.

🌟🌟🌟🌟 Уверенно работает с WordPress REST API для базовых операций. Использует POST, PUT и DELETE запросы. Понимает принципы аутентификации в API WordPress. Создает простые эндпоинты для кастомных post types. Интегрирует базовые сторонние API (например, социальные сети). Использует простые геолокационные API (например, Google Maps API) для отображения карт на WordPress сайте. Умеет сохранять базовые геоданные (широта, долгота) в метаполях WordPress

🌟🌟🌟🌟🌟 Понимает архитектуру WordPress REST API.Создает сложные кастомные эндпоинты. Реализует продвинутую аутентификацию и авторизацию для API. Оптимизирует производительность API-запросов. Интегрирует сложные сторонние API с WordPress. Использует GraphQL в WordPress проектах. Разрабатывает собственные WordPress плагины с API-функционалом. Интегрирует продвинутые геолокационные сервисы. Создает кастомные эндпоинты для работы с геоданными в WordPress. Реализует функционал поиска и фильтрации контента на основе геолокации.

HTML

⭐️ Уверенно применяет семантическую разметку. Понимает и использует атрибуты HTML-элементов. Создает формы и знает их основные элементы. Умеет работать с таблицами в HTML. Знаком с понятием доступности и применяет базовые принципы.

⭐️⭐️🌟 Понимает семантическую структуру HTML5. Умеет создавать адаптивные макеты с использованием HTML и CSS. Знает основные элементы форм и их атрибутов. Имеет базовые навыки работы с SVG. Понимает принципы доступности веб-страниц. Умеет оптимизировать HTML код для улучшения производительности. Использует микроразметку (Schema.org, Open Graph). Использует принципы БЭМ.

🌟🌟🌟🌟 Понимает семантику HTML5 и правильно использует новые элементы. Создает структуры веб-страниц с учетом SEO-оптимизации. Хорошо разбирается в вопросах доступности и применяет ARIA-атрибуты. Умеет оптимизировать HTML-код для улучшения производительности. Понимает и использует микроразметку (Schema.org, Open Graph). Использует принципы БЭМ.

🌟🌟🌟🌟🌟 Понимает семантику HTML5 и правильно использует новые элементы. Понимает взаимодействие HTML с CSS и JavaScript в контексте WordPress. Оптимизирует HTML-структуру для улучшения производительности сайта. Следит за новыми спецификациями HTML и внедряет их в проекты.

CSS

⭐️ Понимает базовый синтаксис CSS. Умеет применять простые стили к элементам HTML. Знает основные селекторы CSS. Может вносить небольшие изменения в существующие стили.

⭐️⭐️🌟 Уверенно работает с селекторами CSS, включая псевдоклассы и псевдоэлементы. Понимает каскадность и специфичность CSS. Умеет создавать адаптивные макеты с использованием медиа-запросов. Знаком с препроцессорами CSS (например, SASS или LESS). Может настраивать стили для стандартных тем WordPress.

🌟🌟🌟🌟 Понимает box model и различные методы позиционирования элементов. Эффективно использует flexbox и grid для создания сложных макетов. Умеет оптимизировать CSS для улучшения производительности. Хорошо разбирается в кроссбраузерной совместимости и умеет решать связанные с ней проблемы. Создает собственные темы WordPress с нуля, уделяя внимание организации и структуре CSS.

🌟🌟🌟🌟🌟 Владеет всеми аспектами CSS, включая продвинутые анимации и трансформации. Разрабатывает масштабируемые и поддерживаемые архитектуры CSS для крупных проектов. Внедряет методологии организации CSS (например, BEM, SMACSS). Понимает производительность CSS и оптимизирует стили для высоконагруженных сайтов.

SCSS

⭐️ Знает основы CSS и понимает, что такое препроцессоры. Умеет устанавливать и настраивать SCSS в WordPress-проекте с помощью инструкций. Понимает базовый синтаксис SCSS: переменные, вложенность селекторов. Может вносить небольшие изменения в существующие SCSS-файлы.

⭐️⭐️🌟 Уверенно использует основные возможности SCSS: миксины, расширения, импорты. Создает простые SCSS-структуры для WordPress тем. Понимает и применяет принципы организации SCSS-кода (например, 7-1 паттерн). Использует встроенные функции SCSS для манипуляций с цветом и числами. Интегрирует SCSS в процесс разработки WordPress-темы.

🌟🌟🌟🌟 Организует сложные SCSS-структуры для масштабных проектов. Создает гибкие и переиспользуемые компоненты с помощью SCSS. Оптимизирует производительность, минимизируя CSS-вывод. Использует продвинутые техники SCSS: условные конструкции, циклы, функции. Интегрирует SCSS с системами сборки (например, Gulp, Webpack) в проектах. Применяет методологии CSS (например, BEM) в контексте SCSS.

🌟🌟🌟🌟🌟 Разрабатывает и внедряет собственные SCSS-фреймворки. Создает сложные системы тем и кастомизации с использованием возможностей SCSS. Оптимизирует производительность крупномасштабных SCSS-структур в WordPress. Проводит код-ревью и оптимизирует SCSS-архитектуру проектов.

JavaScript

⭐️ Имеет базовое понимание синтаксиса JavaScript. Знает основы работы с DOM. Умеет использовать готовые JavaScript-библиотеки в WordPress. Понимает концепцию событий в JavaScript. Может вносить небольшие изменения в существующий JavaScript-код

⭐️⭐️🌟 Уверенно пишет базовый JavaScript-код. Умеет работать с AJAX в контексте WordPress. Знает основы jQuery и умеет его применять в WordPress-темах и плагинах. Понимает асинхронное программирование и промисы. Умеет использовать WordPress REST API с помощью JavaScript. Знаком с основами ES6+ синтаксиса.

🌟🌟🌟🌟 Понимает особенности JavaScript. Умеет оптимизировать JavaScript-код для улучшения производительности сайта. Владеет современными JavaScript-фреймворками (например, React) и умеет интегрировать их с WordPress. Разрабатывает собственные WordPress-плагины с использованием JavaScript. Понимает и применяет паттерны проектирования в JavaScript

🌟🌟🌟🌟🌟 Применяет JavaScript для решения сложных задач. Создает масштабируемые и высокопроизводительные JavaScript-приложения. Разрабатывает сложные системы на основе WordPress с использованием современных JavaScript-технологий (SSR, SPA, PWA). Умеет проводить аудит и оптимизацию JavaScript-кода. Внедряет передовые практики JavaScript-разработки в команде. Может создавать собственные JavaScript-фреймворки и библиотеки для WordPress.

Менеджеры пакетов JS

⭐️ Знает о существовании менеджеров пакетов npm, Yarn и pnpm. Умеет устанавливать базовые пакеты через npm. Понимает структуру файла package.json. Знает о существовании pnpm как альтернативы npm и Yarn

⭐️⭐️🌟 Уверенно использует npm для установки и обновления пакетов.Знает основные команды npm (install, update, run). Умеет работать с package.json и package-lock.json- Знаком с основами Yarn и его отличиями от npm. Понимает базовые преимущества pnpm (экономия места, быстродействие)- Умеет выполнять базовые операции с pnpm.

🌟🌟🌟 Управляет зависимостями проекта. Умеет настраивать скрипты npm. Использует Yarn для ускорения процесса разработки. Понимает семантическое версионирование. Умеет решать конфликты зависимостей. Эффективно использует pnpm в проектах- Понимает и использует преимущества pnpm в монорепозиториях. Умеет настраивать pnpm для оптимизации рабочего процесса

🌟🌟🌟🌟🌟 Понимает работу npm, Yarn и pnpm. Оптимизирует процессы установки и обновления пакетов. Создает и публикует собственные npm-пакеты. Настраивает сложные сборки с использованием npm/Yarn/pnpm. Интегрирует менеджеры пакетов в CI/CD процессы. Умеет выбирать оптимальный менеджер пакетов для конкретного проекта. Настраивает и оптимизирует работу pnpm в крупных проектах и монорепозиториях. Разрабатывает стратегии миграции между различными менеджерами пакетов.

БЭМ

⭐️ Имеет базовое понимание концепции БЭМ в контексте HTML и CSS. Знает основные принципы именования блоков, элементов и модификаторов. Понимает, что БЭМ может применяться и к JavaScript-коду. Способен создавать простые CSS-стили и HTML-разметку с использованием БЭМ-нотации.

⭐️⭐️🌟 Уверенно применяет БЭМ-методологию в вёрстке. Начинает использовать БЭМ-подход в простых JavaScript-скриптах. Умеет находить элементы на странице, используя БЭМ-селекторы в JavaScript. Создает простые интерактивные компоненты, следуя БЭМ-методологии. Понимает концепцию JavaScript-блоков в контексте БЭМ

🌟🌟🌟🌟 Эффективно применяет БЭМ в сложных проектах, включая JavaScript. Разрабатывает модульные JavaScript-компоненты, соответствующие БЭМ-блокам. Использует делегирование событий на уровне БЭМ-блоков.

🌟🌟🌟🌟🌟Владеет БЭМ-методологией во всех аспектах разработки, включая сложную JavaScript-логику. Разрабатывает архитектуру крупных приложений, основанную на БЭМ, охватывающую HTML, CSS и JavaScript. Создает и внедряет инструменты для автоматизации работы с БЭМ в JavaScript (линтеры, сборщики). Оптимизирует производительность JavaScript-кода, написанного с использованием БЭМ-подхода.

Хранение данных в браузере

⭐️ Знает основные понятия: куки, Local Storage, Session Storage. Понимает разницу между этими типами хранения. Может описывать сценарии использования каждого типа хранения. Использует готовые функции и плагины для работы с куки.

⭐️⭐️🌟 Знает подробное устройство и ограничения каждого типа хранения. Знает основные методы работы с куки, Local Storage и Session Storage в JavaScript. Знаком с концепцией безопасности при хранении данных в браузере. Понимает, как выбрать оптимальный тип хранения для конкретной задачи. Осознает риски, связанные с хранением чувствительных данных в браузере. Может самостоятельно создавать, читать, обновлять и удалять данные в Local Storage и Session Storage. Умеет настраивать куки с различными параметрами (срок жизни, путь, домен). Использует плагины для более сложных задач хранения данных.

🌟🌟🌟🌟 Знает механизмы синхронизации данных между браузером и сервером, инструменты для отладки и профилирования работы с хранилищами данных. Знаком с современными подходами к управлению состоянием приложения (например, с помощью Redux или Context API). Понимает, как оптимизировать использование хранилищ данных для повышения производительности приложения. Может разрабатывать сложные механизмы хранения данных, учитывающие специфику проекта, интегрировать хранилище данных в архитектуру приложения. Пишет чистый и эффективный код для работы с хранилищами данных.

🌟🌟🌟🌟🌟 Обладает всей полнотой знаний. Знает современные стандарты и рекомендации по работе с хранилищами данных, альтернативные механизмы хранения данных (IndexedDB, Web SQL). Понимает тонкости работы с хранилищами данных в различных браузерах. Понимает Как обеспечить кросс-браузерную совместимость. Может разрабатывать масштабируемые и отказоустойчивые решения для хранения данных. Умеет оптимизировать производительность приложений с большим объемом данных. Может принимать архитектурные решения, связанные с хранением данных.

TypeScript

⭐️ Имеет базовое понимание TypeScript и его отличий от JavaScript. Знает основные типы данных в TypeScript. Может объявлять переменные с типами. Понимает концепцию интерфейсов. Способен написать простые функции с типизированными параметрами и возвращаемыми значениями

⭐️⭐️🌟 Уверенно использует основные возможности TypeScript. Применяет пользовательские типы и интерфейсы. Понимает и использует обобщения (generics). Работает с модулями TypeScript. Настраивает базовую конфигурацию TypeScript (tsconfig.json). Интегрирует TypeScript в простые WordPress проекты. Умеет компилировать TypeScript код в JavaScript.

🌟🌟🌟🌟 Понимает систему типов TypeScript. Эффективно использует продвинутые типы (union, intersection, conditional types). Применяет декораторы и их возможности. Умело работает с пространствами имен. Использует утилиты типов (Partial, Readonly, Pick, etc.). Интегрирует TypeScript в сложные проекты. Оптимизирует конфигурацию TypeScript для улучшения производительности. Пишет и поддерживает типизированные WordPress плагины.

🌟🌟🌟🌟🌟 Владеет всеми аспектами TypeScript. Создает сложные типы и типизированные абстракции. Разрабатывает собственные утилиты типов для проектных нужд. Глубоко понимает внутреннее устройство компилятора TypeScript. Оптимизирует производительность TypeScript в крупных WordPress проектах. Создает и поддерживает типизированные библиотеки для WordPress экосистемы. Принимает архитектурные решения по интеграции TypeScript в проекты.

PHP

⭐️ Имеет базовые знания синтаксиса PHP. Умеет создавать простые скрипты и формы. Знаком с концепцией ООП в PHP.

⭐️⭐️🌟 Уверенно владеет синтаксисом PHP и основными функциями. Понимает и применяет принципы ООП в PHP.

🌟🌟🌟🌟 Применяет в работе принципы SOLID, стандарты PSR. Использует паттерны проектирования (MVC, Singleton, Factory и др.). Работает с модулями PHP (сURL, DOM, GD). Работает с API сторонних сервисов. Использует инструменты для автоматизации. Умеет писать модульные тесты. Работает с кэшированием (Redis, Memcached).

🌟🌟🌟🌟🌟 Понимает внутренние механизмы PHP и его расширений. Проектирует сложные, масштабируемые системы. Оптимизирует производительность PHP-приложений. Глубоко понимает внутреннее устройство PHP и его расширений. Разрабатывает архитектуру микросервисов. Имеет опыт работы с высоконагруженными системами. Применяет методологии непрерывной интеграции и развертывания (CI/CD).

Работа с Composer

⭐️ Имеет базовое понимание, что такое Composer и для чего он используется. Умеет устанавливать Composer на локальную машину. Может выполнять базовые команды Composer (install, update). Понимает структуру файла composer.json.

⭐️⭐️🌟 Уверенно использует Composer для управления зависимостями проекта. Умеет добавлять и удалять пакеты через Composer. Понимает разницу между require и require-dev зависимостями. Может настраивать автозагрузку классов через Composer. Умеет работать с разными версиями пакетов.

🌟🌟🌟🌟 Понимает принципы работы Composer и его место в экосистеме PHP. Умеет создавать и публиковать собственные пакеты на Packagist. Использует скрипты Composer для автоматизации задач. Может настраивать сложные конфигурации автозагрузки. Умеет работать с репозиториями и зеркалами Composer. Понимает и использует семантическое версионирование.П

🌟🌟🌟🌟🌟 Глубоко понимает внутреннее устройство Composer и принципы его работы. Умеет оптимизировать процесс установки зависимостей для крупных проектов. Может создавать собственные плагины для Composer. Умеет настраивать сложные сценарии автозагрузки и оптимизировать их. Использует Composer в процессах непрерывной интеграции и развертывания. Может проводить аудит безопасности зависимостей проекта. Умеет настраивать приватные репозитории пакетов.

Базы данных

⭐️ Отличает реляционные от нереляционных баз. Способен написать запрос с джойнами или вложенными селектами. Знает как оптимизировать запрос правильно. Понимает основы SQL и структуру базы данных. Умеет выполнять простые SELECT-запросы.

⭐️⭐️🌟 Способен сделать так, чтобы в шаблонах Wordpress не было повторяющихся запросов к БД или ACF. Уверенно пишет базовые SQL-запросы с JOIN и WHERE. Использует подготовленные выражения для безопасности. Умеет работать с результатами запроса как с массивом. Применяет пагинацию для больших наборов данных. Обрабатывает простые ошибки при работе с базой данных. Владеет профилировщиком запросов. Знает, как установить соединение с базой данных в PHP.

🌟🌟🌟🌟 Может сделать так, чтобы в шаблонах Wordpress не было повторяющихся запросов к БД или ACF. Успешно преодолевал технические ограничения баз данных. Владеет навыками оптимизации SQL-запросов и быстрого выявления проблем производительности. Способен прогнозировать потенциальные узкие места при масштабировании систем.

🌟🌟🌟🌟🌟 Проектирует сложные схемы баз данных. Оптимизирует производительность на уровне сервера БД. Реализует шардинг и репликацию. Разрабатывает стратегии резервного копирования и восстановления. Создает сложные триггеры и хранимые процедуры. Применяет техники для работы с большими объемами данных. Интегрирует различные типы баз данных. Проводит аудит безопасности и оптимизации баз данных. Разрабатывает стратегии миграции данных между различными СУБД.

Функциональное программирование

⭐️ Знает что такое чистые функции, функции высшего порядка, каррирование, ленивые вычисления.

⭐️⭐️🌟 Понимает концепцию чистых функций. Знает методы работы с неизменяемыми структурами данных. Умеет использовать функции высшего порядка.

🌟🌟🌟🌟 Знает что такое "монады". Умеет писать в функциональном стиле места, которые эффективно выражаются в функциональном стиле.

🌟🌟🌟🌟🌟 Применяет концепцию чистых функций и иммутабельности. Использует функции высшего порядка и композицию. Понимает и эффективно применяет монады и функторы. Работает с продвинутыми системами типов. Применяет принципы функционального программирования к параллельным и конкурентным вычислениям. Понимает, когда нужно функциональное программирование, а когда ООП.

ООП

⭐️ Знает "три кита" ООП и способен их увидеть в коде. Владеет базовыми паттернами проектирования: Observer, Singleton, Factory и т.д.

⭐️⭐️🌟 Знает принципы SOLID, KISS и DRY и их практикует. Осознанно или неосознанно владеет большинством актуальных паттернов проектирования.

🌟🌟🌟🌟 Знаком Domain Driven Design и проектирует системы с учетом реального мира. Знает слабые места ООП и обходит их. Способен в рамках ревью существующего кода или код-ревью выделить неявные шаблоны проектирования, сделать их явными и донести свет паттернов проектирования до автора кода

🌟🌟🌟🌟🌟 Совмещает ООП и функциональный стиль так, что это приводит к максимально понятному и поддерживаемому коду. Практически любую задачу способен эффективно декомпозировать на подзадачи в рамках общеизвестных паттернов проектирования.

Архитектура

⭐️ Мыслит об архитектуре приложения на уровне текущего файла/модуля

⭐️⭐️🌟 Имеет опыт работы с уже организованной архитектурой. Знает, как она называется, к какому типу относится. Пишет легко масштабируемый код.

🌟🌟🌟🌟 Знает что такое монолитная, модульная, микросервисная, кластерная архитектура. Работал уже как минимум с 2мя.

🌟🌟🌟🌟🌟 Разрабатывал ПО выстраивая микросервисную архитектуру. Понимает, что это такое. Аргументированно объясняет, почему в том или ином проекте применил ее.

DevOps

⭐️ Способен завернуть имеющийся проект в Docker-контейнер и запустить его, основы работы с Linux, знает что такое SSH. Знает что такое CI/CD.

⭐️⭐️🌟 Умеет создавать ssh ключи и копировать их на сервер, может поднять на ubuntu\centos lemp\lamp. Настраивал CI/CD на проекте.

🌟🌟🌟🌟 Может устанавливать любые пакеты (обновлять\удалять). Знает и использует основы безопасности: авторизация по ssh, firewall, smpt (отправка почты), роли пользователей и уровень доступа. Настраивал CI/CD на проекте

🌟🌟🌟🌟🌟 Владеет принципами построения 12-факторных приложений. Способен реализовать структуру из нескольких контейнеров (docker-compose) и эффективно поддерживать несколько рабочих окружений. Владеет системами управлениями конфигурациями (Chef, Ansible). Понимает и имеет опыт управления с Kubernetes или схожими системами, способен решать задачи zero-time deployment и писать код с учетом подобных потребностей. Скорость развертывания сервера на кубах не превышала 2-х дней.

Сетевые протоколы

⭐️ Знает наиболее распространенные сетевые протоколы. Чем друг от друга отличаются http/https/tcp/udp. Как именно они работают.

⭐️⭐️🌟 Понимает всю модель OSI. Умеет пользоваться инструментами (wireshark), способен (к примеру) осуществить перехват и отладку шифрованного HTTPS-соединения.

🌟🌟🌟🌟 Знает слабые места существующих протоколов и сталкивался с ними. Понимает природу задержек при передаче данных на всех уровнях (от загрузки данных в сетевую карту до особенностей задержек маршрутизации пакетов). Способен, к примеру, написать свой парсер протокола для wireshark или использовать другие способы отладки.

🌟🌟🌟🌟🌟 Понимает специфику обработки пакетов на всех уровнях, включая аппаратный. Способен оптимизировать конфигурации ОС + окружение + продукт для достижения оптимальной производительности сетевого стека на всех трех уровнях

Кэширование

⭐️ Знает, что такое кэширование и его цели. Знаком с браузерным кэшированием, кэшированием на стороне сервера и CDN. Может выполнять базовую настройку кэширования в веб-серверах (например, Nginx, Apache). Понимает, как работают заголовки Cache-Control, Expires, ETag. Умеет использовать инструменты браузера для анализа кеша (например, вкладка "Network" в Chrome DevTools).

⭐️⭐️🌟 Понимает, как кэширование влияет на производительность и пользовательский опыт. Знаком с инструментами кэширования, такими как Redis и Memcached. Может проводить базовую оптимизацию кэширования для улучшения скорости загрузки страниц. Настраивает кэширование в веб-приложениях с использованием фреймворков (например, Laravel, Django). Использует инструменты анализа производительности (например, Google PageSpeed Insights) для выявления проблем, связанных с кэшированием.

🌟🌟🌟🌟 Разрабатывает архитектуру кэширования для сложных систем. Настраивает и поддерживает распределенные системы кэширования. Разрабатывает стратегии для обновления и истечения кеша. Интегрирует кэширование с Content Delivery Network для оптимизации загрузки контента. Использует инструменты мониторинга (например, Prometheus, Grafana) для оценки работы кеша и его производительности.

🌟🌟🌟🌟🌟 Разрабатывает долгосрочные стратегии кэширования для высоконагруженных систем. Проводит глубокий анализ и оптимизацию кэширования на уровне архитектуры приложений. Исследует и внедряет передовые технологии и подходы в области кэширования (например, кэширование на уровне базы данных). Обеспечивает консультации и техническую помощь команде по вопросам кэширования и производительности.

Производительность кода

⭐️ Знает что такое алгоритмическая сложность функции.

⭐️⭐️🌟 Понимает первое правило Кнута. Способен отказаться от микрооптимизаций в сторону читабельности кода, однако задумывается о производительности в контексте функций и модулей.

🌟🌟🌟🌟 Принимает решения об оптимизации производительности только на основании профилирования кода. Способен оценить выгоды оптимизации до ее реализации.

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

Информационная безопасность

⭐️ Не задумывается об информационной безопасности.

⭐️⭐️🌟 Понимает в каких кейсах необходимо шифрование и почему. Знает кейсы в которых возможна вскрытие данных пользователей.

🌟🌟🌟🌟 Отслеживает уязвимости. Знает библиотеки обеспечивающие шифрование данных

🌟🌟🌟🌟🌟 Писал собственные алгоритмы шифрования.

UX / UI

⭐️ Имеет базовое понимание принципов UX/UI дизайна. Знаком с основными инструментами для просмотра дизайн-макетов (например, Figma, Zeplin). Понимает важность пользовательского опыта в разработке. Способен реализовывать простые элементы интерфейса по готовым макетам.

⭐️⭐️🌟 Реализует пользовательские интерфейсы средней сложности по готовым макетам. Применяет принципы responsive design в вёрстке. Понимает и использует сетки в разработке. Умеет работать с системами контроля версий (например, Git). Реализует базовую доступность (accessibility) в вёрстке. Понимает основы оптимизации производительности фронтенда.

🌟🌟🌟🌟 Разрабатывает сложные пользовательские интерфейсы на основе дизайн-макетов. Работает с дизайн-системами и компонентными библиотеками. Реализует сложные анимации и интерактивные элементы. Оптимизирует производительность фронтенда. Использует современные фреймворки и библиотеки. Эффективно коммуницирует с дизайнерами и понимает их требования.

🌟🌟🌟🌟🌟 Разрабатывает архитектуру фронтенд-приложений с учетом UX/UI требований. Участвует в обсуждениях UX/UI решений с точки зрения технической реализуемости. Оптимизирует процессы разработки для улучшения пользовательского опыта. Участвует в принятии технических решений, влияющих на пользовательский опыт. Может проводить базовый UX-аудит с технической точки зрения.

Заключение

Эта таблица — результат совместной работы специалистов, направленная на упрощение процесса поиска и оценки программистов WordPress. Она помогает работодателям быстро определить ключевые навыки и компетенции, необходимые для выполнения конкретных задач на проекте. Таблица учитывает как технические навыки, так и важные soft-навыки, которые имеют решающее значение в успешной работе в диджитал-среде.

Над разработкой таблицы участвовали следующие специалисты:

  • Попков Иван — руководитель диджитал-агентства WooPanda
  • Тимофеева Виктория — тимлид диджитал-агентства Fruktorum
  • Целикина Мария — менеджер проектов, компания Ассистент

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