Skip to content

Commit 9cb672b

Browse files
authored
Create Fundamentals-2022-2023.md
1 parent 3e02558 commit 9cb672b

File tree

1 file changed

+270
-0
lines changed

1 file changed

+270
-0
lines changed

Courses/Fundamentals-2022-2023.md

Lines changed: 270 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,270 @@
1+
# Основы программирования 2022-2023
2+
3+
Модули [SEF1](#%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-sef1) и [SEF2](#%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-sef2)
4+
5+
## Ссылки
6+
7+
- Автор: https://github.com/tshemsedinov
8+
- Канал в телеграме: https://t.me/HowProgrammingWorks
9+
- Группа (чат): https://t.me/Programming_IP9X
10+
- Задачи по курсу: https://github.com/HowProgrammingWorks/Index/blob/master/Practice/SEF1.ru.md
11+
- Словарь терминов: https://github.com/HowProgrammingWorks/Dictionary
12+
13+
## Модуль SEF1
14+
15+
Объем материала: 36 лекций (из них 4 вводные лекции, 8 лекций по языку JS,
16+
18 лекций по фундаментальным понятиям теории программирования, 6 лекций по
17+
инструментам и процессу разработки), 8 семинаров, 9 лабораторных работ,
18+
47 репозиториев с примерами кода.
19+
20+
### 1 неделя
21+
22+
- [Введение в программирование](https://youtu.be/5Gt61EX6HZ4)
23+
- Абстракция, модель, алгоритм, программа, синтаксис, повторное использование
24+
- Значение, идентификатор, переменная и константа, литерал, присвоение
25+
- Типы данных, скалярные, ссылочные и структурные типы
26+
- Оператор и выражение, блок кода, функция, цикл, условие
27+
- Слайды: https://www.slideshare.net/tshemsedinov/1-168855278
28+
- [Введение в программирование, продолжение](https://youtu.be/PzlLXQ3RaDs)
29+
- Процедуры и функции, стек и куча, коллекции, модули, компоненты, библиотеки
30+
- Языки и парадигмы программирования, технологические стеки
31+
- Среда разработки и отладка кода
32+
- Семинар: [Обсуждение плана и материалов курса](https://youtu.be/bQMTbRWrteU)
33+
- [Настройка среды: Node.js, npm, git, eslint](https://youtu.be/hSyA7tcNaCE)
34+
- Смотреть выборочно, что не понятно - пропускайте
35+
- Задания: [Exercises.ru.md](https://github.com/HowProgrammingWorks/Introduction/blob/master/Exercises.ru.md)
36+
37+
### 2 неделя
38+
39+
- [Базовый синтаксис JavaScript](https://youtu.be/xJn3k1f4BiM)
40+
- Абстракции и их переиспользование: https://github.com/HowProgrammingWorks/Reusable
41+
- Основные конструкции: https://github.com/HowProgrammingWorks/Cheatsheet
42+
- Типы данных: https://github.com/HowProgrammingWorks/DataTypes
43+
- [Базовый синтаксис JavaScript, продолжение](https://youtu.be/qa-XleqA0JU)
44+
- Типы данных: https://github.com/HowProgrammingWorks/DataTypes
45+
- Условия: https://github.com/HowProgrammingWorks/Conditional
46+
- Семинар: [Базовый синтаксис языка JavaScript](https://youtu.be/PGqjTXQe_qw)
47+
- Семинар: [Автоматическая проверка лабораторных работ](https://youtu.be/M4KpG0LEAyA)
48+
49+
### 3 неделя
50+
51+
- [Функции, лямбды, контексты, замыкания в JavaScript](https://youtu.be/pn5myCmpV2U)
52+
- Функции: https://github.com/HowProgrammingWorks/Function
53+
- Замыкания: https://github.com/HowProgrammingWorks/Closure
54+
- [Массивы, объекты, классы, прототипы в JavaScript](https://youtu.be/VBMGnAPfmsY)
55+
- Структуры данных: https://github.com/HowProgrammingWorks/DataStructures
56+
- Итерирование: https://github.com/HowProgrammingWorks/Iteration
57+
- Прототипы: https://github.com/HowProgrammingWorks/Prototype
58+
- [Языки программирования](https://youtu.be/enHA1CRkJe0)
59+
- Семинар: [JavaScript, ответы на вопросы](https://youtu.be/wqkQ6eslyzY)
60+
61+
### 4 неделя
62+
63+
- [Частичное применение и каррирование в JavaScript](https://youtu.be/ND8KQ5xjk7o)
64+
- Примеры кода: https://github.com/HowProgrammingWorks/PartialApplication
65+
- [Функции высшего порядка, колбеки, события на JavaScript](https://youtu.be/1vqATwbGHnc)
66+
- Функции высшего порядка: https://github.com/HowProgrammingWorks/HigherOrderFunction
67+
- Функции обратного вызова: https://github.com/HowProgrammingWorks/Callbacks
68+
69+
### 5 неделя
70+
71+
- [История развития языков программирования](https://youtu.be/qqz0VSaNxuw)
72+
- Слайды: https://www.slideshare.net/tshemsedinov/programming-languages-comparison-history-future
73+
- [Парадигмы программирования](https://youtu.be/Yk1sxLVHfjs)
74+
- [Работа со строками, шаблонами и юникодом в JavaScript](https://youtu.be/GcopcHQkA8M)
75+
- Примеры кода: https://github.com/HowProgrammingWorks/String
76+
77+
### 6 неделя
78+
79+
- [Антипаттерны общие для всех парадигм](https://youtu.be/NMUsUiFokr4)
80+
- Примеры кода: https://github.com/HowProgrammingWorks/Antipatterns/tree/master/JavaScript/01-Common
81+
- [Консоль и командная строка в JavaScript и Node.js](https://youtu.be/5aSZyKi5BmE)
82+
- Примеры кода: https://github.com/HowProgrammingWorks/CommandLine
83+
84+
### 7 неделя
85+
86+
- [Чеининг функций и объектов, обработка ошибок в JavaScript](https://youtu.be/PfuEfIiLX34)
87+
- Чеининг: https://github.com/HowProgrammingWorks/Chaining
88+
- Обработка ошибок: https://github.com/HowProgrammingWorks/Errors
89+
- [Рекурсия: косвенная и хвостовая, стек, выход](https://youtu.be/W2skCjIgVKE)
90+
- Примеры кода: https://github.com/HowProgrammingWorks/Recursion
91+
92+
### 8 неделя
93+
94+
- [Итерирование, циклы и итераторы в JavaScript](https://youtu.be/lq3b5_UGJas)
95+
- Примеры кода: https://github.com/HowProgrammingWorks/Iteration
96+
- [Антипаттерны процедурного программирования](https://youtu.be/cTv7V22mkwE)
97+
- Примеры кода: https://github.com/HowProgrammingWorks/Antipatterns/tree/master/JavaScript/02-Procedural
98+
99+
### 9 неделя
100+
101+
- Семинар: [Ответы на вопросы по курсу "Основы программирования"](https://youtu.be/TY6nDW7aYys)
102+
- [Таймеры, таймауты и EventEmitter](https://youtu.be/LK2jveAnRNg)
103+
- Таймеры: https://github.com/HowProgrammingWorks/Timers
104+
- EventEmitter: https://github.com/HowProgrammingWorks/EventEmitter
105+
- События: https://github.com/metarhia/common/blob/master/lib/events.js
106+
- Семинар: [Выполнение лабораторных работ по курсу](https://youtu.be/ikUOyFPzdJw)
107+
108+
### 10 неделя
109+
110+
- [Массивы в JavaScript: методы Array](https://youtu.be/D1kfYBkX9FE)
111+
- Примеры кода: https://github.com/HowProgrammingWorks/Arrays
112+
- [Коллекции, множества, хеш таблицы в JavaScript](https://youtu.be/hN0wsq5LNOc)
113+
- Коллекции: https://github.com/HowProgrammingWorks/Collections
114+
- Хеш таблицы: https://github.com/HowProgrammingWorks/Map
115+
- Множества: https://github.com/HowProgrammingWorks/Set
116+
117+
### 11 неделя
118+
119+
- [Code Review: как это и зачем](https://youtu.be/EKL6NiIQ6ZU)
120+
- Примеры: https://github.com/HowProgrammingWorks/CodeReview
121+
- Семинар: [Code Review, ответы на вопросы](https://youtu.be/AgH4OAKbmkM)
122+
- [Структуры данных: списки, стек, очередь, дэк в JavaScript](https://youtu.be/9KvA4hDDSjk)
123+
- Списки: https://github.com/HowProgrammingWorks/LinkedList
124+
- Очереди: https://github.com/HowProgrammingWorks/Dequeue
125+
126+
### 12 неделя
127+
128+
- [Сериализация и десериализация в JavaScript и Node.js](https://youtu.be/GtKPniOEzh8)
129+
- Примеры кода: https://github.com/HowProgrammingWorks/Serialization
130+
- [Рефакторинг: причины, цели, техники и процесс](https://youtu.be/z73wmpdweQ4)
131+
- Примеры кода: https://github.com/HowProgrammingWorks/Refactoring
132+
- Пример проекта: https://github.com/tshemsedinov/node-mysql-utilities
133+
- Семинар: [Выбор направления в программировании](https://youtu.be/1gL627DQF4A)
134+
135+
### 13 неделя
136+
137+
- [Proxy и Symbol в JavaScript](https://youtu.be/UjZjSDyi9AM)
138+
- Прокси: https://github.com/HowProgrammingWorks/Proxy
139+
- Символы: https://github.com/HowProgrammingWorks/Symbol
140+
- [Регулярные выражения и парсинг в JavaScript](https://youtu.be/-ef2E0ozxao)
141+
- Примеры кода: https://github.com/HowProgrammingWorks/RegExp
142+
143+
### 14 неделя
144+
145+
- [Композиция: pipe, compose](https://youtu.be/xS9FicVrOTI)
146+
- Примеры кода: https://github.com/HowProgrammingWorks/Composition
147+
- [Примеси: mixin, extend, Object.assign, class λ-mixin](https://youtu.be/NZMrJ2adEyY)
148+
- Тема class λ-mixin из этой лекции не обязательна для модуля SEF1
149+
- Примеры кода: https://github.com/HowProgrammingWorks/Mixin
150+
- Старая версия лекции: https://youtu.be/2h9syXN5wO0
151+
152+
### 15 неделя
153+
154+
- [Прототипное программирование и прототипное наследование](https://youtu.be/SzaXTW2qcJE)
155+
- Примеры кода: https://github.com/HowProgrammingWorks/PrototypeChain
156+
- Слайды: https://www.slideshare.net/tshemsedinov/prototype-programming-in-javascript
157+
- [Мемоизация: memoize](https://youtu.be/H6S8QJo2Qxg)
158+
- Примеры кода: https://github.com/HowProgrammingWorks/Memoization
159+
- Старая версия лекции: https://youtu.be/2h9syXN5wO0
160+
161+
### 16 неделя
162+
163+
- [Фабрики и пулы объектов в JavaScript, factorify, poolify](https://youtu.be/Ax_mSvadFp8)
164+
- Фабрики: https://github.com/HowProgrammingWorks/Factory
165+
- Пулы объектов: https://github.com/HowProgrammingWorks/Pool
166+
- [Функции-обертки: wrappers](https://youtu.be/En7pWi2fSzs)
167+
- Примеры кода: https://github.com/HowProgrammingWorks/Wrapper
168+
- Старая версия лекции: https://youtu.be/2h9syXN5wO0
169+
170+
### 17 неделя
171+
172+
- [Типизированные массивы в JavaScript](https://youtu.be/tTNcqxbxhfY)
173+
- Примеры кода: https://github.com/HowProgrammingWorks/TypedArrays
174+
- [Новое в JavaScript](https://youtu.be/fUjHLj8bq_Y)
175+
- Не все в темы обязательны для модуля SEF1, что поймете, то и хорошо
176+
- Слайды: https://www.slideshare.net/tshemsedinov/javascript-esnext-ecmascript-2020-es11-es10-es9-es8-es7-es6-es2020-es2019
177+
- Примеры кода: https://github.com/HowProgrammingWorks/ESNext
178+
179+
## Модуль SEF2
180+
181+
### 18 неделя
182+
183+
- [Объектно-ориентированное программирование](https://youtu.be/r4ReQlVtfgQ)
184+
- [Структуры (struct) или записи (record)](https://youtu.be/Wb7o_kK4aH4)
185+
- [Карта специальности инженер-программист](https://youtu.be/SE5aXH-yf0I)
186+
187+
### 19 неделя
188+
189+
- [Подход к изучению программирования](https://youtu.be/zMU4ir10DMg)
190+
- Списки: односвязные, двусвязные, циклические, развернутые
191+
- [Графы и запросы к графовым структурам данных](https://youtu.be/a0W0T8Yqw3s)
192+
- Примеры кода: https://github.com/HowProgrammingWorks/Graph
193+
194+
### 20 неделя
195+
196+
- [Проекции и отображения наборов данных в JavaScript](https://youtu.be/lwJCq9inky8)
197+
- Примеры кода: https://github.com/HowProgrammingWorks/Projection
198+
- [Мономорфный и полиморфный код, инлайн-кэш, скрытые классы](https://youtu.be/9JUY3prnCQ4)
199+
- Примеры кода: https://github.com/HowProgrammingWorks/Monomorphism
200+
201+
### 21 неделя
202+
203+
- [Функциональное программирование](https://youtu.be/0JxSs_GcvbQ)
204+
- Смотрите обзорно, это не обязательная лекция, попробуйте уловить суть парадигмы
205+
- Примеры кода: https://github.com/HowProgrammingWorks/FunctionalProgramming
206+
- [Реактивное программирование](https://youtu.be/7MH8-qQc-48)
207+
- Примеры кода: https://github.com/HowProgrammingWorks/ReactiveProgramming
208+
209+
### 22 неделя
210+
211+
- [Работа с файлами, буферами и файловыми потоками в Node.js](https://youtu.be/eQGBS15vUac)
212+
- Файлы: https://github.com/HowProgrammingWorks/Files
213+
- Потоки: https://github.com/HowProgrammingWorks/Streams
214+
- Буферы: https://github.com/HowProgrammingWorks/Buffers
215+
- Оценка сложности алгоритмов
216+
- [Измерение производительности кода и оптимизация](https://youtu.be/sanq2X7Re8o)
217+
- Примеры кода: https://github.com/HowProgrammingWorks/Benchmark
218+
219+
### 23 неделя
220+
221+
- [Асинхронное программирование на callback`ах](https://youtu.be/z8Hg6zgi3yQ)
222+
- [Асинхронное программирование на promise`ах](https://youtu.be/RMl4r6s1Y8M)
223+
- Примеры кода: https://github.com/HowProgrammingWorks/AsynchronousProgramming
224+
- [Асинхронные функции, async/await, thenable, обработка ошибок](https://youtu.be/Jdf_tZuJbHI)
225+
- Примеры кода: https://github.com/HowProgrammingWorks/AsyncAwait
226+
227+
### 24 неделя
228+
229+
- Неизменяемые структуры данных (immutable)
230+
- Автоматное программирование: конечные автоматы (машины состояний)
231+
232+
### 25 неделя
233+
234+
- [Антипаттерны объектно-ориентированного программирования](https://youtu.be/9d5TG1VsLeU)
235+
- https://github.com/HowProgrammingWorks/Antipatterns/tree/master/JavaScript/03-OOP
236+
- [Шаблон Singleton (синглтон) в JavaScript](https://youtu.be/qdJ5yikZnfE)
237+
- Примеры кода: https://github.com/HowProgrammingWorks/Singleton
238+
- [Функциональные объекты, функторы и монады в JavaScript](https://youtu.be/3Z7f0Gi8pxw)
239+
- Примеры кода: https://github.com/HowProgrammingWorks/Functor
240+
241+
### 26 неделя
242+
243+
- [Генераторы и асинхронные генераторы](https://youtu.be/kvNm9D32s8s)
244+
- Генераторы: https://github.com/HowProgrammingWorks/Generator
245+
- Асинхронные генераторы: https://github.com/HowProgrammingWorks/AsyncGenerator
246+
- [Итераторы и асинхронные итераторы](https://youtu.be/rBGFlWpVpGs)
247+
- Итераторы: https://github.com/HowProgrammingWorks/Iterator
248+
- Асинхронные итераторы: https://github.com/HowProgrammingWorks/AsyncIterator
249+
250+
### 27 неделя
251+
252+
- [Перечислимый тип (enum) в JavaScript и TypeScript](https://youtu.be/BXiKebOIAGI)
253+
- Примеры кода: https://github.com/HowProgrammingWorks/Enum
254+
- [Дженерики и обобщенное программирование](https://youtu.be/r6W2z3DQhoI)
255+
- Примеры кода: https://github.com/HowProgrammingWorks/Generics
256+
257+
### 28 неделя
258+
259+
- [Тестирование: юниттесты с примерами](https://youtu.be/CszugIag2TA)
260+
- Тестирование: https://github.com/HowProgrammingWorks/Testing
261+
- Юниттесты: https://github.com/HowProgrammingWorks/Unittesting
262+
- [Тестирование: системное и интеграционное тестирование](https://youtu.be/OuKu_6H_6gE)
263+
- Примеры кода: https://github.com/HowProgrammingWorks/Unittesting
264+
265+
### 29 неделя
266+
267+
- [Интроспекция и рефлексия в JavaScript](https://youtu.be/yvW1PjUVeM0)
268+
- Интроспекция: https://github.com/HowProgrammingWorks/Introspection
269+
- Рефлекция: https://github.com/HowProgrammingWorks/Reflect
270+
- [Почему хорошее ИТ-образование невостребовано рыночком](https://youtu.be/nvIJE6xMpiI)

0 commit comments

Comments
 (0)