![Mind Map: Компетенции и план развития (gkv)](https://www.mindmeister.com/image/xlarge/3312309497/mind-map-gkv.png)
1. Личные (?) (добавить в компетенции потом)
1.1. Коммуникации
1.1.1. Коучинг
1.1.2. Управление конфликтами
1.1.3. Сотрудничество
1.1.4. Получение и оставление обратной связи
1.1.5. Нетворкинг
1.1.6. Работа с текстом
1.2. Развитие себя
1.2.1. Работа с привычками
1.2.2. Умение учиться
1.2.3. Рефлексия
1.3. Мышление
1.3.1. Принятие решений
1.3.2. Стратегическое видение
1.4. Тайм-менеджмент
1.4.1. Постановка личных целей
1.4.2. Управление приоритетами
1.4.3. Управление временем
2. Выполнение задач
2.1. Формулирование вопросов
2.2. Коммуникация с постановщиком задачи
2.3. Актуализация плана по задаче
2.4. Самостоятельное выполнения задачи от этапа постановки до приемки заказчиком
2.5. Владение Youtrack, ЖЦ, приоритеты
2.6. Своевременное запрашивание помощи
2.7. Выдерживание календарных сроков
2.8. Выполнение задачи за обозначенное время
2.9. Формирование техдолга
2.10. Публикация результатов выполнения задачи в понятном виде
2.10.1. По завершению задачи
2.10.2. По завершению дня
2.10.3. По ходу получения информации
3. Планирование
3.1. Планирование задач
3.1.1. На день
3.1.2. Спринт
3.1.3. Месяц
3.1.4. Полгода
3.1.5. Год
3.2. Личное планирование
3.2.1. Наличие направления для развития
3.2.2. Наличие плана саморазвития
3.2.3. Достижение целей саморазвития
3.2.3.1. По способу
3.2.3.1.1. с ментором
3.2.3.1.2. самостоятельно
3.2.3.2. По конечному результату
3.2.3.2.1. Регулярно
3.2.3.2.2. Редко
3.2.3.2.3. Никогда
4. PHP
4.1. Установка и настойка
4.1.1. Конфигурация
4.1.1.1. php.ini
4.1.1.1.1. время работы php скрипта
4.1.1.1.2. Максимальный размер загружаемого файла
4.1.1.1.3. Время жизни PHP сессии
4.1.1.1.4. Подключение расширений PHP
4.2. Основные конструкции языка
4.3. Типы данных
4.4. Классы и объекты
4.4.1. Знание встроенных классов
4.5. Исключения
4.5.1. Знание встроенных исключений
4.6. Пространства имён
4.7. Автозагрузка
4.7.1. Composer
4.7.2. PSR-4
4.8. Ссылки
4.9. Cookie, сессии
4.10. Работа с файлами
4.11. Работа с формами
4.12. Работа с базой данных
4.13. Работа с кэшем
4.14. Встроенные функции
4.14.1. Работа со строками
4.14.2. Работа с массивами
4.15. Работа с сетью
4.15.1. умение работать с Curl
4.16. Фоновые процессы
4.16.1. fork
4.16.2. zombie process
4.17. PHPDoc
4.18. Миграции версии
4.18.1. Различие между версиями PHP
4.19. Работа с почтой
4.20. Работа с изображениями
4.21. Интерфейсы
4.21.1. Знание встроенных интерейсов
4.22. Трейты
4.23. Standard PHP Library (SPL)
4.24. Работа из CLI
4.25. Регулярные выражения
5. Базы данных
5.1. SQL
5.1.1. DML
5.1.1.1. Подзапросы
5.1.1.2. JOINS
5.1.1.2.1. LEFT JOIN
5.1.1.2.2. RIGHT JOIN
5.1.1.2.3. INNER JOIN
5.1.1.2.4. FULL OUTER JOIN
5.1.1.3. Операция группировки (group by)
5.1.1.4. Операция объединения (union, union all)
5.1.2. DDL
5.1.2.1. создание баз
5.1.2.2. создание/измение таблиц
5.1.2.3. создание/изменение процедур
5.1.2.4. создание/изменение функций
5.2. Типы данных
5.3. Нормальные формы
5.4. Ключи
5.4.1. PK
5.4.2. FK
5.5. Индексы
5.5.1. Селективность
5.5.2. Типы индексов
5.5.2.1. Normal
5.5.2.2. Full Text
5.5.2.3. Spatial
5.6. Сканирование таблиц
5.7. Триггеры
5.8. Функции
5.9. Представления
5.10. Реляционная модель
5.11. Ограничения
5.11.1. UNIQUE
5.11.2. NOT NULL
5.11.3. CHECK
5.12. Миграции
5.13. Транзакции
5.14. Последовательности
5.14.1. AUTOINCREMENT
5.15. Временные таблицы
5.16. Оптимизация
5.16.1. EXPLAIN
5.17. Кэширование
5.18. Хранимые процедуры
5.19. Sphinx
5.19.1. Запросы
5.19.2. Индексация
5.19.2.1. Дельта-индексы
6. Системы контроля версий
6.1. Git
6.1.1. add, commit, push, pull, fetch, branch, merge
6.1.2. stash
6.1.3. rebase
6.1.4. cherry-pick
6.1.5. revert
6.1.6. gitflow
6.1.6.1. Знание регламента работы с GIT
6.1.6.1.1. Создание веток
6.1.6.1.2. Создание PR
6.1.6.1.3. Откат изменений (по закрытым задачам)
6.1.6.1.4. Разруливание конфликтов
6.1.7. Создание репозиториев
6.1.8. Работа с тэгами, версиями
6.1.9. Настройка сервера Git
6.1.10. Хуки -pre-commit -pre-push
6.2. SVN
6.2.1. svn up
6.2.2. svn checkout
6.2.3. svn commit
7. JavaScript (план)
7.1. Основные конструкции языка
7.2. Объекты
7.3. Типы данных
7.4. Стандарты
7.4.1. ES5
7.4.2. ES6
7.4.3. Поддержка браузерами
7.5. Остаточные параметры и операторы расширения
7.6. Замыкание
7.7. Функциии глобального объекта
7.8. Объект функции
7.9. Синтаксис "new Function"
7.10. Планирование setTimeout, setInterval
7.11. Декораторы, переадресация вызова Методы call/apply
7.12. Привязка констекста к функции
7.13. Стрелочные функции
7.14. Свойства объектов, их конфигурация
7.15. Прототипы, наследование
7.16. Классы
7.17. Обработка ошибок
7.18. Модули
7.19. Порядок обработки событий
7.20. Ассинхронность
7.20.1. Загрузки скриптов
7.20.2. Запросов
7.21. Обещания
7.22. Фреймворки и библиотеки
7.22.1. jQuery
7.22.2. Vue.js (в плане)
7.22.3. React (в плане)
7.22.4. Angular (в плане)
7.23. Отладка
7.24. Оптимизация загрузки веб-страниц
7.24.1. reflow
7.24.2. repaint
7.25. Пакетные менеджеры
7.25.1. npm
7.25.2. bower
7.26. Менеджеры задач
7.26.1. gulp
7.26.2. compass
7.27. Сборщики модулей
7.27.1. webpack
7.28. Транспиляторы
7.28.1. Babel
8. Бизнес
8.1. Структура компании
8.2. Ценности компании
8.3. Регламенты
8.3.1. Знание регламентов
8.3.2. Умение составлять регламенты
8.4. Умение понимать язык бизнеса
8.4.1. Умение объяснять бизнесу результат
8.4.2. Умение понимать бизнес-ценность задач
8.5. Знание продукта
8.5.1. Управление продуктом
8.5.1.1. Жизненный цикл разработки
8.5.1.2. Запуск продукта
8.5.1.3. Непрерывная интеграция
8.5.2. Понимание продукта
8.5.2.1. Знание рынка
8.5.2.2. Знание продукта
8.5.2.3. Знание пользователей
8.6. Построение цикла разработки
8.6.1. Разработка
8.6.1.1. Готовые подходы
8.6.1.1.1. Agile
8.6.1.2. Конструирование методологии
8.6.2. Получение задач
8.6.3. Выпуск задач
8.6.3.1. Дробление
8.6.3.2. Постановка
9. Безопасность
9.1. Основы информационное безопасности
9.2. Классификация атак
9.3. Социальная инженерия
9.4. Предотвращение вторжений
9.5. Контроль доступа
9.5.1. Аутентификация
9.5.2. Авторизация
9.6. Шифрование
9.7. Правила управления доступа
9.8. Защита от ботов
9.9. Межсетевые экраны
9.10. Мониторинг
9.11. Расследование инцидентов
9.12. Распространенные типы уязвимостей
10. Архитектура (бывш. Проектирование)
10.1. Сбор технических требований
10.2. Проектирование
10.2.1. Проектирование баз данных
10.2.1.1. Уровни проектирования
10.2.1.1.1. Концептуальный
10.2.1.1.2. Логический
10.2.1.1.3. Физический
10.2.1.2. Архитектура СУБД
10.2.1.2.1. MySQL
10.2.1.2.2. PostgeSQL ??
10.2.1.2.3. Redis ???
10.2.1.2.4. Различия между ними
10.2.2. Проектирование API
10.2.3. Проектирование web-приложений
10.2.4. Проектирование мобильный приложений
10.2.5. Шаблоны проектирования
10.2.5.1. Порождающие
10.2.5.2. Структурные
10.2.5.3. Поведенческие
10.2.5.4. DTO
10.2.6. ООП
10.2.6.1. Наследование
10.2.6.2. Инкапсуляция
10.2.6.3. Полиморфизм
10.2.6.4. Делигирование
10.2.6.5. Композиция
10.2.6.6. SOLID
10.2.6.6.1. SRP
10.2.6.6.2. OCP
10.2.6.6.3. LP
10.2.6.6.4. ISP
10.2.6.6.5. DIP
10.3. Составление схем
10.3.1. Блок-схемы
10.3.2. Классов
10.3.3. Взаимодействия (поведения)
10.3.4. ER-модель
10.4. Арихитектура логирования
10.4.1. Уровни логирования
10.5. Арихитектура кэширования
10.5.1. Уровни кэширования
10.6. Монолитная архитектура
10.7. Микросервисная архитектура (в процессе)
10.8. Архитектурное ревью
10.9. Обеспечение технического качества
10.9.1. Чистый код
10.9.2. Рефакторинг
10.9.2.1. Рефакторинг кода
10.9.2.2. Рефакторинг БД
10.9.2.3. Рефакторинг API
10.9.3. Управление техническим долгом
10.9.4. Чистая архитектура
10.10. !!! Структуры данных (план на будущее)
10.10.1. Древовидные
10.10.1.1. Бинарное дерево
10.10.1.2. B-дерево
10.10.1.3. Двоичная куча
10.10.2. Способы хранения древовидных стуктур
10.10.2.1. Список смежности
10.10.2.2. Таблица связей
10.10.2.3. Материализованный путь
10.10.2.4. Вложенное множество
10.10.3. Очередь
10.10.3.1. Связный список
10.10.3.1.1. Двухсторонний
10.10.3.1.2. Односторонний
10.10.3.2. С приоритетом
10.10.3.3. Реализация
10.10.3.3.1. Rabbit MQ
10.10.3.3.2. Kafka
10.10.4. Множество
10.10.5. Хэш-таблица
10.10.6. Массив
10.10.7. Стэк
10.10.8. Граф
10.10.8.1. Цикличные
10.10.8.2. Акцикличные
10.11. Алгоритмы
10.11.1. Поиск
10.11.2. Обход дерева
11. Управление знаниями
11.1. Техническая документация
11.1.1. Умение писать вики
11.2. Распространение знаний
11.2.1. Проведение митапов
11.2.2. Запись скринкастов
11.2.3. Публикация статей
12. Знание технологий
12.1. Выбор и контроль технологий
12.1.1. Понимание новых технологий
12.1.2. Умение выбирать технологию под задачу
12.1.3. Отслеживание новых технологий
12.1.4. Внедрение новых технологий в проект
12.2. Знание технологического стека команды
13. Автоматизация цикла разработки (бывш. DevOps)
13.1. Системное администрирование
13.1.1. Понимание основных концепций работы операционных систем
13.1.2. Работа с терминалом
13.1.3. Администрирование серверов
13.1.3.1. Веб-серверы
13.1.3.1.1. Кэширующие
13.1.3.2. Серверы баз данных
13.1.3.3. Проксирующие
13.1.3.4. Балансировщики нагрузки
13.1.3.5. Сетевые экраны
13.1.3.6. Резервное копирование
13.1.3.7. Облачные системы
13.1.3.7.1. AWS
13.1.3.7.2. Google Clound
13.1.3.7.3. Azure
13.1.3.7.4. Heroku
13.1.3.7.5. Yandex Cloud
13.1.4. Файловые системы
13.1.4.1. ceph
13.2. Инфраструктура как код
13.2.1. Управление конфигурацией
13.2.1.1. Terraform
13.2.2. Контроль версий
13.2.2.1. Github
13.2.2.2. Gitlub
13.2.3. Пакетирование программ
13.2.3.1. Docker
13.2.3.2. DockerHub
13.2.4. Развертывание
13.2.4.1. Teamcity
13.2.4.2. Jenkins
13.2.4.3. CI / CD pipeline
13.2.5. Запуск
13.2.5.1. Kubernetes
13.2.5.1.1. Rancher
13.2.5.1.2. Ingress
14. Верстка
14.1. HTML5
14.2. CSS3
14.3. Bootstrap
14.4. Верстка по колоночной сетке
14.5. БЭМ
14.6. Препроцессоры
14.6.1. SASS
14.6.2. SCSS
14.7. Адаптивная верстка
14.8. Кросс-браузерная верстка
15. Обеспечение качества продукта (бывш. Тестировани)
15.1. Код-ревью
15.2. Определение технического долга
15.3. Управление инцидентами
15.3.1. Откат
15.3.2. Экстра-фикс
15.3.3. Сопровождение переноса
15.4. Метрики и мониторинг
15.4.1. Zabbix
15.4.2. Мониторинг инфраструктуры
15.5. Тестирование
15.5.1. Нефункциональное тестирование
15.5.2. Скриншот-тестирование
15.5.2.1. Использование
15.5.2.2. Настройка
15.5.3. Оптимизация количества тестирования
15.5.4. Планирование тестирования
15.5.4.1. Расписание
15.5.4.2. Триггеры
15.5.5. Пирамида тестирования
15.5.5.1. Автоматизация тестирования API
15.5.5.2. Автоматизация тестирования GUI
15.5.5.3. Unit- Functional- тестирование
15.5.6. Тестирование внешний сервисов
15.5.7. Отказоустойчивость тестирования
15.5.7.1. Создание моков для тестирования внешних сервисов
15.5.7.2. Создание отдельных слоёв тестирования
15.5.8. Тестирование требований
15.5.9. Написание тест-кейсов
15.5.9.1. Use Case
15.5.9.2. Corner Case
15.5.10. Методологии
15.5.10.1. TDD
15.5.10.2. BDD (Behavior-driven development)
15.5.11. Фреймворки
15.5.11.1. Codeception
15.5.11.1.1. Тестовые объекты
15.5.11.1.2. Тестовые слои
15.5.11.2. PHPUnit
15.5.12. Test Managemanet системы
15.5.12.1. Allure