На сайте Библиотеки программиста вышла обновлённая подборка AI сервисов для тех, кто хочет искать работу в IT за пределами своей страны.
Вместо того чтобы пытаться вручную тянуть LinkedIn, job‑борды и подготовку к интервью, имеет смысл собрать для себя связку из нескольких AI сервисов и переложить на них максимум рутины.
📍 Навигация: Вакансии • Задачи • Собесы
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🥱1
💻 Свежий контент для Copilot
Проблема с Copilot: он не знает о новых штуках вроде Agent Framework. Решение от Microsoft: MCP сервер дает доступ к свежей .NET-документации прямо в инструментах разработки.
Сервер передает Copilot актуальные данные: гайды, код, уроки. Идеально для .NET 10, Aspire или оптимизации старых приложений. Контекст адаптируется под код.
➡️ Как всё это настроить
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека шарписта
#sharp_view
Проблема с Copilot: он не знает о новых штуках вроде Agent Framework. Решение от Microsoft: MCP сервер дает доступ к свежей .NET-документации прямо в инструментах разработки.
Сервер передает Copilot актуальные данные: гайды, код, уроки. Идеально для .NET 10, Aspire или оптимизации старых приложений. Контекст адаптируется под код.
📍 Навигация: Вакансии • Задачи • Собесы
#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Вы замечали, что Windows работает не так, как раньше? Это всё из-за новомодных ИИ и веб-элементов. Первое пишет, а второе лагает.
Наткнулись на видео, где всё это выпиливают из актуальной Windows 11. Результат вас не порадует, но зато вы узнаете на что конкретно жаловаться в Microsoft.
📍 Навигация: Вакансии • Задачи • Собесы
#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🥰1
Админ принёс актуальный вопрос, который ему задали вчера на собеседовании.
Чем отличаются
IQueryable<T> и IEnumerable<T> помимо синтаксиса? Можете оставить свой ответ в комментариях и сравнить его с нашим.
👉 Посмотреть ответ
📍 Навигация: Вакансии • Задачи • Собесы
#dotnet_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
🎓 Твой опыт стоит дорого — стань экспертом Proglib Academy
Чувствуешь, что накопил достаточно знаний, чтобы делиться ими с другими?
Мы ищем сильных практиков, которые хотят попробовать себя в роли:
— преподавателей;
— авторов курсов;
— наставников.
Это возможность не только монетизировать экспертизу, но и прокачать личный бренд, структурировать собственные знания и вырастить новое поколение специалистов.
👉 Заполни короткую анкету
Чувствуешь, что накопил достаточно знаний, чтобы делиться ими с другими?
Мы ищем сильных практиков, которые хотят попробовать себя в роли:
— преподавателей;
— авторов курсов;
— наставников.
Это возможность не только монетизировать экспертизу, но и прокачать личный бренд, структурировать собственные знания и вырастить новое поколение специалистов.
👉 Заполни короткую анкету
Диплом в IT вещь нестабильная. Одним подавай три профильных, чтобы устроиться, другие косо взглянут на любой диплом, который не из МФТИ.
В карточках собрали факты про эту корочку. Листайте и проверяйте сколько вам можно накинуть за диплом.
📍 Навигация: Вакансии • Задачи • Собесы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🥰2
Partial классы — это C#-хакинг, который разбивает один класс на несколько файлов, не ломая компиляцию. Идеально для автогенерации, командной работы и масштабирования монстров-кода.
Представьте: WinForms или WPF дизайнер генерирует кучу кода в .Designer.cs, а вы хотите добавить свою логику. Без partial пришлось бы вручную мержить изменения или наследоваться с кучей override. Partial решает это элегантно — основной класс в вашем файле, автокод в отдельном.
Все части класса должны иметь одинаковые модификаторы доступа и использовать ключевое слово
partial. Компилятор проверит согласованность.Живой пример:
// Employee.Core.cs — базовая структура
public partial class Employee
{
public string Name { get; set; }
public decimal Salary { get; set; }
public partial void ValidateName();
public partial void ValidateSalary();
public void Hire()
{
ValidateName();
ValidateSalary();
Console.WriteLine($"{Name} нанят с зарплатой {Salary:C}!");
}
}
// Employee.Validation.cs — бизнес-правила
public partial class Employee
{
public partial void ValidateName()
{
if (string.IsNullOrWhiteSpace(Name) || Name.Length < 2)
throw new ArgumentException("Имя должно быть не короче 2 символов!");
}
public partial void ValidateSalary()
{
if (Salary < 50000) throw new ArgumentException("Зарплата не может быть ниже 50k!");
}
}
// Employee.Extensions.cs — расширения (опционально)
public partial class Employee
{
public void Promote() => Salary *= 1.2m;
}
Partial методы уникальны: если реализация отсутствует, метод полностью удаляется из IL. Идеально для опциональных хуков в генерируемом коде.
📍 Навигация: Вакансии • Задачи • Собесы
#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6🥰2
AI-агенты в Enterprise: взгляд .NET разработчика
Пока стартапы играются с Python-скриптами, энтерпрайз требует архитектуры. Мультиагентные системы в 2026 году — это, по сути, новые микросервисы.
В обновленном курсе по AI-агентам мы сместили фокус с простого «кодинга» на системное проектирование и архитектуру.
Что важного для архитектора:
— Оркестрация: Разбор
— RAG & Vector DBs: Интеграция с Pinecone/Weaviate (актуально для корпоративных баз знаний).
— Инфраструктура: Deployment, GPU-кластеры и AgentOps (мониторинг).
—
Курс разделен на треки. Если не хотите писать на Python, выбирайте
⚡️ Offer 3-in-1:
Покупаете курс по агентам — забираете два любых других бесплатно. Отличный шанс взять «Алгоритмы» или «Паттерны».
Изучить программу
Пока стартапы играются с Python-скриптами, энтерпрайз требует архитектуры. Мультиагентные системы в 2026 году — это, по сути, новые микросервисы.
В обновленном курсе по AI-агентам мы сместили фокус с простого «кодинга» на системное проектирование и архитектуру.
Что важного для архитектора:
— Оркестрация: Разбор
LangGraph (графы состояний) и AutoGen.— RAG & Vector DBs: Интеграция с Pinecone/Weaviate (актуально для корпоративных баз знаний).
— Инфраструктура: Deployment, GPU-кластеры и AgentOps (мониторинг).
—
Курс разделен на треки. Если не хотите писать на Python, выбирайте
Overview — поймете принципы построения систем, протоколы MCP и A2A коммуникацию.⚡️ Offer 3-in-1:
Покупаете курс по агентам — забираете два любых других бесплатно. Отличный шанс взять «Алгоритмы» или «Паттерны».
Изучить программу
😁5❤2
Вспомним что происходило на этой неделе.
— GetElapsedTime сам посчитает время выполнения
— Пишем письмо Деду Морозу
— Пагинация и фильтрация через красоту
— Сотрудника Amazon уволили из-за пинга
Почитать:
— Подборка ИИ-инструментов для поиска работы за рубежом
📍 Навигация: Вакансии • Задачи • Собесы
#async_news
Please open Telegram to view this post
VIEW IN TELEGRAM
В FluentValidation условная валидация запускает правила только при нужных условиях.
When и Unless экономят циклы и делают валидаторы читаемыми.•
When = «проверить, если условие верно»•
Unless = «проверить, если условие НЕ верно»Пример:
RuleFor(x => x.ShippingAddress)
.NotEmpty()
.When(x => x.DeliveryMethod == "Express");
RuleFor(x => x.CreditCard)
.NotEmpty()
.Unless(x => x.PaymentMethod == "PayPal");
When проверяет условие перед правилом. Express доставка требует адрес, PayPal не требует карту. Логика в одном месте без if-else в контроллере.
📍 Навигация: Вакансии • Задачи • Собесы
#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3
Lazy<T> в C# стал де-факто стандартом для thread-safe ленивой инициализации. Забудьте
lock, volatile и двойные проверки.Проблемы классического синглтона:
public sealed class ClassicSingleton
{
private static ClassicSingleton _instance;
private static readonly object _lock = new object();
private ClassicSingleton()
{
// 2 секунды на реальную БД/файлы
Thread.Sleep(2000);
Console.WriteLine("ClassicSingleton создан");
}
public static ClassicSingleton Instance
{
get
{
if (_instance == null)
{
lock (_lock)
{
_instance ??= new ClassicSingleton();
}
}
return _instance;
}
}
}
Lazy<T> решает всё элегантно:
public sealed class LazySingleton
{
private static readonly Lazy<LazySingleton> _lazy = new Lazy<LazySingleton>(() =>
{
Console.WriteLine("LazySingleton создан (ТОЛЬКО РАЗ)");
Thread.Sleep(2000); // Имитация тяжёлой работы
return new LazySingleton();
});
private LazySingleton() { }
public static LazySingleton Instance => _lazy.Value;
public static bool IsInitialized => _lazy.IsValueCreated;
}
Реальный многопоточный тест:
static async Task TestPerformance()
{
var stopwatch = Stopwatch.StartNew();
var tasks = Enumerable.Range(0, 1000)
.Select(i => Task.Run(() =>
{
var instance = LazySingleton.Instance;
return instance.GetHashCode();
}))
.ToArray();
var results = await Task.WhenAll(tasks);
stopwatch.Stop();
Console.WriteLine($"1000 потоков: {stopwatch.ElapsedMilliseconds}ms");
Console.WriteLine($"Уникальных объектов: {results.Distinct().Count()}");
Console.WriteLine($"Инициализировано: {LazySingleton.IsInitialized}");
}
Lazy<T> — это не хак, а официальный стандарт Microsoft.📍 Навигация: Вакансии • Задачи • Собесы
#il_люминатор
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🥰1😢1