18377
По всем вопросам- @haarrp C# - обучающий канал Senior C# разработчика. @ai_machinelearning_big_data - Machine learning @itchannels_telegram - 🔥лучшие ит-каналы @csharp_ci - C# академия @pythonlbooks- книги📚 Реестр РКН: https://clck.ru/3Fk3kb
ХОЧЕШЬ ПОВЫСИТЬ ГРЕЙД В 2024 ГОДУ? 🚀
Чтобы стать Senior C# разработчиком сегодня, нужно не только знать язык программирования и фреймворки. Нужно уметь строить гибкую архитектуру приложения, которую легко тестировать и менять под задачи бизнеса. Стань экспертом в построении гибкой архитектуры приложения!
👉 Стартуем 11 декабря.
Курс ведет действующий архитектор и Principal Engineer Кирилл Ветчинкин.
Ты научишься:
✅ Разбивать приложение на слои в соответствии с Clean Architecture
✅ Формировать Domain Model и применять тактические паттерны DDD
✅ Реализовывать Use Case как Command/Query
✅ Делать синхронные и асинхронные интеграции, не загрязняя ядро приложения
✅ Писать 3 вида тестов для разных слоев приложения
Полная программа ТУТ 👉 https://microarch.ru/courses/ddd?utm_source=posev&utm_medium=erid:2Vtzqw84rvt&utm_campaign=2
А главное — ты с нуля разработаешь и запустишь микросервис, который максимально приближен к реальности "Диспетчеризация заказов на курьеров". Это будет крутым проектом в портфолио или основой для рабочих задач.
А еще:
✅ Проверим все домашки
✅ Поддержим в чате
✅ Проведем живые разборы
✅ Ответим на все вопросы
📕 Сертификат об участии по итогам прохождения курса.
🔥 Не откладывай свой рост на потом: https://microarch.ru/courses/ddd?utm_source=posev&utm_medium=erid:2Vtzqw84rvt&utm_campaign=2
Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2Vtzqw84rvt
Создай свой космический шутер с нуля!
Не пропусти серию открытых уроков «Создание sci-fi шутера на Unity»! На втором уроке научимся добавлять противников, создавать спавнеры и подбирать лут.
Ты не просто создашь игру — ты освоишь базовые механики, которые пригодятся для работы над любыми проектами в Unity. Стань на шаг ближе к карьере Junior Unity Developer.
🔥 Спикер Николай Терентьев — Architect Unity Developer в Somnium Fabri.
Присоединяйся 10 декабря в 20:00 мск! Урок проходит перед стартом курса «Unity Game Developer. Basic». Для участников вебинара — скидка на большое обучение!
🔴 Переходи на сайт, чтобы зарегистрироваться и получить запись предыдущего вебинара: https://otus.pw/k4bW/?erid=LjN8JwN2o
#реклама
О рекламодателе
🖥 Inferno — это библиотека для .NET, обеспечивающая безопасное использование криптографических алгоритмов!
🌟 Она упрощает интеграцию криптографии, предлагая высокоуровневые, проверенные на практике реализации для шифрования, хеширования, генерации случайных чисел и других операций. Inferno акцентирует внимание на корректности и защите от типичных ошибок разработчиков.
🔐 Лицензия: MIT
🔗 Ссылка: *клик*
🖥 Github
@csharp_ci
🖥 Защита .NET Core API от DDoS-атак!
🌟 Эта статья объясняет, как защитить ASP.NET Core API от DDoS-атак. Рассматриваются методы ограничения запросов, такие как использование middleware для троттлинга и внедрение кастомной логики управления по IP-адресам. Для более высокой безопасности предлагается использование API-шлюзов, защитных механизмов против CSRF и строгой настройки CORS, а также шифрование данных.
🔗 Ссылка: *клик*
@csharp_ci
🖥 Эта статья объясняет, как горизонтально масштабировать API, созданные с использованием ASP.NET Core, с помощью YARP (Yet Another Reverse Proxy)!
🌟 Автор подробно рассматривает, как настроить YARP для балансировки нагрузки между несколькими экземплярами API-сервера, что помогает повысить производительность и надежность приложения, особенно при увеличении нагрузки.
🔗 Ссылка: *клик*
@csharp_ci
🖥 AuthPermissions.AspNetCore — библиотека для ASP.NET Core, предоставляющая инструменты для реализации гибкой системы авторизации!
🌟 Она включает такие функции, как настраиваемые роли, многоуровневая многопользовательская (multi-tenant) архитектура и поддержка обновляемых токенов JWT. Библиотека позволяет администраторам изменять разрешения ролей без необходимости перезапуска приложения, а также поддерживает различные схемы аутентификации и хранения данных, такие как шардирование и общие базы данных.
🔐 Лицензия: MIT
🖥 Github
@csharp_ci
💼 Декабрьский челлендж для алготрейдеров!
Используешь роботов в торговле на бирже? Тогда заходи в Терминал или приложение Т-Банка, нажимай на кнопку «Участвовать», подключай брокерский счет и готовься к конкурсу от Т-Инвестиций.
С 2 по 13 декабря твой робот должен совершить минимум 1000 сделок. По итогам конкурса выберем трейдеров с самой высокой доходностью в двух категориях: портфели до 1 млн руб. и от 1 млн руб.
Лидеры категорий разделят между собой призовой фонд в размере 550 000 рублей.
Узнать больше про конкурс можно тут.
P.S.📚 А если не торгуешь, но эта тема интересна - то изучи Invest API для подключения торговых роботов, готовый sdk и примеры роботов других участников.
Сроки акции с 2.12.2024 по 13.12.2024. Подробнее об организаторе акции, порядке её проведения, призах, сроках, месте и порядке их получения на tbank.ru. АО «ТБанк». Реклама.
⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
МАШИННОЕ ОБУЧЕНИЕ: t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
Devops: t.me/DevOPSitsec
АНАЛИЗ Данных: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Docker: t.me/DevopsDocker
Golang: t.me/golang_interview
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
Собеседования МЛ: t.me/machinelearning_interview
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: /channel/gamedev
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy
⚡️Истовый инженер теперь в Telegram!
В канале публикуют полезные статьи для инженеров и программистов со всех направлений. Вот, что мы лично прочитали и где поставили лайк:
— Что изучить про алгоритмы и структуры данных разработчикам на С++ ( читать )
— CodeChecker: анализируем большой проект на С++ быстро, эффективно и бесплатно ( читать )
— 5 способов писать эффективный код на Go: от нейминга переменных до архитектуры ( читать )
— Ужасно подробные ошибки в API: пишем инструмент для работы с ними на Go ( читать )
📝 и ещё 100+ полезных статей, лекций и кейсов от практиков
Подписываемся, чтобы не потерять полезный канал @ultimate_engineer
🚀 Митап по C++ — в центре внимания ключевые аспекты разработки!
✔️ Применение паттернов ООП в современных C++ проектах — Костя Крюков, YADRO
Поговорим о сочетании производительности и гибкости в реальных проектах C++.
✔️ Void me — Сергей Кушниренко, Forgotten Empires (Microsoft Game Studios)
Разберём проблемы типа void в тестах и альтернативные решения.
✔️ Обзор build-системы LightForge — Сергей Струков, YADRO
Сравним LightForge с Make, CMake и Bazel, обсудим её преимущества.
✔️ Сериализация сложных структур данных с помощью jsoncpp — Константин Селезнёв, РЕЛЭКС
Создание удобной надстройки для работы с JSON в сложных проектах.
✔️ Статический анализ: что? как? зачем? — Евгений Феклин, PVS-Studio
Как писать безопасный и качественный код с помощью статического анализа.
Модератор: Алексей Кузнецов, VK
Эксперт: Илья Казаков, YADRO
➖➖➖
🗓 28 ноября, начало в 19:00 мск, Четверг
🌐 ОНЛАЙН
✅ Регистрация на мероприятие
Реклама. ООО "ЭВРОНЕ.ру", ИНН 3663057399.
Erid:2VfnxwQjaFr
👍Как применить принципы ООП в языке С для создания сложных программ?
Узнайте на бесплатном уроке онлайн-курса «Программист С» — «Язык Cи и ООП: пошаговая разработка видеоплеера»: регистрация
Разберем практический пример разработки видеоплеера с использованием объектно-ориентированного подхода:
- узнаете особенности реализации ООП в языке С
- рассмотрим проектирование архитектуры видеоплеера: от интерфейсов к реализации
- проведем практику: пошаговая разработка основных компонентов плеера.
Также будет обработка ошибок и управление памятью в объектно-ориентированном стиле; live-coding: демонстрация работы с форматами видео и аудио в С.
В результате получите:
- готовый прототип видеоплеера на С с использованием ООП подходов и практические навыки применения паттернов проектирования в Си.
🔥После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Как бы изменились наши будни, если бы создание программного кода стало легким и непринужденным? Представьте язык, созданный для удобства именно человека, а не машины.
Такая мечта жила в умах разработчиков Microsoft, и в результате для нас разработали C#.
Итак, основные причины продолжить изучение C# уже на профессиональном уровне:
✔️C# занимает ведущую позицию среди языков программирования для создания компьютерных игр.
- Только C# официально совместим с движком Unity.
- Какой доход вы можете ожидать, изучив C# для разработки игр? При усердной работе можно рассчитывать на заработок от 200 000 рублей в месяц!
✔️C# - основной язык для разработки приложений под Windows:
- Изначально C# создан Microsoft для использования в своих продуктах.
- Они также разработали среду разработки Visual Studio.
🎉А теперь главная причина: выгода 12750 рублей на обучение на курсе C# Developer. Professional до 28.11.2024 по ссылке: https://clck.ru/3EjzW7?erid=LjN8KVvNa
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Хотите понять, как Rust справляется с асинхронностью и почему этот язык так эффективен?
Приглашаем на открытый урок «Асинхронность под капотом» 25 ноября в 20:00 мск! За один вечер вы разберетесь, как Rust организует асинхронные задачи, узнаете, как компилятор преобразует async-функции, и получите основы для работы с асинхронным кодом на профессиональном уровне.
Спикер Кирилл Федченко — опытный разработчик на нескольких языках.
Зарегистрируйтесь на вебинар и откройте для себя Rust с новой стороны! Участники получат скидку на большой курс «Rust Developer. Professional». Регистрация открыта!
#реклама
О рекламодателе
Погрузитесь в мир высокотехнологичных решений и узнайте, как создать интерактивные веб-приложения с помощью SignalR! Регистрируйтесь на бесплатный вебинар: https://clck.ru/3Eicyz
1. Зачем использовать SignalR: Узнайте, какие задачи решает эта мощная технология и почему она необходима для современных приложений.
2. Концепции и работа SignalR: Поймем, как работают хабы, соединения, клиенты и серверы, а также механизмы протоколов WebSocket и Long Polling.
3. Создание интерактивного чата: Построим структуру простого чата. Напишем код для отправки и получения сообщений в реальном времени. Обработаем события, такие как подключение/отключение пользователей и оповещения о новых сообщениях.
Кому будет полезно:
1️⃣ .NET разработчикам: Расширьте свои навыки работы с ASP NET Core и создавайте интерактивные приложения.
2️⃣ Веб-разработчикам: Узнайте, как создавать быстро реагирующие и интерактивные веб-приложения.
🔥Не упустите шанс! Зарегистрируйтесь сейчас и станьте мастером создания интерактивных веб-приложений с SignalR!
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
⚡️ Слеза ностальгии для программистов: возрождение классического Visual Basic 6, полностью написанного на C#.
В проект входят Visual Designer и поддержка открытия/сохранения проектов в формате, совместимом с VB6.
dotnet publish AvaloniaVisualBasic.Desktop -f net9.0 -o bin/
dotnet publish AvaloniaVisualBasic.Standalone -f net9.0 -o bin/standalone/
🖥 GitHub
⭐️ Веб-версия
#csharp #programming
@csharp_ci
🖥 Понимание Memory<T> в C#!
💡 Современные приложения часто требуют эффективной обработки больших наборов данных без ненужного копирования данных. В C# представлен Memory<T>, как универсальный инструмент для оптимизации управления памятью. В этой статье мы рассмотрим, как Memory<T> решает распространенные проблемы, его преимущества перед традиционными подходами и как он сравнивается с Span<T>!
🔗 Ссылка: *клик*
@csharp_ci
⚡️ Курс Unity с нуля Урок 9. Система частиц, Аудио клипы, Триггеры
▪Видео
▪Полный курс
✔️ .𝗡𝗘𝗧 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿 𝗥𝗼𝗮𝗱𝗺𝗮𝗽.
Как изучить C# /.NET-разработку и какие учебные ресурсы использовать .
Вот план изучинияC# / .NET-разработки.
📂 𝗡𝗘𝗧 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿 𝗥𝗼𝗮𝗱𝗺𝗮𝗽
∟📂 C#
└📄 Learn basics of C# 6 - 13
└📄 Learn .NET 8 and .NET 9
└📄 Learn dotnet CLI
∟📂 General Development skills
└📄 Learn Git
└📄 Learn HTTP/HTTPS
└📄 Learn data structures and algorithms
└📄 Learn SOLID, YAGNI, DRY, KISS principles
└📄 Learn Design Patterns
∟📂 ASP. NET Core
└📄 MVC
└📂 APIs
└📄 REST
└📄 GraphQL
└📄 gRPC
└📄 Web APIs
└📄 Minimal APIs
└📄 Middlewares
└📄 Filters & Attributes
└📄 Authentication & Authorisation
∟📂 Client-Side .NET
└📄 Razor
└📄 Blazor
└📄 .NET MAUI
∟📂 Databases
└📄 Database design & SQL
└📄 Stored procedures
└📂 DBMS
└📂 Relational
└📄 SQL Server
└📄 Postrges
└📄 MySQL/MariaDB
└📂 NoSQL
└📄 MongoDB
└📄 RavenDB
└📄 CosmosDB
∟📂 ORM
└📂 Entity Framework Core
└📄 Learn basics
└📄 Code first & migrations
└📄 Change tracker API
└📄 Lazy/eager loading
∟📂 Caching
└📄 Memory Cache
└📄 Redis
└📄 Application-level
∟📂 Logging
└📄 Serilog
└📄 NLog
∟📂 Real-time communication
└📄 SignalR Core
└📄 Web Sockets
∟📂 Background tasks
└📄 Native Backround Service
└📄 HangFire
└📄 Quartz
∟📂 Object Mapping
└📄 AutoMapper
└📄 Mapster
∟📂 Testing
└📂 Unit Testing
└📂 Frameworks
└📄 xUnit
└📄 NUnit
└📂 Mocking
└📄 NSubstitute
└📄 Moq
└📂 Assertion
└📄 FluentAssertions
└📂 Test Data Generators
└📄 Bogus
└📄 AutoFixture
└📂 Integration Testing
└📄 WebApplicationFactory
└📄 TestServer
└📂 Snapshot Testing
└📄 Verify
└📂 End-to-End Testing
└📄 Playwright
└📂 Performance Testing
└📄 K6
└📄 JMeter
∟📂 Monitoring & Telemetry
└📄 OpenTelemetry (Jeager)
└📄 Prometheus
└📄 Grafana
└📄 ELK Stack
└📄 Datadog
∟📂 Cloud
└📄 Azure
└📄 AWS
∟📂 Continous integration & delivery
└📄 GitHub actions
└📄 GitLab CI
└📄 Azure Pipelines
└📄 Jenkins
∟📂 .NET Libraries
└📄 MediatR
└📄 Polly
└📄 FluentValidation
@csharp_ci
🔵🗣Вырасти до хардового Middle+ аналитика.
Как? Добавьте к своим скилам навыки в проектировании архитектуры и интеграций веб-сервисов!
Рассмотрите — авторский курс про архитектуру и интеграции
с практикой.
—————
По результатам курса вы:
▫️научитесь выбирать стиль интеграции под вашу задачу;
▫️сможете проектировать с нуля и описывать интеграции в современных стилях (API: REST, SOAP, gRPC и др. + брокеры сообщений);
▫️поймете, как правильно собирать требования и моделировать в UML;
▫️подготовитесь к собеседованию, решив более 100 тестов;
▫️разработаете свой API на Python;
—————
🟢Вы получите большую базу фундаментальных знаний, доступ к урокам и обновлениям остается навсегда 💡
• Всю программу и отзывы смотрите в боте курса.
• Бонусный модуль про проектирование баз данных — нормализация, транзакции, основы DWH, индексы.
• Результат после прохождения курса: 15 рабочих проектов в портфолио.
• Доступ к чату учеников (общение, обмен опытом, помощь внутри сообщества)
🔹🔹 С чего начать?🔹🔹
С открытых бесплатных уроков по архитектуре и интеграциям в чат-боте курса. Переходите.
👇
@studyit_help_bot
Скидка на курс от канала —
1 000₽ по промокоду
CSHARP до 31 декабря
Подготовили для вас новый полезный вебинар на тему: «Мониторинг работоспособности ASP.NET Core приложений.»
Что будет?
- Обсудим различные подходы, позволяющие эффективно отслеживать состояние приложения, выявлять проблемы и улучшать производительность.
- Рассмотрим сценарии использования инструментов мониторинга.
- Разберем практические примеры обеспечения надежности и доступности веб-сервисов.
Все это + очень приличная скидка на курс C# ASP.NET Core разработчик при регистрации по ссылке: https://clck.ru/3EzfKC
Скидка может быть и не пригодится прямо сейчас, но лучше же чтобы она была, да? 🤔
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
🖥 dotNetify — библиотека с открытым исходным кодом для создания приложений, функционирующих в режиме реального времени на основе .NET Core и React!
🌟 С помощью dotNetify разработчики могут связывать фронтенд-приложения с бэкендом на .NET, используя двустороннюю коммуникацию через WebSockets. Основное преимущество заключается в упрощении создания динамических интерфейсов и управления состоянием в реальном времени.
🌟 В библиотеке представлены примеры, такие как интеграция React с .NET Core, реализация реального времени графиков, компонентов с загрузкой данных и даже создание кроссплатформенных приложений с использованием Electron. Документация доступна на dotnetify.net .
🔐 Лицензия: Apache-2.0
🖥 Github
@csharp_ci
🖥 Реализация шаблона Saga на языке C#!
🌟 Шаблон Saga — это шаблон проектирования, который решает сложности, связанные с управлением распределенными транзакциями и обеспечением согласованности данных в микросервисах. Он разбивает длительную транзакцию на ряд более мелких, управляемых транзакций.
🔗 Ссылка: *клик*
@csharp_ci
🖥 Эта статья посвящена улучшению качества кода в C#!
🌟 Она подчеркивает важность написания небольших функций, выполняющих одну задачу, что способствует упрощению сопровождения и тестирования кода.
🌟 Основные рекомендации: сокращение длины функций (до 4-6 строк), использование описательных имен для функций и методов, а также создание тестов, которые позволяют убедиться в корректности каждой отдельной функции. В более сложных случаях, когда функции становятся перегруженными, автор рекомендует структурировать их в классы для лучшей организации и читаемости.
🔗 Подробнее: *клик*
@csharp_ci
🖥 Что находится внутри ограничения скорости для .NET?
💡 API ограничения скорости дебютировал в .NET 7. Он реализует несколько популярных алгоритмов для ограничения количества запросов к общему ресурсу. Этот API обычно продвигается как часть встроенного промежуточного программного обеспечения ограничения скорости ASP.NET Core. Однако сам API не зависит от ASP.NET и имеет более широкую область применения. Этот API был недавно написан и может отражать текущее состояние параллелизма в .NET. Наконец, это готовая к использованию библиотека, а не книжный пример семафора в цикле со сном. Так что давайте заглянем внутрь и посмотрим, сможем ли мы чему-то научиться!
🔗 Ссылка: *клик*
@csharp_ci
🖥 SurrealDB — это современная многомодельная база данных, предназначенная для универсального управления данными!
💡 Она объединяет возможности SQL, NoSQL и графовых баз данных в едином решении, позволяя использовать реляционные, документные, графовые, временные и ключ-значение модели данных без необходимости переключаться между разными системами.
🌟 SurrealDB также поддерживает запросы через SQL, GraphQL, REST и SDK для различных языков программирования, таких как Rust, C#, Python, PHP, Java и другие. Кроме того, она включает функции реального времени, масштабируемости, встроенной поддержки AI и машинного обучения, а также обладает мощной системой управления схемами и разрешениями.
🔐 Лицензия: Apache-2.0
🖥 Github
@csharp_ci
🖥 В этой полезной статье автор рассказывает 8 способов, как сделать ваш C# код чище и читабельнее!
🌟 Автор берет за пример кусок "грязного" кода и демонстрирует способы его улучшения шаг за шагом.
🔗 Ссылка: *клик*
@csharp_ci
🖥 Создание RESTful API с .NET и Clean Architecture: полное руководство!
🌟 Статья начинается с теоретического объяснения Clean Architecture, описывая ключевые принципы и выделяя слои архитектуры. Далее автор углубляется в каждый слой, показывая, как использовать .NET Core, Entity Framework Core и другие технологии для их реализации. В частности, он рассматривает инфраструктуру CQRS (Command Query Responsibility Segregation) и реализует конкретные компоненты с поддержкой для MediatR.
🔗 Ссылка: *клик*
@csharp_ci
🖥Эта статья описывает, как использовать библиотеку Testcontainers для интеграционного тестирования в .NET с помощью Docker!
💡 Testcontainers позволяет автоматически запускать контейнеры для различных сервисов, таких как базы данных, и использовать их в тестах, что обеспечивает более реалистичное окружение по сравнению с моками или in-memory решениями. Автор также делится примером настройки и применения Testcontainers в ASP.NET Core и описывает, как интеграционные тесты можно запускать в CI/CD.
🔗 Ссылка: *клик*
@csharp_ci
🖥 Обеспечьте контейнерам доступ к пользовательским локальным доменам на хост-машине с помощью .NET Aspire!
⭐️ Пользовательские домены полезны для локальной разработки, но контейнеры не могут разрешать их по умолчанию. Узнайте, как заставить контейнеры распознавать пользовательские хосты хост-машины с помощью .NET AspireAspire!
🔗 Ссылка: *клик*
@csharp_ci
Стоит ли учить сегодня ASP NET и можно ли на этом заработать?
1. Это уже достаточно зрелый фреймворк, на котором работает много серьезных проектов (таких, как StackOverflow) и которая востребована на рынке как в России, так и в мире.
2. Есть возможность разрабатывать компактные кроссплатформенные приложения, которые можно развертывать самостоятельно, без огромного сервера за спиной.
3. Сам C# достаточно интересный, активно развивающийся язык. Поэтому предлагаем пройти короткий тест и оценить свой уровень навыков: https://clck.ru/3EdFZE
А прокачать и получить востребованную специальность, либо повышение на текущей работе можно уже будет с серьезной скидкой на курсе C# ASP NET Core разработчик.
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.