From c09367da08355eef77e111c8e0d7f4c574764aee Mon Sep 17 00:00:00 2001 From: Dmitriy Dmitriev Date: Sun, 26 Sep 2021 19:41:23 +0300 Subject: [PATCH] Update Middle.md --- Grades/Middle.md | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/Grades/Middle.md b/Grades/Middle.md index 46a07d7..e7b494d 100644 --- a/Grades/Middle.md +++ b/Grades/Middle.md @@ -1 +1,31 @@ -# Middle C++ \ No newline at end of file +# Middle C++ + +## Кто это? + +Это человек, который понимает технический контекст разработки и который способен создать дизайн и решения для функционала внутри компонента/приложения даже в случае неполноты требований. + +В основном технические задачи решает. + +## Что ожидается по умению написания кода? + +- Компилятор и язык его больше не пугают и практически не приносят сюрпризов, а если и приносят, то способен самостоятельно генерировать гипотезы, проверять их и копать вглубь; +- Ориентируется в базовых концепциях языка и понимает, какие ещё языки существуют и чем они отличаются; +- Пишет понятный и поддерживаемый код; +- Знает базовые принципы дизайна и на их основе способен принять техническое решение; +- Понимает не только язык программирования, но и его технический контекст, то есть понимает весь технический цикл, через который проходит код и ориентируется в инструментах, которые помогают этот цикл поддерживать: + - Написание кода (IDE, текстовые редакторы, практики программирования, качество кода); + - Хранение исходного кода и продуктов (системы контроля версий, пакетные менеджеры, серверы); + - Компиляция (компиляторы, системы сборки, библиотеки); + - Тестирование (фреймворки, стратегии тестирования); + - Доставка; + - Выполнение (операционные системы); +- Глубже понимает и знает базовую информатику (структуры данных, конечные автоматы, алгоритмы). + +## Что ожидается по общим навыкам? + +- Способен самостоятельно ориентироваться в технической части проекта и принимать решения, которые вписываются в него; +- Понимает, когда нужно остановиться, чтобы не переусложнить решение; +- Способен формулировать и доносить идеи и мысли до других членов команды; +- Помогает другим членам команды. + +## Рекомендации и советы