Certificate of Hard&Soft Skills
]
[
This certificate is awarded to
Pavel Gorbach
upon the successfully completion of a program of study
course «‎Middle to Senior»‎
lasting 30 hours
Teacher of the course
]
[
Senior Unity Developer at Mad Brain Games
Svetlana Semenova
Developer since 2016. Has worked in various directions in large IT companies and startups but has settled on game development as it brings the most pleasure.


Specializations: developing game architecture from scratch, casual & NFT games, mentoring and engineer growth.
  • Senior Unity developer: Gismart
  • Unity Senior: Gulny
  • Unity Senior: Wowmaking
  • Unity Developer: Playtika
  • Lecturer: Hard & Soft Skills

Svetlana teaches and mentors game and level designers.
Engineering Manager at Orca Security
Rufat Khaslarov
Developer since 2012. Performed various roles from developer to software architect.
Specialization: web application development, micro service architecture, team growth and development, digital transformation.
  • Chief Software Engineer: EPAM
  • Engineering manager: EPAM
  • Team Lead: Liberty Globa
Tried himself in different directions: system/network administration, pentesting, but eventually settled on development.
Organized meetups and bootcamps. Creates training courses for engineers, mentors and advises developers.
Rufat has trained more than 100 developers over the past 5 years in the areas of "JavaScript Development", "AWS Basics" and "Full stack development with node.js ".
The course programme included:
]
[
1. Who is a senior developer and what are the differences between middle and lead roles?
2. Concepts of clean code, dirty code, refactoring, and architecture.
3. Basics of object-oriented programming (OOP).
4. The process of turning code into software.
5. Collaboration among developers in a team.
6. Working on projects.
7. Principles of writing clean code.
8. Class diagrams and tools for creating them.
9. Workshop.
10. Creational design patterns.
11. Structural design patterns.
12. Behavioral design patterns.
13. Refactoring techniques.
14. What constitutes good code architecture.
15. Project presentation.

Сертификат Hard&Soft Skills
]
[
Сертификат подтверждает, что
Павел Горбач
успешно окончил курс
«‎Middle to Senior» продолжительностью 30 часов
Преподаватель курса
]
[
Senior Unity Developer at Mad Brain Games
Светлана Семёнова
Разработчик с 2016 года. Работала в крупных IT компаниях и стартапах в разных направлениях, но остановилась на разработке игр, т.к. это приносит больше всего удовольствия.
Специализации: разработка игровой архитектуры с нуля, casual & nft games, менторство, рост инженера.
  • Senior Unity developer: Gismart
  • Unity Senior: Gulny
  • Unity Senior: Wowmaking
  • Unity Developer: Playtika
  • Преподаватель по Unity: Hard & Soft Skills
Светлана обучает и менторит гейм и левел дизайнеров.
Engineering Manager at Orca Security
Руфат Хасларов
Разработчик с 2012 года. Выполнял разные роли от разработчика до архитектора ПО.
Специализации: разработка веб приложений, микросервисная архитектура, рост и развитие команд, digital transformation.
  • Chief Software Engineer: EPAM
  • Engineering manager: EPAM
  • Team Lead: Liberty Globa
Пробовал себя в разных направлениях: системное/сетевое администрирование, пентестинг, но в итоге остановился на разработке.
Организовывал митапы и буткампы. Создает учебные курсы для инженеров, менторит и консультирует разработчиков.
Обучил более 100 разработчиков за последние 5 лет в направлениях «Разработка на JavaScript», «Основы AWS» и «Full stack разработка с node.js».
Пройденная программа курса
]
[
1. Кто такой сеньoр, отличия от middle и от lead

  • Рост и карьера разработчика
  • Куда дальше?
  • Технические навыки и качество
  • Способность к самостоятельной работе
  • Взаимодействие в команде
2. Понятия грязного, чистого кода, рефакторинга и архитектуры

  • Понятие компонента, абстракции и уровня абстракции
  • Понятие библиотеки, инструмента
  • Понятие архитектуры приложения
  • Принципы архитектуры: coupling и cohesion
  • Понятие шаблонов проектирования
  • Понятие грязного и чистого кода
  • Пример чистого кода
  • Пример грязного кода

3. Основы ООП

  • Историческая справка: от мнемокодов к ООП
  • Класс, поле, метод
  • Принципы ООП
  • Инкапсуляция
  • Наследование
  • Полиморфизм
  • Взаимодействие классов
  • Критика ООП
  • Функциональное программирование

4. Процесс превращения кода в ПО

  • Написание кода
  • Что такое программное обеспечение
  • Создание компонентов
  • Объединение компонентов
  • Unit-тестирование
  • Совместная разработка, git и code review
  • Основы git
  • Pull Request и процесс code review
  • Использование сторонних библиотек
  • Системы управления задачами

5. Взаимодействие разработчиков в команде

  • Основные характеристики команды
  • Коммуникации в команде
  • Незапланированные встречи
  • Почта
  • Code review
  • Концепция Гейта
  • Definition of Ready и Definition of Done
  • Agile, Scrum, Kanban
  • Рекомендации как общаться в команде

6. Работа над проектами

  • Организационные моменты
  • Выбор проекта
  • Тестовый фреймворк
  • Приложение
  • Продумывание структуры проекта
  • Работа над кодом
  • Создаем ПО из кода

7. Принципы написания чистого кода

  • Структура кода
  • Классы как компоненты
  • Приложение как набор компонент
  • KISS
  • DRY
  • YAGNI
  • SOLID на примерах
  • О принципах
  • Single Responsibility Principle
  • Open/Closed Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Inversion Principle
  • Шаблоны GRASP на примерах
  • О GRASP
  • Обобщенные
  • Без четких границ и структуры
  • Для чего
  • Обязанности и действия
  • Creator
  • Information Expert
  • Low Coupling
  • Controller
  • High Cohesion
  • Indirection
  • Polymorphism
  • Protected Variations
  • Pure Fabrication
  • Как пользоваться шаблонами проектирования
  • Подход к решению с помощью шаблонов
  • Шаблоны как способ повторного использования решений

8. Диаграммы классов и инструменты

  • Модель С4: знакомство
  • Карты кода
  • Диаграмма кода
  • Что такое UML
  • Типы UML диаграмм
  • Диаграмма классов
  • Диаграмма компонентов
  • Диаграмма последовательности
  • Почему важно визуализировать сложный код
  • Общие правила построения диаграмм
  • PlantUML
  • Что это такое
  • Как использовать для генерации кода

9. Воркшоп

Практическое занятие с преподавателем на котором вы порисуете код

10. Порождающие шаблоны проектирования

  • Factory Method
  • Abstract Factory
  • Builder
  • Prototype
  • Singleton
  • Dependency Injection
  • Lazy Initialization
  • Object poo

11. Структурные шаблоны проектирования

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy
  • Aggregate
  • Extensibility
  • Marker
  • Pipes and filters
  • Opaque pointer

12. Поведенческие шаблоны проектирования

  • Chain of Responsibility
  • Command
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template method
  • Visitor
  • Blackboard
  • Interpreter
  • Null object
  • Protocol Stack
  • Scheduled task
  • Single-serving visitor
  • Specification

13. Приемы рефакторинга

  • Процесс рефакторинга
  • Что делать перед рефакторингом
  • Почти TDD
  • После рефакторинга
  • Технический долг
  • Запахи кода
  • Приемы рефакторинга
  • Составление методов
  • Перемещение функций между классами
  • Организация данных
  • Упрощение условных выражений
  • Упрощение вызовов методов
  • Решение задач обобщения

14. Что такое хорошая архитектура кода

  • Отличия хорошей и плохой архитектуры кода
  • Размывание архитектуры
  • Рефакторинг архитектуры
  • Проблемы поддержания архитектуры

15. Презентация проекта

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