-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathskills.json
More file actions
207 lines (207 loc) · 19.6 KB
/
Copy pathskills.json
File metadata and controls
207 lines (207 loc) · 19.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
[
{
"name": "Основы",
"skills": [
{
"name": "Комментарии и документация кода",
"description": "Изучение различных способов комментирования кода в Python, включая однострочные комментарии (#), многострочные комментарии и документационные строки (docstrings). Правильное документирование помогает другим разработчикам понимать ваш код и облегчает его поддержку."
},
{
"name": "Переменные и типы данных",
"description": "Работа с различными типами данных в Python, включая числа (int, float), строки (str) и логические значения (bool). Понимание правил именования переменных, динамической типизации и преобразования типов данных."
},
{
"name": "Ввод и вывод данных",
"description": "Использование функции print() для вывода данных на экран с различными параметрами форматирования и функции input() для получения ввода от пользователя. Включает форматирование строк с помощью f-строк и метода format()."
}
]
},
{
"name": "Базовые операции",
"skills": [
{
"name": "Арифметические операторы",
"description": "Использование операторов +, -, *, /, //, %, ** для выполнения математических вычислений. Понимание разницы между делением с плавающей точкой (/) и целочисленным делением (//), а также правил приоритета операций."
},
{
"name": "Операторы сравнения",
"description": "Использование операторов ==, !=, >, <, >=, <= для сравнения значений и получения логических результатов. Понимание особенностей сравнения различных типов данных и объектов в Python."
},
{
"name": "Логические операторы",
"description": "Использование операторов and, or, not для выполнения логических операций и построения сложных условий. Понимание таблиц истинности и короткой схемы вычисления логических выражений."
},
{
"name": "Операторы присваивания",
"description": "Использование операторов =, +=, -=, *=, /=, //=, %=, **= для присваивания значений переменным и выполнения операций с присваиванием. Понимание различий между простым присваиванием и составными операторами."
}
]
},
{
"name": "Управляющие конструкции",
"skills": [
{
"name": "Условные операторы",
"description": "Использование конструкций if, elif, else для создания ветвлений в программе на основе условий. Включает написание вложенных условных операторов и использование тернарных операторов для компактной записи простых условий."
},
{
"name": "Циклы",
"description": "Использование циклов for для итерации по последовательностям и циклов while для повторения блока кода, пока условие истинно. Включает работу с функцией range() и итерирование по различным типам коллекций."
},
{
"name": "Операторы break, continue, pass",
"description": "Использование оператора break для досрочного выхода из цикла, continue для перехода к следующей итерации и pass как заполнителя для пустых блоков кода. Понимание, когда и как эффективно применять эти операторы."
},
{
"name": "Обработка исключений",
"description": "Использование блоков try, except, else, finally для обработки исключений и ошибок в программе. Включает создание собственных исключений, понимание иерархии исключений и принципов отлова конкретных типов ошибок."
}
]
},
{
"name": "Структуры данных",
"skills": [
{
"name": "Списки и операции над ними",
"description": "Создание и работа со списками - изменяемыми упорядоченными коллекциями элементов. Включает методы добавления, удаления, поиска элементов, срезы, сортировку, а также понимание списочных включений (list comprehensions)."
},
{
"name": "Кортежи",
"description": "Работа с кортежами - неизменяемыми упорядоченными коллекциями элементов. Понимание отличий от списков, случаев использования кортежей, распаковки кортежей и применения их в функциях с множественными возвращаемыми значениями."
},
{
"name": "Словари",
"description": "Создание и работа со словарями - коллекциями пар ключ-значение. Включает методы добавления, удаления, поиска элементов, итерирование по ключам и значениям, а также словарные включения (dictionary comprehensions)."
},
{
"name": "Множества",
"description": "Работа с множествами - неупорядоченными коллекциями уникальных элементов. Включает операции объединения, пересечения, разности множеств, проверки на включение элементов и множественные включения (set comprehensions)."
},
{
"name": "Строки и методы работы со строками",
"description": "Углубленная работа со строками как последовательностями символов. Включает методы поиска, замены, разделения, объединения строк, проверки строк на соответствие шаблонам и форматирование строк различными способами."
}
]
},
{
"name": "Функции",
"skills": [
{
"name": "Определение и вызов функций",
"description": "Создание пользовательских функций с помощью ключевого слова def, понимание синтаксиса объявления и вызова функций. Включает документирование функций с помощью docstrings и принципы модульного программирования."
},
{
"name": "Параметры и аргументы функций",
"description": "Работа с различными типами параметров функций: позиционными, именованными, параметрами по умолчанию, переменным числом аргументов (*args, **kwargs). Понимание порядка и правил передачи аргументов."
},
{
"name": "Возвращаемые значения",
"description": "Использование оператора return для возврата результатов из функций. Включает возврат множественных значений, условные возвраты и понимание неявного возврата None при отсутствии явного return."
},
{
"name": "Область видимости переменных",
"description": "Понимание локальной, глобальной и нелокальной области видимости переменных в функциях. Включает использование ключевых слов global и nonlocal, а также принципы лексического замыкания (closure)."
},
{
"name": "Анонимные функции",
"description": "Создание и использование анонимных функций с помощью ключевого слова lambda. Понимание ограничений lambda-функций, их применение в сочетании с функциями высшего порядка (map, filter, sorted) и функциональным программированием."
}
]
},
{
"name": "Модули и пакеты",
"skills": [
{
"name": "Импорт модулей",
"description": "Использование операторов import, from-import для включения внешних модулей в программу. Включает различные способы импорта, переименование модулей и функций при импорте, а также понимание механизма поиска модулей."
},
{
"name": "Создание собственных модулей",
"description": "Разработка и организация собственных модулей Python для повторного использования кода. Включает структурирование кода, использование переменной __name__, создание пакетов с файлами __init__.py и понимание относительных импортов."
},
{
"name": "Стандартная библиотека Python",
"description": "Изучение и использование основных модулей стандартной библиотеки Python, таких как math, random, datetime, os, sys, collections, itertools. Понимание возможностей стандартной библиотеки для решения типовых задач."
},
{
"name": "Установка и использование сторонних пакетов",
"description": "Работа с менеджером пакетов pip для установки, обновления и удаления сторонних библиотек. Включает создание и использование виртуальных окружений, файлов requirements.txt и понимание структуры PyPI (Python Package Index)."
}
]
},
{
"name": "Работа с файлами",
"skills": [
{
"name": "Открытие и закрытие файлов",
"description": "Использование функции open() для открытия файлов в различных режимах (чтение, запись, добавление) и методов close() для корректного закрытия файлов. Понимание путей к файлам и обработки ошибок при работе с файловой системой."
},
{
"name": "Чтение и запись данных",
"description": "Использование методов read(), readline(), readlines() для чтения данных из файлов и write(), writelines() для записи. Включает работу с текстовыми и бинарными файлами, буферизацию и позиционирование в файле."
},
{
"name": "Контекстные менеджеры",
"description": "Использование оператора with для автоматического управления ресурсами при работе с файлами. Понимание преимуществ контекстных менеджеров для обеспечения корректного закрытия файлов даже при возникновении исключений."
},
{
"name": "Работа с различными форматами",
"description": "Чтение и запись данных в популярных форматах: JSON (модуль json), CSV (модуль csv), XML (модули xml.etree.ElementTree, xml.dom, xml.sax). Включает сериализацию и десериализацию объектов Python, а также работу с конфигурационными файлами."
}
]
},
{
"name": "Объектно-ориентированное программирование",
"skills": [
{
"name": "Классы и объекты",
"description": "Создание классов с помощью ключевого слова class и инстанцирование объектов. Включает понимание концепции self, конструктора __init__, атрибутов класса и экземпляра, а также принципов объектно-ориентированного дизайна."
},
{
"name": "Атрибуты и методы",
"description": "Определение и использование атрибутов и методов классов. Включает статические методы, методы класса, свойства (properties), дескрипторы и различия между методами экземпляра, класса и статическими методами."
},
{
"name": "Наследование",
"description": "Создание иерархий классов с использованием механизма наследования. Включает одиночное и множественное наследование, переопределение методов, вызов методов родительского класса с помощью super() и понимание порядка разрешения методов (MRO)."
},
{
"name": "Полиморфизм",
"description": "Применение принципа полиморфизма для создания гибкого и расширяемого кода. Включает перегрузку методов, утиную типизацию, абстрактные базовые классы (ABC) и интерфейсы в Python."
},
{
"name": "Инкапсуляция",
"description": "Использование механизмов инкапсуляции для скрытия деталей реализации. Включает соглашения об именовании (_name, __name), свойства (properties), геттеры и сеттеры, а также модуль dataclasses для создания классов данных."
},
{
"name": "Магические методы",
"description": "Реализация специальных методов (dunder methods) для определения поведения объектов в различных контекстах. Включает методы __str__, __repr__, __eq__, __lt__, __add__ и другие для настройки строкового представления, сравнения, арифметических операций и итерации."
}
]
},
{
"name": "Продвинутые концепции",
"skills": [
{
"name": "Генераторы и итераторы",
"description": "Создание и использование итераторов и генераторов для эффективной работы с последовательностями данных. Включает протокол итератора (__iter__, __next__), функции-генераторы (yield), выражения-генераторы и понимание ленивых вычислений."
},
{
"name": "Декораторы",
"description": "Создание и применение декораторов для модификации поведения функций и классов. Включает синтаксис декораторов, декораторы с аргументами, вложенные декораторы, а также стандартные декораторы Python (@property, @classmethod, @staticmethod)."
},
{
"name": "Контекстные менеджеры",
"description": "Создание собственных контекстных менеджеров с использованием протокола __enter__ и __exit__ или модуля contextlib. Включает применение контекстных менеджеров для управления ресурсами, обработки исключений и временного изменения состояния."
},
{
"name": "Менеджеры памяти и сборка мусора",
"description": "Понимание механизмов управления памятью в Python, включая подсчет ссылок, циклический сборщик мусора и слабые ссылки (weakref). Изучение оптимизации использования памяти, профилирования и выявления утечек памяти."
},
{
"name": "Многопоточность и параллельное программирование",
"description": "Работа с модулями threading, multiprocessing, concurrent.futures и asyncio для создания параллельных и асинхронных программ. Включает понимание GIL (Global Interpreter Lock), синхронизации потоков, пулов процессов и асинхронного программирования на основе корутин."
}
]
}
]