Array, List, Dictionary, Queue, Stack, HashSet и кастомные коллекции — ключевые инструменты для оптимизации игр.
В карточках всего не уместишь, поэтому, после прочтения, советуем заглянуть в нашу статью.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱15❤4👍1
Составили для вас промпт, который поможет вам пройти собеседование, если у вас не хватает опыта. Помимо редактирования резюме, нужно уметь отвечать за свои знания и действия во время собеседования, представить свой опыт и показать свою готовность к обучению и развитию.
Промпт:
Вы опытный технический лидер и рекрутер с более чем 15-летним стажем в индустрии разработки программного обеспечения. Вы видели множество кандидатов, как честных, так и... менее честных. У вас есть острое чувство для выявления несоответствий и понимания нюансов технических навыков. Ваша цель — предоставить практические советы кандидату, который пытается разобраться с непростой ситуацией объяснения нехватки опыта, если он мог приукрасить свое резюме.
Вот формат, который вы будете использовать для анализа проблемы и выработки отличной рекомендации:
Ситуация кандидата
$candidate_situation (Опишите ситуацию кандидата, сосредоточив внимание на несоответствии между его резюме и реальным опытом)
Потенциальные риски завышения опыта
$risks_of_misrepresentation (Перечислите потенциальные негативные последствия преувеличения опыта, как в краткосрочной, так и в долгосрочной перспективе)
Этические соображения
$ethical_considerations (Кратко обсудите этические последствия завышения опыта)
Рекомендованный подход: Прозрачность и демонстрация навыков
$recommended_approach (Это основа ваших советов. Сосредоточьтесь на том, как кандидат может быть прозрачным в отношении своего опыта, при этом подчеркивая свои навыки и потенциал)
Ключевые стратегии для преодоления "разрыва в опыте"
Признание и переформулировка: $strategy_1 (Как признать несоответствие, не признавшись в явном обмане)
Фокус на навыках и проектах: $strategy_2 (Как продемонстрировать навыки через личные проекты, вклад в open-source или соответствующие курсы)
Подчеркнуть способность к обучению: $strategy_3 (Как показать готовность и способность быстро учиться и адаптироваться к новым технологиям)
Подчеркнуть страсть и энтузиазм: $strategy_4 (Как передать искренний интерес к роли и компании)
Подготовка к техническим вопросам: $strategy_5 (Как предугадать и ответить на технические вопросы, даже если нет прямого профессионального опыта)
Примеры ответов на часто задаваемые вопросы на собеседованиях
"Расскажите о вашем опыте работы с [Технология X]": $example_response_1 (Пример ответа, который признает ограниченный профессиональный опыт, но подчеркивает соответствующие навыки и проекты)
"Почему мы должны нанять вас, а не кого-то с большим опытом?": $example_response_2 (Пример ответа, который акцентирует внимание на потенциале, способности к обучению и страсти)
Долгосрочная стратегия для карьеры
$long_term_strategy (Предложите шаги, которые кандидат может предпринять, чтобы получить настоящий опыт и построить прочную основу для своей карьеры)
Вот задача, с которой вам предстоит справиться: Кандидат завысил количество лет опыта в своем резюме, чтобы выглядеть более конкурентоспособным для ролей младшего инженера программного обеспечения. Сейчас он проходит собеседования и не уверен, как отвечать на вопросы о своем "опыте", не попав в ловушку лжи. Ему нужны советы о том, как пройти собеседования и в итоге получить работу.
💬 Какие у вас сложности с прохождением собеседований?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1😢1
Сейчас большинство представлений об ИИ ограничиваются одним агентом — моделькой, которая что-то предсказывает, генерирует или классифицирует.
Но реальный прорыв начинается, когда этих агентов становится несколько.
Когда они начинают взаимодействовать друг с другом.
Когда появляется координация, распределение ролей, память, планирование — всё это и есть мультиагентные системы (MAS).
— Microsoft делает язык DroidSpeak для общения между LLM
— Open Source-фреймворки вроде LangChain, AutoGen, CrewAI, LangGraph — бурно развиваются
— компании, включая МТС, уже применяют MAS в боевых задачах
🎓 На курсе мы подходим к этому практично:
Именно на третьем уроке вы впервые собираете не просто «умного бота», а живую систему из агентов, которая работает вместе — как команда.
Причём по-настоящему: врач, SQL-аналитик, travel-планировщик, Python-генератор, поисковик.
Please open Telegram to view this post
VIEW IN TELEGRAM
👾4🥱2❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁32💯4🔥2👍1
🔍 Как диагностировать проблемы с производительностью в .NET
Когда вы сталкиваетесь с неожиданными задержками или замедлением работы, важно быстро выявить источник проблемы. Разберёмся как это сделать.
1. Понимание проблем с производительностью
В первую очередь, нужно понять, какие именно симптомы проявляются. Это могут быть:
• Долгое время отклика на запросы
• Увеличение времени обработки операций.
• Частые паузы или лаги, которые не зависят от внешней нагрузки.
2. Использование инструментов для профилирования
.NET предоставляет инструменты для профилирования и анализа производительности:
— PerfView. Инструмент для сбора и анализа трассировок и дампов памяти, который позволяет обнаружить узкие места в работе приложения
— dotTrace и Visual Studio Diagnostic Tools. Для анализа использования процессора и памяти, выявления горячих точек и оптимизации производительности.
— Application Insights. Сервис для мониторинга и анализа производительности в реальном времени.
3. Проверка работы сборщика мусора
Если ваше приложение не может эффективно управлять памятью, это приведет к длительным паузам, особенно в больших распределенных системах.
Фоновая сборка мусора в .NET может повлиять на производительность, если куча больших объектов часто расширяется.
Процесс аллокации памяти и выделение больших объектов может также привести к частым паузам, особенно если ваша система не успевает очистить память между сборками.
4. Анализ работы с памятью
Использование Large Object Heap для хранения больших объектов может вызвать проблемы с производительностью, так как LOH очищается реже и требует дополнительного времени для управления.
Проблемы с памятью также могут быть связаны с неэффективной работой с кэшами и слишком большими или неправильно настроенными буферами.
Зачастую сложно сразу найти проблемы с кодом, но это того стоит, особенно на длинной дистанции, чтобы не копить техдолг.
🐸 Библиотека шарписта #буст
Когда вы сталкиваетесь с неожиданными задержками или замедлением работы, важно быстро выявить источник проблемы. Разберёмся как это сделать.
1. Понимание проблем с производительностью
В первую очередь, нужно понять, какие именно симптомы проявляются. Это могут быть:
• Долгое время отклика на запросы
• Увеличение времени обработки операций.
• Частые паузы или лаги, которые не зависят от внешней нагрузки.
2. Использование инструментов для профилирования
.NET предоставляет инструменты для профилирования и анализа производительности:
— PerfView. Инструмент для сбора и анализа трассировок и дампов памяти, который позволяет обнаружить узкие места в работе приложения
— dotTrace и Visual Studio Diagnostic Tools. Для анализа использования процессора и памяти, выявления горячих точек и оптимизации производительности.
— Application Insights. Сервис для мониторинга и анализа производительности в реальном времени.
3. Проверка работы сборщика мусора
Если ваше приложение не может эффективно управлять памятью, это приведет к длительным паузам, особенно в больших распределенных системах.
Фоновая сборка мусора в .NET может повлиять на производительность, если куча больших объектов часто расширяется.
Процесс аллокации памяти и выделение больших объектов может также привести к частым паузам, особенно если ваша система не успевает очистить память между сборками.
4. Анализ работы с памятью
Использование Large Object Heap для хранения больших объектов может вызвать проблемы с производительностью, так как LOH очищается реже и требует дополнительного времени для управления.
Проблемы с памятью также могут быть связаны с неэффективной работой с кэшами и слишком большими или неправильно настроенными буферами.
Зачастую сложно сразу найти проблемы с кодом, но это того стоит, особенно на длинной дистанции, чтобы не копить техдолг.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍1
🤔 Такие ли айтишники проблемные
Многие думают, что айтишники наполовину состоят из проблем с головой. Кто в этом виноват и стоит ли переживать?
На одной стороне стоят те, кто уверены: IT-сфера — это «психологическая бомба замедленного действия», и в ней нужно менять многое, чтобы сохранить благополучие специалистов.
Возможно, нужна более гибкая и заботливая рабочая среда?
С другой стороны — есть мнение, что в любых профессиях существует стресс, и айтишники, как люди, привыкшие к решению сложных задач, должны научиться справляться с ними.
Наш админ думает так:
💬 Что думаете об этом? Как у вас обстоят дела с головой? Делитесь в комментариях 👇
Понравился пост? Поделитесь бустом, а мы взамен поделимся топовым контентом.
🐸 Библиотека шарписта #междусобойчик
Многие думают, что айтишники наполовину состоят из проблем с головой. Кто в этом виноват и стоит ли переживать?
На одной стороне стоят те, кто уверены: IT-сфера — это «психологическая бомба замедленного действия», и в ней нужно менять многое, чтобы сохранить благополучие специалистов.
Возможно, нужна более гибкая и заботливая рабочая среда?
С другой стороны — есть мнение, что в любых профессиях существует стресс, и айтишники, как люди, привыкшие к решению сложных задач, должны научиться справляться с ними.
Наш админ думает так:
Как тут не свихнёшься, когда тебя каждый день спрашивают одно и то же в надежде на изменения? Как попугаи «Какой статус? Какой статус?»
💬 Что думаете об этом? Как у вас обстоят дела с головой? Делитесь в комментариях 👇
Понравился пост? Поделитесь бустом, а мы взамен поделимся топовым контентом.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9❤1
Мультикурсор однозначно маст-хев для работы с однотипными изменениями в коде. Вместо монотонных изменений — раз и готово.
Смотрите и сохраняйте себе хоткеи для VS Code с картинки.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
🤯 Мы больше года строим мультиагентные системы
Грабли, находки, паттерны, эксперименты — всё это накопилось и в какой-то момент стало жалко держать только у себя.
Никита — рассказывает (и показывает) базу: токенизация, LLM, SFT, PEFT, локальный инференс + RAG и как оценивать его качество.
Диана — как строят мультиагентные системы, какие есть паттерны проектирования и библиотеки.
Макс — про инференс в проде + разберет CoPilot, соберет с вами из кусочков свой копайлот, а затем его сломает через prompt injection. // Макс фанат autogen (а если нет — он вас разубедит в своем классном канале)
Финальным аккордом Дима углубится в MCP и соберет несколько кейсов повзрослее.
Курс тут: https://clc.to/47pgYA
Промокод:datarascals действует до 23:59 29 июня
Грабли, находки, паттерны, эксперименты — всё это накопилось и в какой-то момент стало жалко держать только у себя.
Никита — рассказывает (и показывает) базу: токенизация, LLM, SFT, PEFT, локальный инференс + RAG и как оценивать его качество.
Диана — как строят мультиагентные системы, какие есть паттерны проектирования и библиотеки.
Макс — про инференс в проде + разберет CoPilot, соберет с вами из кусочков свой копайлот, а затем его сломает через prompt injection. // Макс фанат autogen (а если нет — он вас разубедит в своем классном канале)
Финальным аккордом Дима углубится в MCP и соберет несколько кейсов повзрослее.
Курс тут: https://clc.to/47pgYA
Промокод:
🥱5
Представьте себе онлайн-магазин в средневековом стиле, где можно не только купить или продать товары, но и почувствовать атмосферу старинного рынка.
Именно такой проект недавно был создан с использованием ASP.NET.
Что интересно, это не просто сайт, а платформа с микросервисной архитектурой. Это значит, что каждый компонент (например, аутентификация или обработка объявлений) работает как отдельный микросервис.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Давайте решим, нужны ли комментарии в коде:
💯 — Нужны
⚡️ — Можно и без них
🐸 Библиотека шарписта #развлекалово
💯 — Нужны
Please open Telegram to view this post
VIEW IN TELEGRAM
💯152⚡91👾1
Сеньору запретили писать откровения на ревью, поэтому он опять наказан использованием эмодзи.
Пишите в комментарии, что это он написал на картинке 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
Ключевые новости, которые могли ускользнуть от вашего внимания.
— Диагностика задержек в .NET
В статье описан случай, когда некоторые запросы в .NET-приложении занимали до 20 секунд, происходя это с периодичностью каждые полчаса. Узнайте в статье разобрался ли автор с этой проблемой.
— Руководство по выживанию с устаревшим кодом
В 2025 году Visual Basic 6.0 уже почти не используется, а VB.NET и .NET Framework постепенно уходят в прошлое, оставшись только для поддержки старых приложений.
— xUnit для сложных интеграционных тестов
Джереми Миллер описывает, как интегрировать логирование в xUnit для сложных интеграционных тестов с использованием Wolverine.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Middle/Senior C# разработчик — удалёнка.
C# Developer — до 5500 $, удалёнка.
Full-Stack .NET Developer — до 450 000 ₽, удалёнка.
Tech Lead AI — от 450 000 ₽, удалёнка.
С#-разработчик — от 250 000 ₽, удалёнка.
Бустер — Удалённо (в любом городе мира).
Please open Telegram to view this post
VIEW IN TELEGRAM
🛠 Гид по Redis в C#
Представьте, что ваши запросы обрабатываются мгновенно. Для этого можно использовать Redis. Сейчас покажем как это сделать.
1. Устанавливаем
2. Создаём подключение
3. Базовые операции: SET и GET
4. Механизм подписки и публикации
Подписчик:
Публикация:
5. Дополнительно: списки, хэши и TTL
Пушим и читаем из конца/начала:
Группируем поля в одном ключе:
TTL для удаления ключей через время:
Бонус: бест практис
• ConnectionMultiplexer — тяжёлый объект, создавайте один раз.
• Используйте ConfigureAwait(false) и ловите исключения RedisConnectionException.
• Выполняйте атомарные операции на стороне сервера для консистентности.
• При росте нагрузки переходите на кластерный режим или Redis Sentinel для отказоустойчивости.
В будущем Redis становится центром событийной архитектуры: Stream-поддержка и геоданные открывают новые горизонты.
🐸 Библиотека шарписта #буст
Представьте, что ваши запросы обрабатываются мгновенно. Для этого можно использовать Redis. Сейчас покажем как это сделать.
1. Устанавливаем
Install-Package StackExchange.Redis
2. Создаём подключение
using StackExchange.Redis;
var redis = ConnectionMultiplexer.Connect("localhost:6379");
IDatabase db = redis.GetDatabase();
3. Базовые операции: SET и GET
// Записываем строку
bool setResult = db.StringSet("user:42:name", "ProgLib");
Console.WriteLine($"SET OK: {setResult}");
// Читаем строку
string name = db.StringGet("user:42:name");
Console.WriteLine($"GET: {name}"); // → ProgLib
StringSet
возвращает true, если всё прошло гладко. StringGet
в случае отсутствия ключа вернёт null.4. Механизм подписки и публикации
Подписчик:
var sub = redis.GetSubscriber();
sub.Subscribe("notifications", (channel, message) => {
Console.WriteLine($"Получено сообщение: {message}");
});
Публикация:
sub.Publish("notifications", "Новый заказ №128");
5. Дополнительно: списки, хэши и TTL
Пушим и читаем из конца/начала:
db.ListRightPush("tasks", "Сделать отчёт");
var task = db.ListLeftPop("tasks");
Группируем поля в одном ключе:
db.HashSet("session:1001", new HashEntry[] {
new HashEntry("userId", 42),
new HashEntry("expiresAt", DateTime.UtcNow.AddMinutes(30).ToString("O"))
});
var expires = db.HashGet("session:1001", "expiresAt");
TTL для удаления ключей через время:
db.StringSet("cache:item:7", "данные", TimeSpan.FromMinutes(5));
Бонус: бест практис
• ConnectionMultiplexer — тяжёлый объект, создавайте один раз.
• Используйте ConfigureAwait(false) и ловите исключения RedisConnectionException.
• Выполняйте атомарные операции на стороне сервера для консистентности.
• При росте нагрузки переходите на кластерный режим или Redis Sentinel для отказоустойчивости.
В будущем Redis становится центром событийной архитектуры: Stream-поддержка и геоданные открывают новые горизонты.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍5🔥2
🧠 Как алгоритмическое мышление повышает производительность
Если ваше приложение «подтормаживает», вспомните о спортивном программировании: анализируйте асимптотику и меняйте неэффективные алгоритмы — и запросы станут выполняться за доли секунды.
Не догадывайтесь, где узкое место, а измеряйте его профилировщиком и выбирайте правильные структуры данных.
➡️ Почему спортивное программирование полезно
🐸 Библиотека шарписта #буст
Если ваше приложение «подтормаживает», вспомните о спортивном программировании: анализируйте асимптотику и меняйте неэффективные алгоритмы — и запросы станут выполняться за доли секунды.
Не догадывайтесь, где узкое место, а измеряйте его профилировщиком и выбирайте правильные структуры данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5❤2
🧑💻 Тестирование API без выдумок
Без тщательно сгенерированных сценариев, покрывающих как граничные, так и ошибочные состояния, легко упустить скрытые уязвимости, которые проявятся именно в пике трафика.
Подготовили для вас промпт, чтобы данные не нужно было придумывать самостоятельно:
🐸 Библиотека шарписта #буст
Без тщательно сгенерированных сценариев, покрывающих как граничные, так и ошибочные состояния, легко упустить скрытые уязвимости, которые проявятся именно в пике трафика.
Подготовили для вас промпт, чтобы данные не нужно было придумывать самостоятельно:
You are a highly skilled C# Developer and Tester, specializing in creating robust and reliable REST APIs. Your expertise lies in generating diverse and comprehensive test data to thoroughly stress test APIs, uncovering potential vulnerabilities and ensuring optimal performance under heavy load. Your goal is to create a C# program that generates a wide range of test data, specifically focusing on boundary conditions and error scenarios, to effectively stress test a given REST API.
Here is the format you will use to reason through the problem and come up with a fantastic recommendation:
---
## REST API Endpoint Description
$api_endpoint_description (Include the HTTP method, expected request body format, and expected response format)
## Data Types and Constraints
$data_types_and_constraints (Specify the data types of each field in the request body and any constraints, such as minimum/maximum values, allowed characters, or specific formats)
## Boundary Condition Test Data
$boundary_condition_test_data (Generate test data that pushes the limits of the defined constraints. Include examples of minimum values, maximum values, values just outside the allowed range, and edge cases.)
### Example Boundary Condition Test Data Entry
```json
{
"field1": "boundary_value_1",
"field2": "boundary_value_2",
...
}
```
## Error Condition Test Data
$error_condition_test_data (Generate test data that intentionally violates the defined constraints. Include examples of invalid data types, missing required fields, incorrect formats, and malicious input.)
### Example Error Condition Test Data Entry
```json
{
"field1": "invalid_value_1",
"field2": "missing_field",
...
}
```
## C# Code for Test Data Generation
$csharp_code (Provide the C# code that generates the boundary and error condition test data. The code should be well-commented and easy to understand.)
## Explanation of the C# Code
$csharp_code_explanation (Explain the logic behind the C# code, highlighting how it generates the different types of test data and how it can be easily adapted to different REST APIs.)
## Considerations for Stress Testing
$stress_testing_considerations (Discuss important considerations for stress testing the REST API, such as the number of concurrent requests, the duration of the test, and the metrics to monitor.)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🔥2
🔥 Последняя неделя перед стартом курса по AI-агентам
Старт курса уже 5го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место
На курсе:
— разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах
📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями
И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»
👉 Курс здесь
Старт курса уже 5го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место
На курсе:
— разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах
📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями
И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»
👉 Курс здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
😁35👏3👍2