Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rodion-m/self_taught_programming

База знаний по изучению программирования. Преимущественно на русском языке.
https://github.com/rodion-m/self_taught_programming

algorithms async asynchronous clean-code csharp ddd design-patterns dotnet learning multithreading rdbms rsdb tdd threadpool

Last synced: 3 days ago
JSON representation

База знаний по изучению программирования. Преимущественно на русском языке.

Awesome Lists containing this project

README

        

# База знаний по изучению программирования
В этом репозитории мы собираем лучшие материалы и источники для самостоятельного изучения программирования от нулевого до продвинутого уровня. Все материалы на **русском** языке, за исключением случаев, когда указан префикс [EN].

# Навигация
- [База знаний по изучению программирования](#база-знаний-по-изучению-программирования)
- [Навигация](#навигация)
- [Начинающим](#начинающим)
- [Записи курсов](#записи-курсов)
- [Бесплатные онлайн курсы](#бесплатные-онлайн-курсы)
- [Курсы разработки ПО](#курсы-разработки-по)
- [Алгоритмы и структуры данных](#алгоритмы-и-структуры-данных)
- [Многопоточность и асинхронность](#многопоточность-и-асинхронность)
- [Записи курсов](#записи-курсов-1)
- [Доклады](#доклады)
- [Книги и статьи](#книги-и-статьи)
- [Подкасты](#подкасты)
- [Прочее](#прочее)
- [Платные курсы](#платные-курсы)
- [Сборка мусора (GC)](#сборка-мусора-gc)
- [GC в .NET](#gc-в-net)
- [Базы данных](#базы-данных)
- [Курсы по СУБД](#курсы-по-субд)
- [Доклады и лекции по СУБД](#доклады-и-лекции-по-субд)
- [Прочее](#прочее-1)
- [ORM](#orm)
- [Entity Framework](#entity-framework)
- [Проектирование, архитектура и System Design](#проектирование-архитектура-и-system-design)
- [Архитектура, микросервисы](#архитектура-микросервисы)
- [Бесплатные курсы](#бесплатные-курсы)
- [Платные курсы](#платные-курсы-1)
- [GoF паттерны](#gof-паттерны)
- [Domain-Driven Design (DDD)](#domain-driven-design-ddd)
- [Чистый код, Best Practice](#чистый-код-best-practice)
- [Чистая архитектура](#чистая-архитектура)
- [Платные курсы](#платные-курсы-2)
- [Референсные проекты](#референсные-проекты)
- [Референсные проекты на .NET](#референсные-проекты-на-net)
- [Процессы-разработки-и-методологии](#процессы-разработки-и-методологии)
- [Тестирование для программиста](#тестирование-для-программиста)
- [Записи курсов, занятия](#записи-курсов-занятия)
- [Доклады](#доклады-1)
- [Книги и статьи](#книги-и-статьи-1)
- [Платные курсы](#платные-курсы-3)
- [Подкасты](#подкасты-1)
- [CI/CD](#cicd)
- [Облака (Clouds)](#облака-clouds)
- [Курсы](#курсы)
- [Инструментарий](#инструментарий)
- [Git](#git)
- [Регулярные выражения](#регулярные-выражения)
- [GPT для программистов](#gpt-для-программистов)
- [Прочее](#прочее-2)
- [YouTube каналы](#youtube-каналы)
- [Чаты (сообщества)](#чаты-сообщества)
- [Другие сборники](#другие-сборники)
- [TODO](#todo)
- [Материалы будут пополняться и структурироваться. PR горячо приветствуются.](#материалы-будут-пополняться-и-структурироваться-pr-горячо-приветствуются)

***

# Начинающим
## Записи курсов
- [CS50 – Гарвардский курс по основам программирования](https://www.youtube.com/playlist?list=PLawfWYMUziZqyUL5QDLVbe3j5BKWj42E5)
- [Увлекательное программирование на C# (Дмитрий Сошников)](https://www.youtube.com/playlist?list=PL6XUtJhtlpPM3mTfgYBY5Zql4b4szL4KP)
- [Основы программирования и анализа данных на Python (Хирьянов Тимофей Фёдорович)](https://youtube.com/playlist?list=PLcsjsqLLSfND6vNUS4b13dHJHOxLm0nv5)
- ["C# 2022 с нуля до профи" (9 часовой курс)](https://www.youtube.com/watch?v=w8rRhAup4kg)

## Бесплатные онлайн курсы
- [Ulearn.me: Множество курсов по основам программирования на C#](https://ulearn.me/)

***

# Курсы разработки ПО
- [Курс "ИТМО - Проектирование ПО 2021" (Андрей Суховицкий)](https://www.youtube.com/playlist?list=PLWMlibdhF88ll0BoB1Atv7mFK4jXJa7VI)
- [Курс "Разработка ПО" в CS Center о жизненном цикле, методологиях и прочем (Тимофей Брыксин)](https://www.youtube.com/playlist?list=PLlb7e2G7aSpSidTs7HuqUX_NeslBsg2Mb)
- [Курс "Проектирование программного обеспечения" в CS Center (Юрий Литвинов)](https://www.youtube.com/playlist?list=PLlb7e2G7aSpQwYFLXBG22XnKYXFzQ7-1K)
- ["Школа бекенд-разработки 2021" (Python) от Академии Яндекса](https://www.youtube.com/playlist?list=PLQC2_0cDcSKCMKnywAS8eI_EgCcE3yx0r)
- ["Школа бекенд-разработки 2022" (Python, Java) от Академии Яндекса](https://www.youtube.com/playlist?list=PLQC2_0cDcSKB0fq36NuDhbpcd20OVNPBp)

***

# Алгоритмы и структуры данных
- [Курс по оценке сложности алгоритмов на ulearn.me](https://ulearn.me/Course/complexity/)

***

# Многопоточность и асинхронность

## Записи курсов

* [Семинары CLRium "Concurrency и Parallelism" (Станислав Сидристый и Ко.)](https://www.youtube.com/playlist?list=PLBwwJL9lzKMY9Fpk1DAscywid1Xshp9NL)
* [Курс "Параллельное программирование" 2016 (CS Center, Евгений Калишенко)](https://www.youtube.com/playlist?list=PLlb7e2G7aSpQCPeKTcVBHJns_JOxrc_fT)
* ~~[Курс "Параллельное программирование" 2022 (CS Center, Евгений Калишенко)](https://www.youtube.com/playlist?list=PLlb7e2G7aSpTBs1GPt-4UygYxK3bVSyZe)~~ - **плохой звук**
* [Курс "Теория и практика многопоточной синхронизации (ТПМС, Concurrency)" [Лекции] 2022 (ФМПИ, Роман Липовский)](https://www.youtube.com/playlist?list=PL4_hYwCyhAva37lNnoMuBcKRELso5nvBm)
* [Курс "Теория и практика многопоточной синхронизации (ТПМС, Concurrency)" [Семинары] 2022 (ФМПИ, Роман Липовский)](https://www.youtube.com/playlist?list=PL4_hYwCyhAvYTxm55RBm_HA5Bq5W1Nv-R)
* [Курс "Параллельные и распределённые вычисления" 2021 (ФПМИ, Ивченко О. Н.)](https://www.youtube.com/playlist?list=PL4_hYwCyhAvbof7wirWXeCH9wAfgDH0RI)
* [[JS] Сборник лекций и докладов на тему "Асинхронное программирование" (Тимур Шемсединов)](https://www.youtube.com/playlist?list=PLHhi8ymDMrQZ0MpTsmi54OkjTbo0cjU1T)
* [[EN] Бесплатные уроки курса Async Expert от сообщества Dotnetos](https://www.youtube.com/playlist?list=PLpUkQYy-K8Y_Xx_bFQSXwCmvL-Uin88zN)

## Доклады
* [Лекция "Многопоточное программирование в .NET ч. 1" (Дмитрий Иванов)](https://youtu.be/GBCGL4GDgN4)
* [Лекция "Многопоточное программирование в .NET ч. 2" (Дмитрий Иванов)](https://www.youtube.com/watch?v=dH6ZW8KOGFY)
* ["ThreadPool для сервиса, адаптирующегося под внешнюю нагрузку" (Станислав Сидристый)](https://www.youtube.com/watch?v=LbiuLwNJd1I)
* ["Разграничение ответственности между процессорными ядрами" (Станислав Сидристый)](https://www.youtube.com/watch?v=bHX7lwttrCA)
* ["Тонкие настройки стандартного ThreadPool" (Станислав Сидристый)](https://www.youtube.com/watch?v=zeWhoFWGWKo)
* ["Здоровое || программирование – многопоточность vs асинхронность, зачем нам ThreadPool, контексты исполнения" 2022 (Родион Мостовой)](https://youtu.be/MqO1iMVbdOs?t=432)
* ["Модель памяти .NET" 2017 (Валерий Петров)](https://youtu.be/m9_aBxdKrRI)
* [lock(_sync): иллюзия идеального выбора (Станислав Сидристый)](https://youtu.be/PEHQjSwp01k)
* [[EN] "The C++ and CLR Memory Models" (Sasha Goldshtein)](https://www.youtube.com/watch?v=6wZVpg2SyJQ)
* [[EN] "How Interlocked and Volatile works in .NET" 2020 (Dotnetos)](https://youtu.be/0xXeYzYFbrk)
* [[EN] "A Gentle Introduction To Low-Level Concurrency In .NET (Szymon Kulec)"](https://www.youtube.com/watch?v=dtUrG--oMLo)

## Книги и статьи
* [Online-книга "DotNetBook" – глава про потоки (Стас Сидристый)](https://github.com/sidristij/dotnetbook/tree/master/book/ru/Execution/01-Threads)
* [Самое главное про Memory Model в .NET (Родион Мостовой)](https://github.com/rodion-m/articles/blob/main/dotnet_memory_model.md)
* [Полное понимание асинхронности в браузере](https://habr.com/ru/company/yandex/blog/718084/)
* [О Thread и ThreadPool в .NET подробно (часть 1)](https://habr.com/ru/post/654101/)
* [О Thread и ThreadPool в .NET подробно (часть 2)](https://habr.com/ru/post/654111/)
* [ConfigureAwait: часто задаваемые вопросы (перевод статьи Stephen Toub)](https://habr.com/ru/post/482354/)
* [Барьеры памяти и неблокирующая синхронизация в .NET](https://habr.com/ru/post/130318/)
* [Многопоточность на низком уровне](https://habr.com/ru/company/jugru/blog/543380/)
* [Введение в lock-free программирование](https://habr.com/ru/company/wunderfund/blog/322094/)
* [.NET: Инструменты для работы с многопоточностью и асинхронностью. Часть 1](https://habr.com/ru/post/452094/)
* [.NET: Инструменты для работы с многопоточностью и асинхронностью. Часть 2](https://habr.com/ru/post/459514/)
* [Async/await в C#: концепция, внутреннее устройство, полезные приемы](https://habr.com/ru/post/470830/)
* [System.Threading.Channels — высокопроизводительный производитель-потребитель и асинхронность без аллокаций и стэк дайва](https://habr.com/ru/post/508726/)
* [Порт завершения (Completion Port)](https://habr.com/ru/post/59282/)
* [Что означает RISC и CISC?](https://habr.com/ru/company/selectel/blog/542074/)
* [ValueTask — почему, зачем и как? (перевод статьи Stephen Toub)](https://habr.com/ru/companies/clrium/articles/465259/)
* [[EN] Статья "ExecutionContext vs SynchronizationContext" (Stephen Toub)](https://devblogs.microsoft.com/pfxteam/executioncontext-vs-synchronizationcontext/)
* [[EN] Статья "There Is No Thread" (Stephen Cleary)](https://blog.stephencleary.com/2013/11/there-is-no-thread.html)
* [[EN] The CLR Thread Pool 'Thread Injection' Algorithm](https://mattwarren.org/2017/04/13/The-CLR-Thread-Pool-Thread-Injection-Algorithm/)
* [[EN] AsyncGuidance: Лучшие практики при работе с асинхронностью (David Fowler)](https://github.com/davidfowl/AspNetCoreDiagnosticScenarios/blob/master/AsyncGuidance.md)

## Подкасты
* [DotNet&More #31: Многопоточность и не только](https://music.yandex.ru/album/18268100/track/91640946)
* [Podlodka #102 – Многопоточность (с Романом Елизаровым)](https://podlodka.io/102)
* [Podlodka #56 – Корутины, Промисы, Акторы](https://podlodka.io/56)
* [Mobile People Talks: Асинхронность – знаешь что об этом ты?](https://music.yandex.ru/album/9647763/track/61693076) [часть 2](https://music.yandex.ru/album/9647763/track/61693077)
* [Flutter Dev Podcast: Асинхронность](https://music.yandex.ru/album/11609672/track/69414771)
* [Moscow Python Podcast. Асинхронщина с базами данных: aiopg и другие звери](https://music.yandex.ru/album/6892837/track/53235626)

## Прочее
* [Публичное собеседование по многопоточности (Kotlin, Android)](https://youtu.be/2hLHgcsOV3s)

## Платные курсы
* [[EN] Async Expert – Большой курс от сообщества Dotnetos (Konrad Kokosa, Łukasz Pyrzyk, Szymon Kulec)](https://asyncexpert.com/)

***

# Сборка мусора (GC)

## GC в .NET
* [Курс "CLRium #5: Garbage Collector" (2019, Станислав Седристый)](https://www.youtube.com/playlist?list=PLBwwJL9lzKMY3At-QQQijfiHdsYnOQ7vY)

***

# Базы данных

## Курсы по СУБД

* [[EN] Курс "CMU Intro to Database Systems (15-445/645 - Fall 2023) (Andy Pavlo, Jignesh Patel)"](https://www.youtube.com/playlist?list=PLSE8ODhjZXjbj8BMuIrRcacnQh20hmY9g)
* [[EN] Множество курсов по СУБД от начального до продвинутого уровня от CMU DATABASE GROUP](https://www.youtube.com/@CMUDatabaseGroup/playlists)

## Доклады и лекции по СУБД

* [Прекрасная лекция про транзакции и ACID с примерами из курса "ИТМО - Проектирование ПО" (Андрей Суховицкий)](https://www.youtube.com/watch?v=cY9NaL8KT14&list=PLWMlibdhF88ll0BoB1Atv7mFK4jXJa7VI&index=12&pp=iAQB)

## Прочее
* [Мой плейлист (Родион Мостовой) с докладами и лекциями по СУБД](https://www.youtube.com/playlist?list=PLRslTbFwdzZ__LUZ_F80gD050SE2umwQk)

## ORM

### Entity Framework

* [ORM с нуля | Как устроены Entity Framework и Dapper? | Как реализовать IQueryable? (Андрей Подколзин)](https://www.youtube.com/live/UvO-8p3JqW0)

***

# Проектирование, архитектура и System Design

## Архитектура, микросервисы

### Бесплатные курсы
- [[EN] Продвинутая архитектура распределённых систем (Udi Dahan)](https://coursehunter.net/course/prodvinutaya-arhitektura-raspredelennyh-sistem)

### Платные курсы
Качество отечественных платных курсов под вопросом. Здесь собраны те из них, что мне попадались. Есть мнение, что курсы по архитектуре от зарубежных авторов более качественные.

- [Авторские курсы и практикумы Алексея Рыбака по архитектуре, System Design и бекенду](https://devhands.io/ru/)
- [Разработка Enterprise-приложений без боли и сожалений (Евгений Лукьянов, Сергей Бухаров)](https://howto.stringconcat.com/enterprise)
- [Асинхронная архитектура от "Школа сильных программистов" (Фёдор Борщёв, Антон Давыдов)](https://tough-dev.school/architecture)
- [Курсы по архитектуре и System Design от Systems.Education (разные авторы)](https://systems.education/#arch)
- [Курсы от ex-архитектора ЦБ РФ Максима Смирнова](https://www.itexpert.ru/rus/services/training/trainers/detail.php?ID=2196)
- [Software Architect от OTUS (разные авторы)](https://otus.ru/lessons/software-architect/)

## GoF паттерны
- [Курс "Проектирование программного обеспечения" в CS Center (Юрий Литвинов)](https://www.youtube.com/playlist?list=PLlb7e2G7aSpQwYFLXBG22XnKYXFzQ7-1K)

## Domain-Driven Design (DDD)
- [Занятие "Предметно-ориентированное проектирование" из курса по проектированию ПО (Юрий Литвинов)](https://youtu.be/pAdC0JyqRJE)

## Чистый код, Best Practice
* [Node.js Лучшие практики](https://github.com/goldbergyoni/nodebestpractices/blob/master/README.russian.md)
* [[EN] The Node.js best practices list](https://github.com/goldbergyoni/nodebestpractices)

## Чистая архитектура
### Платные курсы
* [[EN] Clean Architecture: Patterns, Practices, and Principles (Matthew Renze)](https://app.pluralsight.com/library/courses/clean-architecture-patterns-practices-principles/)

## Референсные проекты
### Референсные проекты на .NET
- [Пример микросервисного приложения eShop по DDD от Microsoft](https://github.com/dotnet/eShop)
- [Пример веб-приложения на ASP.NET Core со слоенной архитектурой от Microsoft](https://github.com/dotnet-architecture/eShopOnWeb)
- [Пример микросервисного веб-приложения на ABP Framework, работает на Kubernetes, Helm, включает API-Gateway и приложения на Angular](https://github.com/abpframework/eShopOnAbp)
- [Шаблон проекта на ASP.NET Core с чистой архитектурой](https://github.com/jasontaylordev/CleanArchitecture)
- [Пример интернет-магазина, реализованного на Blazor Server](https://github.com/dotnet-architecture/eShopOnBlazor)
- [Шаблон проекта на ASP.NET Core + React + Redux + TypeScript + Hot Module Replacement ](https://github.com/based-ghost/aspnet-core-react-redux-playground-template)
- [Пример веб-приложение на Blazor WebAssembly с чистой архитектурой](https://github.com/jasontaylordev/RapidBlazor)
- [Шаблон "надежного ASP.NET Core веб-приложения, использующего сервисы Azure"](https://github.com/Azure/reliable-web-app-pattern-dotnet)

***

# Процессы-разработки-и-методологии

- [Курс "Разработка ПО" в CS Center о жизненном цикле, методологиях и прочем (Тимофей Брыксин)](https://www.youtube.com/playlist?list=PLlb7e2G7aSpSidTs7HuqUX_NeslBsg2Mb)

***

# Тестирование для программиста
## Записи курсов, занятия
- [EQSP 12/20: Философия автоматизированных тестов (Егор Бугаенко)](https://www.youtube.com/watch?v=ZPvGF9KtYO8&list=PLRslTbFwdzZ_rscv7zd9hwR21mgC_bAsk&index=1)
- [Занятие "Python - Тестирование" (Сергей Бочкарев) из курса "ШБР 2022" Академии Яндекса](https://www.youtube.com/watch?v=957lkNw-ThE)
- [Занятие "Java - Тестирование" (Сергей Волков) из курса "ШБР 2022" Академии Яндекса](https://www.youtube.com/watch?v=DVsd37jocZ4)
- [Занятие "Нагрузочное тестирование" (Григорий Липин) из курса "ШБР 2022" Академии Яндекса](https://youtu.be/rkDaMowYrUM)

## Доклады
- [Эффективное юнит-тестирование (Владимир Хориков)](https://www.youtube.com/watch?v=AAD9se2LjuI&list=PLRslTbFwdzZ_rscv7zd9hwR21mgC_bAsk&index=4&)
- [Юнит-тестирование в разработке (Сергей Немчинский)](https://youtu.be/KAny2OSYY3Y?list=PLRslTbFwdzZ_rscv7zd9hwR21mgC_bAsk)
- [Имитируем с Moq (Иван Кожин)](https://www.youtube.com/watch?v=XmVhRPZlj8g)
- [Мутационное тестирование в .NET (Николай Молчанов)](https://youtu.be/5gCvcUcctuU?list=PLRslTbFwdzZ_rscv7zd9hwR21mgC_bAsk)
- [[EN] Creating a QA/DEV Collaborative Testing Strategy (Roy Osherove)](https://www.youtube.com/watch?v=HUpj4YXI8Bs)

## Книги и статьи
* [Лучшие практики тестирования JavaScript и Node.js](https://github.com/goldbergyoni/javascript-testing-best-practices/blob/master/readme-ru.md)
* [[EN] Comprehensive and exhaustive JavaScript & Node.js testing best practices](https://github.com/goldbergyoni/javascript-testing-best-practices/)

## Платные курсы
* [[EN] From Zero to Hero: Unit testing in C# (Nick Chapsas)](https://nickchapsas.com/p/from-zero-to-hero-unit-testing-in-c)
* [[EN] From Zero to Hero: Integration testing in ASP.NET Core [Nick Chapsas]](https://nickchapsas.com/p/from-zero-to-hero-integration-testing-in-asp-net-core)
* [[EN] Building a Pragmatic Unit Test Suite (Vladimir Khorikov)](https://app.pluralsight.com/library/courses/pragmatic-unit-testing/)
* [[EN] Unit Testing an ASP.NET Core 6 Web API (Kevin Dockx)](https://app.pluralsight.com/library/courses/asp-dot-net-core-6-web-api-unit-testing/)
* [[EN] NODE.JS Testing From A to Z (Yoni Goldberg)](https://testjavascript.com/)

***

## Подкасты
- [[S01E10] Testing | BookClub DOTNET - Тестирование микросервисов (Владимир Хориков)](https://youtu.be/jmRCoi6-57Y?list=PLRslTbFwdzZ_rscv7zd9hwR21mgC_bAsk)

***

# CI/CD

- [Docker - Курс для начинающих [3 ЧАСА] (Богдан Станчук)](https://www.youtube.com/watch?v=_uZQtRyF6Eg)
- [Kubernetes - Курс для начинающих (Богдан Станчук)](https://youtu.be/hNLQ3tCP8jQ?si=7UJB3s4EwaIZRgPh)

***

# Облака (Clouds)

## Курсы
- [[EN] Architecting Distributed Cloud Applications (2017, Jeffry Richter (да, тот самый Рихтер))](https://www.youtube.com/playlist?list=PL9XzOCngAkqs0Q8ZRdafnSYExKQurZrBY)
- [[EN] Building Microservices Applications On Azure Service Fabric (2019, Jeffry Richter)](https://learn.microsoft.com/en-us/shows/building-microservices-applications-on-azure-service-fabric/what-is-a-service-fabric-cluster)

***

# Инструментарий
## Git
- [Краткие инструкции по Git (что делать, если что-то пошло не так)](https://github.com/k88hudson/git-flight-rules/blob/master/README_ru.md)

***

## Регулярные выражения
- [Небольшой учебник по изучению регулярных выражений на GitHub](https://github.com/ziishaned/learn-regex/blob/master/translations/README-ru.md)
- [Кроссворды на регулярках — геймификация в изучении регулярок](https://regexcrossword.com/)

***

## GPT для программистов
- [Bloop: Чат с кодом (Open Source)](https://bloop.ai/)
- Загружаете в него репо и задаете по нему вопросу (например, "где реализована логика работы с аккаунтом?"), а bloop в ответ выдает вам список соответствующих файлов и мест в коде.
- [Onboard AI: Аналог bloop, только с закрытым исходным кодом](https://app.getonboardai.com/)
- [[EN] Курс "ChatGPT Prompt Engineering for Developers"](https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/)

***

# Прочее

## YouTube каналы
- [Сообщество YouTube-каналов с IT контентом на любые темы и уровни](https://ityoutubers.com/)

***

## Чаты (сообщества)
- [Большой сборник русскоязычных IT-чатов](https://github.com/mtdvio/ru-tech-chats)

***

## Другие сборники

- [[EN] Сборник "Каждый разработчик должен знать"](https://github.com/mtdvio/every-programmer-should-know?tab=readme-ov-file)
- [[EN] Чеклист перед выходом в продакшн](https://github.com/mtdvio/going-to-production)
- [Список сервисов в помощь веб-разработчику](https://github.com/mtdvio/web-development-resources)
- [Список сервисов (облачных в основном) с бесплатныыми лимитами для разработчиков](https://github.com/ripienaar/free-for-dev)

***

## TODO
* Добавить обозначение сложности материала для каждой из ссылок
* Добавить краткое описание каждого курса/доклада/статьи
* Добавить подробную навигацию
* В виде спойлера вывести все темы из курсов после названия курса

***

#### Материалы будут пополняться и структурироваться. PR горячо приветствуются.