Библиотека собеса по C# | вопросы с собеседований
Відкрити в Telegram
Вопросы с собеседований по C# и ответы на них. По рекламе: @tproger_sales_bot Учиться у нас: https://clc.to/QRJIVw Для обратной связи: @proglibrary_feeedback_bot Наши каналы: https://t.me/proglibrary/9197
Показати більше5 627
Підписники
+224 години
-97 днів
-2230 днів
Архів дописів
Repost from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
+6
🎁 256-й день года: 15 подарков, которые оценит каждый программист
Мы собрали 15 идей подарков — от практичных гаджетов до инструментов для профессионального роста. Эти подарки не только упростят рабочий процесс, но и вдохновят на новые достижения. Независимо от того, junior вы или senior, в нашем списке каждый найдёт что-то для себя.
👉 Смотреть список
Можно ли выполнить несколько блоков catch в C#?
Нет, в C# при возникновении исключения выполняется только один блок catch. Блоки catch оцениваются последовательно, и будет выполнен первый блок catch, соответствующий типу выброшенного исключения. После того, как соответствующий блок catch найден и выполнен, управление не будет передано ни одному последующему блоку catch в той же структуре блока try-catch.
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Как убрать тесную связь между двумя классами?
Путем введения интерфейсов между ними и использованием внедрения зависимостей.
Что такое индексаторы в C# .NET?
Индексаторы известны в C# как умные массивы. Это позволяет индексировать экземпляры класса так же, как и массив.
Что такое анонимный тип в C#?
Анонимный тип позволяет пользователям создавать новый тип без необходимости его определения. Это способ определить свойства, доступные только для чтения, в одном объекте без явного определения типа.
❗️Задача для конкурса в честь дня программиста
Условие:
Даны две строки s и f (начальная и конечная) и словарь D (набор слов).
Нужно определить, можно ли преобразовать s в f, используя только слова из словаря D. При этом каждое преобразование должно менять только один символ, а длина слова должна оставаться неизменной. Если преобразование возможно, нужно найти кратчайшую последовательность таких преобразований и вернуть ее длину. Если преобразование невозможно, вернуть "Преобразование невозможно".
Пример ввода 1:
D = ["cat", "cot", "dot", "dog", "bat", "dag"] s = "cat" t = "dog"Вывод: Минимальное количество шагов для преобразования 'cat' в 'dog': 3 Пример ввода 2:
D = ["cat", "cot", "bat"] s = "cat" t = "dog"Вывод: Минимальное количество шагов для преобразования 'cat' в 'dog': Преобразование невозможно
🆒 Дарим наш курс за ответ на задачу
В предверии дня программиста проводим конкурс: решите нашу задачу на тему программирования — рандомно выберем победителяПодробные условия: ➡️ Решаем задачу со следующего поста ➡️ Решение присылаем в бота @ProglibContest_bot ➡️ Рандомно среди правильных ответов разыгрываем курс на выбор Курсы на выбор: 🔵 Архитектуры и шаблоны программирования 🔵 Основы программирования на Python 🔵 Базовые модели ML и приложения 🔵 Frontend Basic: принцип работы современного веба Таймлайн: 11-12 сентября — принимаем ответы ⬇️ 13 сентября — подводим итоги
Что такое управляемый или неуправляемый код?
Код, написанный с целью получения сервисов управляемой среды выполнения, такой как CLR (Common Language Runtime) в .NET Framework, называется управляемым кодом. Он всегда реализуется управляемой средой выполнения, а не выполняется напрямую операционной системой. Управляемая среда выполнения предоставляет различные типы служб, такие как сборка мусора, проверка типов, обработка исключений, проверка границ и т. д. для автоматического кода без вмешательства программиста. Он также обеспечивает выделение памяти, безопасность типов и т. д. для кода. Приложение, написанное на таких языках, как Java, C#, VB.Net и т. д., всегда нацелено на сервисы среды выполнения для управления выполнением, а код, написанный на этих типах языков, называется управляемым кодом.
Код, который напрямую выполняется операционной системой, называется неуправляемым кодом. Он всегда нацелен на архитектуру процессора и зависит от архитектуры компьютера. Когда этот код компилируется, он всегда стремится получить определенную архитектуру и всегда работает на этой платформе, другими словами, всякий раз, когда вы хотите выполнить тот же код для другой архитектуры, вам приходится перекомпилировать этот код снова в соответствии с этой архитектурой. Он всегда компилируется в нативный код, который специфичен для архитектуры.
Repost from Библиотека программиста
🛠 Сага: эффективный шаблон микросервисной архитектуры
Полную бизнес-транзакцию, как правило, очень сложно описать с помощью одной транзакции в базе данных. Возьмем, к примеру, процесс покупки в онлайн-магазине — с момента нажатия кнопки «Купить» до момента доставки заказа к вашей двери происходит серия шагов:
🔸 Размещение заказа. Пользователь выбирает нужные товары, добавляет их в корзину и начинает процесс оформления заказа. Система сохраняет информацию о видах товаров, их количестве, имени заказчика, адресе и способе доставки.
🔸 Создание счета-фактуры. После размещения заказа создается счет-фактура, который служит основной записью о транзакции и используется для выставления счета и учета.
🔸 Обработка платежа. Инициируется процесс оплаты, пользователь предоставляет данные банковской карты или электронного кошелька. Оплата безопасно обрабатывается, и после успешного завершения заказ подтверждается.
🔸 Отправка товара. После обработки платежа заказ готовится к отправке: создается информация для отслеживания, система уведомляет пользователя об ориентировочной дате доставки.
Каждый из этих шагов включает взаимодействие с различными микросервисами — сервисов заказов, платежным сервисом и сервисом доставки. Для успешного и последовательного выполнения бизнес-транзакции важна безупречная координация всех частей системы. Эта задача кажется очень сложной, но к счастью, есть универсальный и надежный паттерн, который помогает выстроить взаимодействие микросервисов самым оптимальным образом — Сага. О нем и пойдет речь в статье.
Полезные методы для работы с датой
Метод ToLocalTime() преобразует время UTC в локальное время, добавляя смещение относительно времени по Гринвичу.
Метод ToUniversalTime(), наоборот, преобразует локальное время во время UTC, то есть вычитает смещение относительно времени по Гринвичу.
Остальные методы преобразуют дату к определенному формату.
Что такое глобальный кэш сборок в C#?
Глобальный кэш сборок (GAC) — это централизованный репозиторий или кэш для хранения и совместного использования сборок .NET (DLL) на машине. GAC является частью .NET Framework и используется для предотвращения конфликтов DLL и обеспечения параллельного выполнения различных версий одной и той же сборки.
Сборки, хранящиеся в GAC, должны иметь строгое имя, которое состоит из имени сборки, номера версии, информации о культуре (если применимо) и токена открытого ключа (сгенерированного из закрытого ключа разработчика). Это строгое имя позволяет GAC однозначно идентифицировать и управлять каждой сборкой и ее версиями.
Repost from Библиотека питониста | Python, Django, Flask
+4
🛠️ API-документация без головной боли: ТОП-11 инструментов
Ручное создание документации отнимает много времени и чревато ошибками. Представляем подборку инструментов, которые автоматизируют процесс и помогут вам сосредоточиться на разработке, а не на написании документации.
🔗 Читать статью
Свойства LinkedList
Класс LinkedList определяет следующие свойства:
• Count: количество элементов в связанном списке;
• First: первый узел в списке в виде объекта LinkedListNode;
• Last: последний узел в списке в виде объекта LinkedListNode.
const vs readonly
const — значение подставляется при компиляции => установить можно только до компиляции.
readonly — установить значение можно только до компиляции или в конструкторе.
Repost from Библиотека программиста
🏗️ Структуры данных для разработчиков: 10 самых важных
Структуры данных — фундамент эффективной разработки. Кратко разберем 10 ключевых структур данных, которые необходимо освоить каждому разработчику для создания производительных и масштабируемых приложений, а подробнее читайте в статье👇
🔹 Списки отлично подходят для хранения и обработки упорядоченных данных и полезны в различных приложениях, таких как управление задачами, ленты соцсетей и корзины интернет-магазинов.
🔹 Массивы — упорядоченная коллекция элементов фиксированного размера и хорошо подходят для ситуаций, где размер коллекции известен или редко меняется.
🔹 Стеки следуют принципу «последним пришел — первым вышел». Они идеальны для реализации операций отмены/повтора в текстовых редакторах или ведения истории просмотров в веб-браузерах.
🔹 Очереди работают по принципу «первым пришел — первым вышел». Они подходят для управления заданиями печати, отправки действий пользователя в играх на сервер или обработки сообщений в чат-приложениях.
🔹 Кучи используются для планирования задач и управления памятью. Они особенно полезны в реализации очередей с приоритетами, где нужен доступ к элементу с наивысшим или наименьшим приоритетом.
🔹 Деревья организуют данные иерархически. Они полезны для представления данных с естественными иерархиями или связями и могут использоваться в различных приложениях, таких как индексация баз данных.
🔹 Хеш-таблицы позволяют эффективно искать, вставлять и удалять данные. Они используют хеш-функцию для сопоставления ключей с соответствующими местами хранения и обеспечивают доступ к сохраненным значениям за постоянное время.
🔹 Суффиксные деревья специализируются на поиске строк в документах, что делает их идеальными для текстовых редакторов и алгоритмов поиска.
🔹 Графы отслеживают отношения и находят пути, что делает их незаменимыми в социальных сетях, рекомендательных системах и алгоритмах поиска путей.
🔹 KD-деревья хороши для поиска ближайших соседей и важны для картографических приложений и геолокационных сервисов.
Объясните модификаторы доступа в C#.
Ответ: Модификаторы доступа — это ключевые слова, которые определяют уровень доступности члена типа или самого типа. Например, открытый класс доступен всему миру, тогда как внутренний класс может быть доступен только сборке.
В чем разница между перегрузкой метода и переопределением метода в C#?
Параметры метода должны быть разными при перегрузке метода, тогда как при переопределении метода они должны быть одинаковыми.
Наследование не требуется при перегрузке метода, оно происходит внутри одного класса. Но при переопределении метода требуется наследование.
