Матрица пользователя : jamilabdullayev08
- Заполненных тем 31
- Заполненных навыков 128
- PHP docker CI/CD sql social php-vendors Frontend Auth Мягкие навыки Paradigms
- 3673
- 2024-12-08 21:06:13
Hard skills
Пет проекты и сервисы
-
GRASP
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Каталог шаблонов
-
Информационный эксперт (Information Expert)
-
Создатель (Creator)
-
Контроллер (Controller)
-
Слабое (низкое) зацепление (Low Coupling)
-
Сильная (высокая) связность (High Cohesion)
-
Полиморфизм (Polymorphism)
-
Чистая выдумка (Pure Fabrication)
-
Перенаправление (Indirection)
-
Устойчивость к изменениям (Protected Variations)
-
Информационный эксперт (Information Expert)
Шаблон определяет базовый принцип распределения ответственностей. Обязанности должны быть назначены объекту, который владеет максимумом необходимой информации для выполнения обязанности. Такой объект называется информационным экспертом.
Этот шаблон — самый очевидный и важный из девяти. Если его не учесть — получится спагетти-код, в котором трудно разобраться.
Локализация же ответственностей, проводимая согласно шаблону:
Повышает: Инкапсуляцию; Простоту восприятия; Готовность компонентов к повторному использованию; Снижает: степень зацепления.
- Создатель (Creator)
Проблема: Кто отвечает за создание объекта некоторого класса A?
Решение: Назначить классу B обязанность создавать объекты класса A, если класс B:
содержит(contains) или агрегирует(aggregate) объекты A; записывает(records) объекты A; активно использует объекты A; обладает данными для инициализации объектов A
Можно сказать, что шаблон «Creator» — это интерпретация шаблона «Information Expert» (смотрите пункт № 1) в контексте создания объектов.
Большинство порождающих шаблонов проектирования так или иначе выводятся или опираются на шаблон «Creator».
-
Контроллер (Controller)
Отвечает за операции, запросы которых приходят от пользователя, и может выполнять сценарии одного или нескольких вариантов использования (например, создание и удаление); Не выполняет работу самостоятельно, а делегирует компетентным исполнителям; Может представлять собой: Систему в целом; Подсистему; Корневой объект; Устройство.
-
Слабое (низкое) зацепление (Low Coupling) Основная статья: Зацепление (программирование)
Зацепление — мера того, насколько взаимозависимы разные подпрограммы или модули[2].
Сильное зацепление рассматривается как серьёзный недостаток, поскольку затрудняет понимание логики модулей, их модификацию, автономное тестирование, а также переиспользование по отдельности. Слабое зацепление, напротив, является признаком хорошо структурированной и хорошо спроектированной системы.
- Сильная (высокая) связность (High Cohesion) Основная статья: Связность (программирование)
Связность — мера силы взаимосвязанности элементов внутри модуля; способ и степень, в которой задачи, выполняемые некоторым программным модулем, связаны друг с другом[2].
Сильная связность класса / модуля означает, что его элементы тесно связаны и сфокусированы.
Слабая (низкая) связность класса / модуля означает, что он не сфокусирован на одной цели, его элементы предназначены для слишком многих несвязанных обязанностей. Такой модуль трудно понять, использовать и поддерживать.
- Полиморфизм (Polymorphism) См. также: Полиморфизм (информатика)
Устройство и поведение системы:
Определяется данными; Задано полиморфными операциями её интерфейса.
Пример: Адаптация коммерческой системы к многообразию систем учёта налогов может быть обеспечена через внешний интерфейс объектов-адаптеров (см. также: Шаблон «Адаптеры»).
- Чистая выдумка (Pure Fabrication)
Не относится к предметной области, но:
Уменьшает зацепление; Повышает связность; Упрощает повторное использование.
«Pure Fabrication» отражает концепцию сервисов в модели предметно-ориентированного проектирования.
Пример задачи: Не используя средства класса «А», внести его объекты в базу данных.
Решение: Создать класс «Б» для записи объектов класса «А» (см. также: «Data Access Object»).
- Перенаправление (Indirection) См. также: Посредник (шаблон проектирования)
Слабое зацепление между элементами системы (и возможность повторного использования) обеспечивается назначением промежуточного объекта их посредником.
Пример: В архитектуре Model-View-Controller, контроллер (англ. controller) ослабляет зацепление данных (англ. model) с их представлением (англ. view).
- Устойчивость к изменениям (Protected Variations) Шаблон защищает элементы от изменения другими элементами (объектами или подсистемами) с помощью вынесения взаимодействия в фиксированный интерфейс, через который (и только через который) возможно взаимодействие между элементами. Поведение может варьироваться лишь через создание другой реализации интерфейса.
https://ru.wikipedia.org/wiki/GRASP https://habr.com/ru/articles/92570/
-
Функциональное программирование
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Функциона́льное программи́рование — парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании).
Противопоставляется парадигме императивного программирования, которая описывает процесс вычислений как последовательное изменение состояний (в значении, подобном таковому в теории автоматов). При необходимости, в функциональном программировании вся совокупность последовательных состояний вычислительного процесса представляется явным образом, например, как список.
https://ru.wikipedia.org/wiki/Функциональное_программирование
-
Структурное программирование
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Парадигма программирования, в основе которой лежит представление программы в виде иерархической структуры блоков.
Объе́ктно ориенти́рованное программи́рование (сокр. ООП) — методология или стиль программирования на основе описания типов/моделей предметной области и их взаимодействия, представленных порождением из прототипов или как экземпляры классов, которые образуют иерархию наследования.
При создании программных систем использование принципов SOLID способствует созданию такой системы, которую будет легко поддерживать и расширять в течение долгого времени. Принципы SOLID — это руководства, которые также могут применяться во время работы над существующим программным обеспечением для его улучшения, например, для удаления «дурно пахнущего кода».
-
Принципы ООП
- Джун: Может объяснить базовые принципы.
- Мидл: Разбирается в принципах ООП.
- Синьор: Может на лафкодинге показать пример принципов ООП.
Принципы:
- Абстракция
- Инкапсуляция
- Наследование (Делегация, Композиция, Агрегация)
- Полиморфизм
Знания на сеньора:
- Динамическое связывание методов
- Динамическое создание и уничтожение объектов
- Значительная глубина абстракции
- Наследование «размывает» код
- Инкапсуляция снижает скорость доступа к данным
https://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование
-
SOLID - S
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Знаю - знаю определение Понимаю - привести пример и досконально объяснить суть.
https://ru.wikipedia.org/wiki/Принцип_единственной_ответственности
-
SOLID - O
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
SOLID - L
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
SOLID - I
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
SOLID - D
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
https://habr.com/ru/companies/dataart/articles/262817/
https://gist.github.com/zmts/802dc9c3510d79fd40f9dc38a12bccfc?permalink_comment_id=4823694
-
Cookie/Session
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
Token (Barrier)
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
https://ru.wikipedia.org/wiki/Токен_(авторизации)
https://habr.com/ru/articles/534092/
https://ru.hexlet.io/qna/glossary/questions/bearer-token-chto-eto
-
OpenAuth
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
OpenAPI
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
REST(FULL) API
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
SOAP
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
WSDL
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
WebSocket
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
WebSocket — это протокол двусторонней связи для постоянного обмена сообщениями клиента и сервера. Как и HTTP, WebSocket работает поверх TCP. Но вместо периодического соединения формата «запрос – ответ», держит постоянное соединение с сервером. Поэтому сервер всегда знает конкретного клиента «в лицо» и может отправить ему данные без дополнительного запроса. Например, используется для систем оповещений и чатов браузерных игр.
До появления полноценного стандарта подобные задачи решались двумя способами. Первый, периодические запросы «у меня есть новые сообщения» — но этот способ фактически мертв. Второй, Long-polling запросы — сервер не ограничен по времени, в течении которого он должен отдать ответ. Когда сервер получает запрос, он ответит на него, когда данные будут доступны для отправки. А браузер, в свою очередь, как только получит эти данные, сразу же делает новый запрос. Для конечного пользователя это выглядит как постоянное соединение с сервером.
В отличие от gRPC, вам не нужно будет изучать какой-то специфический формат обмена данными. WebSocket использует свой собственный бинарный формат, внутри которого вы можете передавать что угодно в удобной для вашего приложения форме.
Общение через WebSocket может быть реализовано по принципам REST — HTTP-метод + ресурс + тело запроса. Или реализовано, как JSON-RPC — имя процедуры + список параметров. Либо вовсе использовать GraphQL — называется «подпиской» (subscription).
Самое частое применение WebSocket — real-time чаты. Новое сообщение получатель видит, когда сервер рассылает сообщения всем адресатам, а не когда запрашивает сам. Библиотеки для WebSocket-сервера существуют почти для всех языков и их фреймворков. Вопрос будет только в выборе самого популярного и/или удобного лично для вас.
https://developer.mozilla.org/ru/docs/Web/API/WebSockets_API https://learn.javascript.ru/websockets
software development process or software development life cycle (SDLC)
https://ru.wikipedia.org/wiki/Процесс_разработки_программного_обеспечения
-
Agile
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Гибкие методологии разработки (англ. agile software development, agile-разработка) — обобщающий термин для целого ряда подходов и практик, основанных на ценностях Манифеста гибкой разработки программного обеспечения и 12 принципах, лежащих в его основе[1].
К гибким методикам, в частности, относят экстремальное программирование, DSDM, Scrum, FDD, BDD и другие.
Большинство гибких методик нацелены на минимизацию рисков путём сведения разработки к серии коротких циклов, называемых итерациями, которые обычно длятся две-три недели. Каждая итерация сама по себе выглядит как программный проект в миниатюре и включает все задачи, необходимые для выдачи мини-прироста по функциональности: планирование, анализ требований, проектирование, программирование, тестирование и документирование. Хотя отдельная итерация, как правило, недостаточна для выпуска новой версии продукта, подразумевается, что гибкий программный проект готов к выпуску в конце каждой итерации. По окончании каждой итерации команда выполняет переоценку приоритетов разработки.
Agile-методы делают упор на непосредственном общении лицом к лицу. Большинство agile-команд расположены в одном офисе, иногда называемом англ. bullpen. Как минимум, она включает и «заказчиков» (англ. product owner — заказчик или его полномочный представитель, определяющий требования к продукту; эту роль может выполнять менеджер проекта, бизнес-аналитик или клиент). Офис может также включать тестировщиков, дизайнеров интерфейса, технических писателей и менеджеров.
Основной метрикой agile-методов является рабочий продукт. Отдавая предпочтение непосредственному общению, agile-методы уменьшают объём письменной документации по сравнению с другими методами. Это привело к критике этих методов как недисциплинированных.
-
Scrum
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Scrum (/skrʌm/[1]; англ. scrum «схватка») — легкий фреймворк, который помогает людям, командам и организациям создавать ценность с помощью адаптивных решений комплексных проблем.
https://ru.wikipedia.org/wiki/Scrum https://practicum.yandex.ru/blog/chto-takoe-scrum-metodologiya/
-
Канбан
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Канбан (от яп. 看板 «рекламный щит, вывеска») — метод управления разработкой, реализующий принцип «точно в срок» и способствующий равномерному распределению нагрузки между работниками. При данном подходе весь процесс разработки прозрачен для всех членов команды. Задачи по мере поступления заносятся в отдельный список, откуда каждый разработчик может извлечь требуемую задачу.
Design Patterns, описанные в книге "Банды четырех"
-
Абстрактная фабрика
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
https://ru.wikipedia.org/wiki/Абстрактная_фабрика_(шаблон_проектирования)
-
Строитель
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
https://ru.wikipedia.org/wiki/Строитель_(шаблон_проектирования)
-
Фабричный метод
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
https://ru.wikipedia.org/wiki/Фабричный_метод_(шаблон_проектирования)
-
Прототип
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
https://ru.wikipedia.org/wiki/Прототип_(шаблон_проектирования)
-
Одиночка
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
https://ru.wikipedia.org/wiki/Одиночка_(шаблон_проектирования)
-
Фасад
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
Шаблонный метод
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
https://ru.wikipedia.org/wiki/Шаблонный_метод_(шаблон_проектирования)
-
Шаблон функционального дизайна
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
https://ru.wikipedia.org/wiki/Шаблон_функционального_дизайна
Шаблоны используемы в построении архитектуры
-
MVC
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Model-View-Controller (MVC, «Модель-Представление-Контроллер», «Модель-Вид-Контроллер») — схема разделения данных приложения и управляющей логики на три отдельных компонента: модель, представление и контроллер — таким образом, что модификация каждого компонента может осуществляться независимо.
Модель (Model) предоставляет данные и реагирует на команды контроллера, изменяя своё состояние. Представление (View) отвечает за отображение данных модели пользователю, реагируя на изменения модели. Контроллер (Controller) интерпретирует действия пользователя, оповещая модель о необходимости изменений.
-
Model-View-ViewModel
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
todo
-
DAO (Data Access Object)
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
- примеры где используется
-
Active Record
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
todo
-
Data Mapper
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
todo
-
Lazy Load
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
todo
-
Repository/Хранилище.
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
TODO
https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D1%82%D0%B8%D0%BF%D0%B0%D1%82%D1%82%D0%B5%D1%80%D0%BD
https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D1%82%D0%B8%D0%BF%D0%B0%D1%82%D1%82%D0%B5%D1%80%D0%BD
https://ru.wikipedia.org/wiki/%D0%90%D0%BD%D1%82%D0%B8%D0%BF%D0%B0%D1%82%D1%82%D0%B5%D1%80%D0%BD
-
Ненужная сложность
- Знаю: Знаю что это, читал/изучал.
Внесение ненужной сложности в решение.
-
Жёсткое кодирование
- Знаю: Знаю что это, читал/изучал.
Hard code: Внедрение предположений об окружении системы в слишком большом количестве точек её реализации.
-
Мягкое кодирование
- Знаю: Знаю что это, читал/изучал.
Soft code: Патологическая боязнь жёсткого кодирования, приводящая к тому, что настраивается всё что угодно, при этом конфигурирование системы само по себе превращается в программирование.
-
Волшебные числа
- Знаю: Знаю что это, читал/изучал.
Magic numbers: Использование числовых констант без объяснения их смысла.
-
Спагетти-код
- Знаю: Знаю что это, читал/изучал.
Spaghetti code, иногда «макароны»: Код с чрезмерно запутанным порядком выполнения.
-
Лазанья-код
- Знаю: Знаю что это, читал/изучал.
Lasagnia code, или «лук» (onion): Чрезмерное связывание между собой уровней абстракции, приводящее к невозможности изменения одного уровня без изменения остальных.
-
Равиоли-код
- Знаю: Знаю что это, читал/изучал.
Ravioli code, или «пельмени»: Объекты настолько «склеены» между собой, что практически не допускают рефакторинга.
-
Вызов предка
- Знаю: Знаю что это, читал/изучал.
Call super: Для реализации прикладной функциональности методу класса-потомка требуется в обязательном порядке вызывать те же методы класса-предка.
-
Божественный объект
- Знаю: Знаю что это, читал/изучал.
God object: Концентрация слишком большого количества функций в одной части системы (классе).
-
Каша из интерфейсов
- Знаю: Знаю что это, читал/изучал.
Interface soup: Объединение нескольких интерфейсов, разделенных согласно принципу изоляции интерфейсов (Interface segregation), в один.
https://proglib.io/tests/proydi-test-na-znanie-algoritmov-i-struktur-dannyh
https://education.yandex.ru/handbook/algorithms https://apptractor.ru/info/articles/6-algoritmov-kotorye-dolzhen-znat-kazhdyy-razrabotchik.html https://codechick.io/tutorials/dsa/dsa-algorithm
-
Асимптотический анализ / Сложность
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Асимптотический анализ показывает порядок роста алгоритма - как увеличивается время работы алгоритма при увеличении объема входных данных. По факту измеряем не время, а число операций, например - сравнения,присваивания,выделение памяти. Обычно измеряется наихудший случай выполнения, если не оговорено иное. Записывается, как O(n) (О нотация, О большое) . Примеры:
Константный — O(1) Линейный — O(n) Логарифмический — O( log n) Линеарифметический — O(n·log n) Квадратичный — O(n 2) И другие
https://education.yandex.ru/handbook/algorithms/article/algoritmy-i-slozhnost
-
Динамическое программирование
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Динамическое программирование — способ решения сложных задач путём разбиения их на более простые подзадачи. Он применим к задачам с оптимальной подструктурой, выглядящим как набор перекрывающихся подзадач, сложность которых чуть меньше исходной. В этом случае время вычислений, по сравнению с «наивными» методами, можно значительно сократить.
Ключевая идея в динамическом программировании достаточно проста. Как правило, чтобы решить поставленную задачу, требуется решить отдельные части задачи (подзадачи), после чего объединить решения подзадач в одно общее решение. Часто многие из этих подзадач одинаковы. Подход динамического программирования состоит в том, чтобы решить каждую подзадачу только один раз, сократив тем самым количество вычислений. Это особенно полезно в случаях, когда число повторяющихся подзадач экспоненциально велико.
Метод динамического программирования сверху — это простое запоминание результатов решения тех подзадач, которые могут повторно встретиться в дальнейшем. Динамическое программирование снизу включает в себя переформулирование сложной задачи в виде рекурсивной последовательности более простых подзадач.
-
Рекурсия
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Рекурсия – это когда функция вызывает сама себя(напрямую или через функцию посредника), как правило, с другими аргументами. Рекурсия помогает писать код более компактно и понятно, однако имеет оверхэд по памяти из-за необходимости хранить стек вызова. Для оптимизации можно переписать алгоритм используя циклы - любая рекурсия может быть переделана в цикл, как правило, вариант с циклом будет эффективнее. Также есть хвостовая рекурсия.
Хвостовая рекурсия — частный случай рекурсии, при котором любой рекурсивный вызов является последней операцией перед возвратом из функции. Подобный вид рекурсии примечателен тем, что может быть легко заменён на итерацию путём формальной и гарантированно корректной перестройки кода функции. Оптимизация хвостовой рекурсии путём преобразования её в плоскую итерацию реализована во многих оптимизирующих компиляторах. В некоторых функциональных языках программирования спецификация гарантирует обязательную оптимизацию хвостовой рекурсии.
-
Разделяй и властвуй
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Разделяй и властвуй(divide and conquer) — важная парадигма разработки алгоритмов, заключающаяся в рекурсивном разбиении решаемой задачи на две или более подзадачи того же типа, но меньшего размера, и комбинировании их решений для получения ответа к исходной задаче; разбиения выполняются до тех пор, пока все подзадачи не окажутся элементарными.
Типичный пример — алгоритм сортировки слиянием. Чтобы отсортировать массив чисел по возрастанию, он разбивается на две равные части, каждая сортируется, затем отсортированные части сливаются в одну. Эта процедура применяется к каждой из частей до тех пор, пока сортируемая часть массива содержит хотя бы два элемента (чтобы можно было её разбить на две части).
Алгоритм стоит из 3 шагов:
- Разделяй. Разделяем задачу на подзадачи с помощью рекурсии.
- Властвуй. Как только задачи станут достаточно малы — рекурсивно решаем.
- Объединяй. Объединяем все подзадачи в одно целое, чтобы получить решение исходной задачи.
-
Стэк(Stack)
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Cтруктура данных, организованная по принципу "последний пришел, первый ушел" (LIFO). Элементы добавляются и удаляются с одного конца структуры.
Преимущества:
- Простота реализации
- Легкость использования в рекурсии и отката операций
Недостатки:
- Ограниченный доступ к элементам (только к вершине стека)
Применение:
- Стеки полезны при выполнении рекурсивных функций, обработке скобочных последовательностей и отмене операций.
-
Очередь (Queue)
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Структура данных, организованная по принципу "первый пришел, первый ушел" (FIFO). Элементы добавляются в конец очереди и удаляются из начала.
Преимущества:
- Поддержка естественного порядка обработки элементов
- Применение в алгоритмах обхода и поиска
Недостатки:
- Ограниченный доступ к элементам (только к началу и концу очереди)
Применение:
- Очереди используются в алгоритмах обхода в ширину, приоритетных очередях и многопоточных приложениях для обработки задач.
Виды:
- Простая очередь
- Круговая очередь
- Очередь с приоритетом
- Двухсторонняя очередь https://codechick.io/tutorials/dsa/dsa-queue
-
Массивы (Arrays)
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Массивы – это простейшая структура данных, представляющая собой набор элементов одного типа, расположенных последовательно в памяти. Хранит набор значений (элементов массива), идентифицируемых по индексу или набору индексов, принимающих целые (или приводимые к целым) значения из некоторого заданного непрерывного диапазона.
Преимущества:
Быстрый доступ к элементам по индексу Непрерывная область памяти
Недостатки:
Фиксированный размер Неэффективное добавление/удаление элементов
Применение: Массивы подходят для хранения набора данных с фиксированным размером, где операции вставки и удаления элементов не требуются.
-
Сортировка вставками / Insertion sort
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Элементы входной последовательности просматриваются по одному, и каждый новый поступивший элемент размещается в подходящее место среди ранее упорядоченных элементов.
-
Сортировка выбором / Selection sort
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
На очередной итерации будем находить минимум в массиве после текущего элемента и менять его с ним, если надо. Таким образом, после i-ой итерации первые i элементов будут стоять на своих местах. Нужно отметить, что эту сортировку можно реализовать двумя способами – сохраняя минимум и его индекс или просто переставляя текущий элемент с рассматриваемым, если они стоят в неправильном порядке.
https://backendinterview.ru/algostruct/graph.html https://backendinterview.ru/algostruct/index.html
https://habr.com/ru/companies/otus/articles/770248/ https://habr.com/ru/companies/otus/articles/782064/ https://habr.com/ru/companies/ruvds/articles/732648/
Криптогра́фия — наука о методах обеспечения конфиденциальности (невозможности прочтения информации посторонним), целостности данных (невозможности незаметного изменения информации), аутентификации (проверки подлинности авторства или иных свойств объекта), а также невозможности отказа от авторства.
https://habr.com/ru/articles/549054/ https://habr.com/ru/articles/587620/ https://xbsoftware.ru/blog/metodologii-testirovaniya-po-kakuyu-vybrat/
-
Функциональные тесты
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Функциональные тесты
-
Тестирование производительности
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Тестирование производительности
Технологии используемые в разработке для развертывания и деплоя
-
Gitlab CI/CD
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
-
Github CI/CD
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
-
Blue-green deployment
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
-
Консольные команды
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
run, exec, ps, kill, stop, rm, rmi, volume, images, pull, compose, logs
-
Dickerfile - сборка образов
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
Самостоятельная подготовка образа. Знание назначение большинства команд, и отличие CMD, RUN и ENTRYPOINT.
-
Multi-Stage build
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
Понимание как работает кэширование и сборка образа, многоступенчатая сборка.
-
Docker-compose
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
- Команды
- Настройка docker-compose.yml
- Принципы работы с сетью
https://habr.com/ru/companies/ruvds/articles/450312/ https://docs.docker.com/compose/
https://habr.com/ru/articles/258443/ https://kubernetes.io/ru/docs/concepts/overview/what-is-kubernetes/
- Сервисы метрик и логирования
Базы данны SQL, NoSQL и сервисы очередей
-
Mongo
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Mongo
-
RabbitMQ
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
RabbitMQ
-
Kafka
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
-
Redis
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
- Строка (String)
- Битовый массив (Bitmap)
- Битовое поле (Bitfield)
- Хеш-таблица (Hash)
- Список (List)
- Множество (Set)
- Упорядоченное множество (Sorted set)
- Геопространственные данные (Geospatial)
- Структура HyperLogLog (HyperLogLog)
- Поток (Stream)
https://habr.com/ru/articles/204354/ https://redis.io/docs/latest/
-
Виды отношений таблиц
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
- один к одному
- один ко многим
- многие к одному
- многие ко многим
-
Репликация
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
- Блочная репликация - При блочной репликации каждая операция записи выполняется не только на основном диске, но и на резервном. Таким образом тому на одном массиве соответствует зеркальный том на другом массиве, с точностью до байта повторяющий основной том
- Физическая репликация - Журналы (redo log или write-ahead log) содержат все изменения, которые вносятся в файлы базы данных. Идея физической репликации состоит в том, что изменения из журналов повторно выполняются в другой базе (реплике), и таким образом данные в реплике повторяют данные в основной базе байт-в-байт.
- Логическая репликация - Все изменения в базе данных происходят в результате вызовов её API – например, в результате выполнения SQL-запросов.
- Репликация триггерами - риггер – хранимая процедура, которая исполняется автоматически при каком-либо действии по модификации данных.
- Прикладная репликация - формирование векторов изменений непосредственно на стороне клиента. Клиент должен формировать детерминированные запросы, затрагивающие единственную запись.
https://ru.wikipedia.org/wiki/Репликация_(вычислительная_техника)
-
Внешний ключ
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Foreign key Внешние ключи позволяют установить связи между таблицами. Внешний ключ устанавливается для столбцов из зависимой, подчиненной таблицы, и указывает на один из столбцов из главной таблицы. Как правило, внешний ключ указывает на первичный ключ из связанной главной таблицы.
https://ru.wikipedia.org/wiki/Внешний_ключ https://metanit.com/sql/mysql/2.5.php
-
NOSQL
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
not only SQL — не только SQL
-
Join
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
- left
- right
- inner
- outer
-
Нормальная форма
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
- Первая НФ
- Вторая НФ
- Третья НФ
- Четвертая НФ
- Пятая НФ
- Шестая НФ
- денормализация
Транзакционные базы данных (базы, работающие через транзакции) выполняют требования ACID, которые обеспечивают безопасность данных.
https://habr.com/ru/articles/537594/ https://ru.wikipedia.org/wiki/Транзакция_(информатика)
-
Движки таблиц
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
- MyIsam
- InnoDb
- Memory
- ...
-
Типы индексов
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
-
R-Tree (Пространственный индекс) https://ru.wikipedia.org/wiki/R-дерево_(структура_данных)
-
Hash index
-
Inverted index
-
Уникальный индекс (Unique Index)
-
Полнотекстовый индекс (Full-Text Index)
-
Составной индекс
-
Кластеризованные
-
некластеризованные
https://timeweb.cloud/tutorials/sql/indeksy-v-sql-sozdanie-vidy-i-kak-rabotayut https://www.mysql.ru/docs/man/MySQL_indexes.html https://habr.com/ru/articles/556440/
https://habr.com/ru/companies/tensor/articles/779698/ https://habr.com/ru/articles/340460/
Знания языка программирования PHP
-
Типы данных PHP
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
- Атомарные
- Составные
- Пересечение
- Объединение
- Псевдонимы
https://www.php.net/manual/ru/language.types.type-system.php
-
Магические методы
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
Static/Self/parent
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
https://www.php.net/manual/ru/language.oop5.late-static-bindings.php https://www.php.net/manual/ru/language.oop5.static.php
-
Генераторы/Итераторы
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
https://www.php.net/manual/ru/language.generators.overview.php https://www.php.net/manual/ru/language.oop5.iterations.php https://www.php.net/manual/ru/class.iterator.php
-
Трейты
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
l
-
Исключения
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
- Встроенные классы исключений.
- Try/Catch/Finally
- Стрелочные функции
- Тернарный оператор
-
Анонимны/Лямбда функции
- Использую: Знаю что это и как ими пользоваться
- Продвинутые знания: Понимаю особенности.
-
Атрибуты
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
Ковариантность и контравариантность
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
PDO
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
xDebug
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
Обработка ошибок
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
- errorclearlast
- errorgetlast
- error_log
- error_reporting
- seterrorhandler
- restoreerrorhandler
- setexceptionhandler
- restoreexceptionhandler
- trigger_error
- user_error
-
Паралельнные процессы
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
-
Symfony
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
Symfony предлагает быструю разработку и управление веб-приложениями, позволяет легко решать рутинные задачи веб-программиста. Работает только с PHP 5 и выше. Имеет поддержку множества баз данных (MySQL, PostgreSQL, SQLite или любая другая PDO-совместимая СУБД). Информация о реляционной базе данных в проекте должна быть связана с объектной моделью. Это можно сделать при помощи ORM инструмента. Symfony поставляется с двумя из них: Propel и Doctrine.
Symfony бесплатен и публикуется под лицензией MIT.
-
Laravel
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
Laravel — бесплатный веб-фреймворк с открытым кодом, предназначенный для разработки с использованием архитектурной модели MVC (англ. Model View Controller — модель-представление-контроллер). Laravel выпущен под лицензией MIT.
-
Yii 2/3
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
Yii (произносится [ji:] и часто пишется по рус. йии]) — объектно-ориентированный компонентный фреймворк, реализующий парадигму MVC
-
CodeIgniter
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
PHP vendors
-
Composer
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
Composer — пакетный менеджер уровня приложений для языка программирования PHP, который предоставляет средства по управлению зависимостями в PHP-приложении. Composer разработали и продолжают поддерживать два программиста Nils Adermann и Jordi Boggiano. Они начали разрабатывать Composer в апреле 2011, а первый релиз состоялся 1 марта 2012. Идея создания пакетных менеджеров уровня приложений не нова и его авторы вдохновлялись уже существовавшими на тот момент времени npm для Node.js и bundler для Ruby.
Composer работает через интерфейс командной строки и устанавливает зависимости (например библиотеки) для приложения. Он также позволяет пользователям устанавливать PHP-приложения, которые доступны на packagist.org, который является его основным репозиторием, где содержатся все доступные пакеты.
-
PSR standart
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
- PSR1 - Basic Coding Standard
- PSR12 - Extended Coding Style Guide
- PSR3 - Logger Interface
- PSR4 - Autoloading Standard
- PSR6 - Caching Interface
- PSR16 - Simple Cache
- PSR7 - HTTP Message Interface
- PSR15 - HTTP Handlers
- PSR18 - HTTP Client
- PSR11 - Container Interface
- PSR13 - Hypermedia Links
- PSR14 - Event Dispatcher
- PSR17 - HTTP Factories
- PSR20 - Clock
-
PHPUnit
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
-
GuzzleHttp
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Навыки связанные с client-side разработкой
-
Минификация
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Cжатие js/css кода для ускорения загрузки
https://sky.pro/wiki/javascript/minimizaciya-i-obuedinenie-css-i-js/
-
Транспиляция
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Преобразование кода на новую версию или другой язык
-
Code Splitting
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Разделение кода на пакеты, чтоб загружать его по мере необходимости.
Применяется совместно с Lazy Loading
-
Lazy Loading
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Загрузка кода по частям по мере необходимости.
Применяется совместно с Code Splitting
-
Форматы изображений
- Знакомо: Имею общее представление о большинстве форматах
- Знаю: Знаю плюсы и минусы основных форматов jpg, png, gif, svg, ico
- Понимаю: Понимаю и могу объяснить как устроены алгоритмы сжатия в различных форматах.
Растровые и векторные форматы изображений (jpg, png, gif, svg, ico, tiff, avif, apng, hiec, webp, bmp, raw и т.д.).
Оптимизация и особенности применения.
-
SVG
- Знаю: Базовый синтаксис и принцип работы
- Понимаю и применяю: Могу поменять текст, сформировать новое изображение с нуля, анимировать графику
-
Оптимизация загрузки ресурсов
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
способы подключения ресурсов (async/defer, prefetch/preload)
Preload, prefetch и другие теги https://habr.com/ru/articles/445264/
Разница между async и defer у тега script https://wp-kama.ru/id_12151/raznitsa-async-defer.html
Как быстрее DOM построить: парсинг, async, defer и preload https://habr.com/ru/articles/338840/
-
CDN
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Хранение статики
https://learn.javascript.ru/first-steps https://habr.com/ru/companies/ruvds/articles/416375/
-
cookie, sessionStorage и localStorage
- Джун: Начальные/Поверхностные знания.
- Мидл: Средние знания. Можете объяснить суть и есть опыт применения..
- Сеньор: Продвинутые знания. Можете показать на примере, знаете нюансы и можете научить.
Разница и ограничения cookie, sessionStorage и localStorage.
https://learn.javascript.ru/localstorage?ysclid=m4f9fptrr1171420958
-
let, var и const
- Знаю: Знаю что это, читал/изучал.
Разница между let, var и const
-
Обработка ошибок и исключений
- Знаю: Знаю что это, читал/изучал.
Обработка ошибок и исключений
-
Event loop
- Знаю: Знаю что это, читал/изучал.
Event loop
https://habr.com/ru/companies/piter/articles/820027/ https://habr.com/ru/companies/macloud/articles/559902/
https://itanddigital.ru/bloghrconsulting/tpost/o9gce6b1b1-50-osnovnih-voprosov-i-otvetov-na-sobese
Webpack — это модульный сборщик (bundler) с открытым исходным кодом, написанный на JavaScript.
Он берёт несколько скриптов JavaScript с их зависимостями и объединяет в файл, который используется браузером.
Преимущества Webpack:
ускоряет разработку, убирая необходимость постоянно перезагружать веб-страницу при изменениях в JS-файлах;
обеспечивает разделение кода на отдельные модули, которые можно переиспользовать внутри веб-приложения;
позволяет избежать проблем с перезаписью глобальных переменных;
поддерживает минификацию, то есть сокращение объёма кода без изменения его функциональности;
умеет работать с разными спецификациями модулей.
-
Псевдо-классы
- Знаю: Знаю что это, читал/изучал.
псевдо-классы
-
Нормализаця стилей
- Знаю: Знаю что это, читал/изучал.
нормализаця стилей
-
animation,transition,transform
- Знаю: Знаю что это, читал/изучал.
animation,transition,transform
CSS фреймворки
Навыки по разработке приложений для Android
Навыки по разработке приложений на iOS, для iPhone , iMac
https://help.ubuntu.com/kubuntu/desktopguide/ru/linux-basics.html https://habr.com/ru/articles/655275/
Сетевые протоколы (IP, Transport, etc)
-
TCP/IP
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
TCP/IP
-
DNS
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
DNS
Soft skills
-
Таим менеджмент
- Базовые понятия: Умеете планировать свою жизнь и дела на 1-2 дня, есть абстрактные цели.
- Применяете методики: Знаете что такое VUCA, BANI или другой метод и используете его. Планируете свои дела на каждую неделю. Ставите цели минимум на 1 год. Переодический проводите ретроспективу и корректировку долгосрочных планов.
- Управляете временем: Время работает на вас. Вы наставник или можете быть им.
https://practicum.yandex.ru/blog/taym-menedzhment-kak-upravlyat-vremenem/
https://trends.rbc.ru/trends/education/606335659a7947a191c4b092
-
Самостоятельность
- Джун: Проактивно предупреждает о потенциальных проблемах, запрашивает помощь и так далее. Способен предоставлять отчет по задаче, когда спрашивают
- Мидл: Способен самостоятельно ставить себе задачи на протяжении длительного времени, занимаясь только согласованием видения с "архитекторами" и "владельцами продукта"
- Синьор: Имеет четкое понимание приоритетов задач с точки зрения разработки. Прислушивается к приоритетам с точки зрения бизнеса, способен обеспечить "героические" усилия (деливери в ограниченные сроки) не путем сверхусилий команды, а путем совместного упрощения задач и т.п.
-
Менторство
- Джун: Способен отвечать на вопросы по проекту / технологиям. Способен делиться своими знаниями, в формате "здесь надо делать не так"
- Мидл: Способен эффективно обучать небольшую группу сотрудников. Составлять план развития.
- Синьор: Способен доносить знания неопределённо широкому кругу людей. Владеет навыками психологии-педагогики-групповой динамики для максимально эффективного менторинга
https://blog.karpachoff.com/kommunikativnye-navyki-kak-ih-razvit-i-uluchshit
-
Инициатор
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Иницирует коммуникации по мере возникновения проблем в текущих задачахи и в рамках действующих регламентов (стэндапы, ретроспективы и т.д.)
-
Аргументирование
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Способен оппонировать другим разработчикам, в том числе и вышестоящим, если уверен в своих аргументах. Отслеживает результаты коммуникаций в контексте конкретных действий
-
Эффективность
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Применяет инженерный подход в общении - коммуникации используются как эффективный инструмент достижения целей. В рабочих процессах полностью отсутсвуют коммуникации, которые не способствуют достижению конкретных целей
-
Эмоциональный интеллект
- Начальный уровень: Знаете все понемногу.
- Средний: У вас полностью прокачен навык "Самосознание".
- Высокий: Высокий уровень навыка "Самоконтроль" и "Эмпатия"
- Продвинутый: В полной мере владеете всеми навыками.
Это обширный навык который включает себя несколько других навыков:
- Самосознание: Восприятие эмоций. Способность осознавать и анализировать собственные эмоции, а также знание своих слабых и сильных сторон.
- Самоконтроль: Умение управлять своими эмоциями и сохранять эмоциональный баланс даже в критических ситуациях.
- Эмпатия: Понимание эмоций окружающих и способность общаться с другими с учетом их внутреннего состояния.
- Навыки отношений: Умение взаимодействовать с людьми, управлять их эмоциями, улаживать конфликты, работать в команде или возглавлять ее.
https://presium.pro/blog/what-is-emotional-intelligence https://journal.tinkoff.ru/emotional-intelligence/
-
Коммуникации
- Начальный уровень: Способность эффективно слушать и понимать других участников коммуникации, ясное и понятное выражение своих мыслей и идей, умение задавать вопросы и запрашивать уточнения для полного понимания задач и требований.
- Средний уровень: Грамотное и уверенное выступление перед аудиторией различного уровня сложности, адаптация к различным коммуникационным стилям и предпочтениям участников коммуникации, навыки убеждения и влияния на принятие решений и согласование с разными заинтересованными сторонами, способность конструктивно обрабатывать фидбэк и критику.
- Высокий уровень: Эффективное управление конфликтами и разрешение спорных ситуаций в коммуникации, умение адаптировать свой стиль коммуникации к разным культурным контекстам и международным командам, умение вести эффективные совещания и встречи, учитывая потребности и цели всех участников.
Устная, письменна, и чтение.
- Английский
Методы достижения целей
-
SMART
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
подход к постановке целей, который помогает выбрать формулировку желаемого результата, дает чувство направления и помогает организовать и достичь целей.
-
Метод Брайана Трэйси
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Метод Брайана Трэйси
Бизнес-анализ
-
Оформление ТЗ.
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Способен выполнить полный цикл бизнес-анализа, включая адекватное управление требованиями
-
Планирование
- Знаю: Знаю что это, читал/изучал.
- Понимаю: Понимаю (знаю достоинства и недостатки) и был опыт применения.
Планирование