☠️ Задача на выходные: std::thread, который убивает программу при выходе из функции
Маленькая безобидная функция создаёт
Задача: объясни, почему деструктор
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Маленькая безобидная функция создаёт
std::thread, что-то делает и в конце — terminate() и аварийное завершение всего приложения. Без единого явного throw в коде.void DoWork(bool earlyExitCondition) {
std::thread worker([]() {
Sleep(2000);
std::cout << "Done\n";
});
if (earlyExitCondition) {
return; // worker все ещё joinable!
}
worker.join();
}Задача: объясни, почему деструктор
std::thread вызывает std::terminate, если поток всё ещё joinable, и предложи паттерн, который защищает от этого на всех путях выхода из функции, включая исключения.📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
😁2
🤖 Мы тут подготовили небольшую игру по ИИ-агентам
В ней нужно собрать AI-агента на LangGraph: выбрать узлы, пройти развилки и запустить собственный workflow.
Никакой теории — сразу практика. Можно наглядно увидеть, как работают агентные системы, проверьте свои знания или показать другим как это всё работает 🔥
🎁 За прохождение получите персональную скидку на курс. Чем больше баллов наберете — тем больше будет скидка.
Плюс сейчас действует предложение: покупаешь 1 курс, получаешь еще 2 любых в подарок. Для этого надо будет оставить заявку на сайте академии после прохождения игры.
🚀 Собрать своего AI-агента
В ней нужно собрать AI-агента на LangGraph: выбрать узлы, пройти развилки и запустить собственный workflow.
Никакой теории — сразу практика. Можно наглядно увидеть, как работают агентные системы, проверьте свои знания или показать другим как это всё работает 🔥
🎁 За прохождение получите персональную скидку на курс. Чем больше баллов наберете — тем больше будет скидка.
Плюс сейчас действует предложение: покупаешь 1 курс, получаешь еще 2 любых в подарок. Для этого надо будет оставить заявку на сайте академии после прохождения игры.
🚀 Собрать своего AI-агента
🥱5😁1
📰 Свеженькое из мира C++
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
😎 Интересное:
• Свой malloc для ОС: от наивного списка до бинов — серия статей о написании своего аллокатора
• EXPECT_DEATH не ловит исключение — разбираем как тесты обрабатывают падения
• Hazard pointers без воды — разбор безопасного освобождения памяти в
• doctest: тесты прямо рядом с кодом — способ написания unit-тестов прямо в файле с бизнес логикой
📙 Ranges:
• Проекции: Что такое проекция?
🔹📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежак
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
😎 Интересное:
• Свой malloc для ОС: от наивного списка до бинов — серия статей о написании своего аллокатора
• EXPECT_DEATH не ловит исключение — разбираем как тесты обрабатывают падения
• Hazard pointers без воды — разбор безопасного освобождения памяти в
lock-free структурах• doctest: тесты прямо рядом с кодом — способ написания unit-тестов прямо в файле с бизнес логикой
📙 Ranges:
• Проекции: Что такое проекция?
🔹📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежак
😁2
Forwarded from Библиотека задач по C++ | тесты, код, задания
Forwarded from Библиотека задач по C++ | тесты, код, задания
❤3👾1
⏰ Уже сегодня в 19:00 (МСК) стартует наш открытый урок!
Знаем, летом хочется отложить учёбу на осень. Но пока остальные отдыхают 😅, мы предлагаем без лишней конкуренции прокачать свой workflow и начать закрывать тикеты в три раза быстрее.
Тема:
Мы покажем живой разбор реального проекта: как с помощью AI-ассистентов мгновенно разбираться в чужой кодовой базе, искать нужные участки и собирать Pull Request. Только рабочие промпты, которые сэкономят вам часы рутины.
🎙 Спикер — Ольга Лукьянова, руководитель команды в SourceCraft (18+ лет развивала инструменты в JetBrains и Huawei).
👉 Узнать, как ускорить разработку с AI
Знаем, летом хочется отложить учёбу на осень. Но пока остальные отдыхают 😅, мы предлагаем без лишней конкуренции прокачать свой workflow и начать закрывать тикеты в три раза быстрее.
Тема:
«AI-инструменты в разработке: пишем код быстрее»
Мы покажем живой разбор реального проекта: как с помощью AI-ассистентов мгновенно разбираться в чужой кодовой базе, искать нужные участки и собирать Pull Request. Только рабочие промпты, которые сэкономят вам часы рутины.
🎙 Спикер — Ольга Лукьянова, руководитель команды в SourceCraft (18+ лет развивала инструменты в JetBrains и Huawei).
👉 Узнать, как ускорить разработку с AI
В прошлый раз разобрались, что такое проекция и зачем она нужна. Теперь — самый частый сценарий на практике: структура с кучей полей, и алгоритмы хочется гонять по разным из них, не плодя лямбды.
struct Person {
std::string name;
int age;
double height;
};
std::vector<Person> people = {
{"Алиса", 30, 165},
{"Борис", 25, 180},
{"Виктор", 35, 175},
};Вся прелесть в том, что один и тот же контейнер крутим по любому полю — меняем только
&Person::поле:// по возрасту
std::ranges::sort(people, std::less{}, &Person::age);
// Борис(25), Алиса(30), Виктор(35)
// самый высокий
auto tallest = std::ranges::max_element(people, std::less{}, &Person::height);
std::cout << tallest->name; // Борис
// найти по имени
auto found = std::ranges::find(people, "Алиса", &Person::name);
std::cout << found->age; // 30
Указатель
&Person::age годится в проекции, потому что алгоритм зовёт её через std::invoke, а тот превращает его в p.age. Проекцией может быть что угодно вызываемое.Заметьте:
max_element и find вернули итератор на целого Person. Проекция выбирает ключ, но на выходе всегда исходный элемент.sort сортирует на месте. Гоняете сниппеты подряд по одному people — каждый следующий видит уже переставленный вектор (max_element/find это не волнует).Проекция говорит «по какому полю», компаратор — «в каком порядке»:
// по убыванию роста
std::ranges::sort(people, std::greater{}, &Person::height);
// Борис(180), Виктор(175), Алиса(165)
std::less → std::greater — перевернули порядок, поле не трогали.Компаратор можно сократить до
{}, но не выбросить совсем:std::ranges::sort(people, {}, &Person::age); // ок
std::ranges::sort(people, &Person::age); // не компилируетсяПроекция — третий аргумент, поэтому без компаратора
&Person::age уедет в его слот. {} этот слот занимает и подставляет дефолт — а дефолт тут std::ranges::less, не std::less (на наших данных без разницы).📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#константная_правильностьx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3👾1
🎮 Пишем игру на C++ и Qt с нуля
Серия для тех, кто хочет не читать про язык, а собрать рабочий проект — пусть и простой. 31 видео, от пустого окна до играбельного билда.
– Qt как обвязка: GUI, event loop и сигналы-слоты
– Низкий порог входа: рассчитано на тех, кто только осваивает C++
– Цельный результат: на выходе — законченная игра
👉 Плейлист
✏️ Подойдёт такой формат «учимся на проекте» для онбординга джунов, или для С++ полезнее сразу копать в стандарт и инструментарий?
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежак
Серия для тех, кто хочет не читать про язык, а собрать рабочий проект — пусть и простой. 31 видео, от пустого окна до играбельного билда.
– Qt как обвязка: GUI, event loop и сигналы-слоты
– Низкий порог входа: рассчитано на тех, кто только осваивает C++
– Цельный результат: на выходе — законченная игра
👉 Плейлист
✏️ Подойдёт такой формат «учимся на проекте» для онбординга джунов, или для С++ полезнее сразу копать в стандарт и инструментарий?
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежак
❤14😁1
🐸 Подборка вакансий для C++-разработчиков за неделю
C++ Developer — Офис (Санкт-Петербург)
Программист С++ — Офис (Москва)
C++ RTOS (Networking) Developer — Удалённо
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#вакансии
C++ Developer — Офис (Санкт-Петербург)
Программист С++ — Офис (Москва)
C++ RTOS (Networking) Developer — Удалённо
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#вакансии
😁2
🪬 C++ Ranges: Заметки
Соберём посты про C++ диапазоны в один пост 😎
Часть 1. Основы
• Основы
• Views и алгоритмы
• Конвейеры: оператор |
• Ленивые вычисления (C++20)
• Требования к диапазонам
Часть 2: Адаптеры представлений
• std::views::filter — ленивая фильтрация
• std::views::transform — ленивые преобразования
• views::take и views::drop — срезы
• Разбиение диапазонов: views::split, chunk, chunk_by
• Генераторы: views::iota и views::repeat
• Комбинаторы: views::zip и views::enumerate
• Вложенные диапазоны: views::join и views::join_with
• Ranges: другие полезные адаптеры
Часть 3: Алгоритмы диапазонов
• Алгоритмы поиска
• Алгоритмы сортировки
• Алгоритмы модификации
• Свёртки (fold)
Часть 4: Проекции
• Что такое проекция?
• Проекции на поля структур
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежак
Соберём посты про C++ диапазоны в один пост 😎
Часть 1. Основы
• Основы
• Views и алгоритмы
• Конвейеры: оператор |
• Ленивые вычисления (C++20)
• Требования к диапазонам
Часть 2: Адаптеры представлений
• std::views::filter — ленивая фильтрация
• std::views::transform — ленивые преобразования
• views::take и views::drop — срезы
• Разбиение диапазонов: views::split, chunk, chunk_by
• Генераторы: views::iota и views::repeat
• Комбинаторы: views::zip и views::enumerate
• Вложенные диапазоны: views::join и views::join_with
• Ranges: другие полезные адаптеры
Часть 3: Алгоритмы диапазонов
• Алгоритмы поиска
• Алгоритмы сортировки
• Алгоритмы модификации
• Свёртки (fold)
Часть 4: Проекции
• Что такое проекция?
• Проекции на поля структур
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежак
👍4❤3🔥2🤩2
👀 Умеете строить предсказуемую архитектуру с ИИ? Станьте спикером Proglib academy
Мы в Proglib.academy запускаем курс по Spec-Driven Development (SDD) — учим разработчиков управлять ИИ-агентами (Cursor, Copilot, Claude) через спецификации, контекст и тесты, чтобы не перепроверять за нейросетью каждую строку.
➡️ Что требуется от вас?
● BigTech бэкграунд: опыт работы разработчиком, тимлидом или архитектором в крупных технологических компаниях.
● Опыт управляемой разработки с ИИ: вы на практике знаете, как встроить AI-инструменты в личный или командный workflow (от постановки задачи до ревью AI-кода).
● Системный подход: умение превращать хаотичную генерацию кода в предсказуемый инженерный процесс (работа с архитектурой, чек-листами, легаси и покрытием тестами).
➡️ Что мы предлагаем?
● Достойную оплату за подготовку материалов и проведение занятий.
● Мощное продвижение личного бренда через медиаресурсы Proglib (наша аудитория — 1 млн+ айтишников).
● Возможность публиковать свои экспертные материалы и статьи на наших площадках.
● Доступ к сильному и закрытому профессиональному сообществу.
Также мы ищем консультанта программы.
Если вы практикующий эксперт и готовы помочь нам отвалидировать программу курса, дать рекомендации по актуальности тем и финальным результатам обучения — мы вас очень ждем.
➡️ Как с нами связаться:
Telegram: @alinaa_kh
E-mail: alina@proglib.io
Мы в Proglib.academy запускаем курс по Spec-Driven Development (SDD) — учим разработчиков управлять ИИ-агентами (Cursor, Copilot, Claude) через спецификации, контекст и тесты, чтобы не перепроверять за нейросетью каждую строку.
Для этого курса мы ищем классных спикеров-практиков.
● BigTech бэкграунд: опыт работы разработчиком, тимлидом или архитектором в крупных технологических компаниях.
● Опыт управляемой разработки с ИИ: вы на практике знаете, как встроить AI-инструменты в личный или командный workflow (от постановки задачи до ревью AI-кода).
● Системный подход: умение превращать хаотичную генерацию кода в предсказуемый инженерный процесс (работа с архитектурой, чек-листами, легаси и покрытием тестами).
● Достойную оплату за подготовку материалов и проведение занятий.
● Мощное продвижение личного бренда через медиаресурсы Proglib (наша аудитория — 1 млн+ айтишников).
● Возможность публиковать свои экспертные материалы и статьи на наших площадках.
● Доступ к сильному и закрытому профессиональному сообществу.
Также мы ищем консультанта программы.
Если вы практикующий эксперт и готовы помочь нам отвалидировать программу курса, дать рекомендации по актуальности тем и финальным результатам обучения — мы вас очень ждем.
Telegram: @alinaa_kh
E-mail: alina@proglib.io
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2👾1
This media is not supported in your browser
VIEW IN TELEGRAM
😋 Когда на собеседовании меня просят показать какую многозадачность я имел в виду в своём резюме.
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#развлекалово
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#развлекалово
😁9❤2
Если в новом коде ты по привычке тянешься к
std::function — в C++26 для большинства случаев есть вариант лучше.std::function живёт с C++11, но у него два врождённых дефекта. Первый — он раздувает бинарь. Второй, более коварный — дефект const-корректности: operator() помечен const, но при этом спокойно вызывает не-const operator() хранимого объекта. Починить нельзя — сломается ABI.std::copyable_function — то, чем std::function должен был быть с самого начала: копируемый, const-корректный, поддерживает весь набор квалификаторов (const, noexcept, &/&&).#include <functional>
// const здесь означает const на самом деле
std::copyable_function<int() const> f = [x = 42] { return x; };
int y = f(); // 42
// std::copyable_function<int() const> bad = [x=42]() mutable {...}; // ❌ mutable не пройдёт
std::copyable_function<void()> g; // пустой
// g(); // ⚠️ UB, а НЕ bad_function_call
copyable_function — это UB, а не исключение. Сделано осознанно, ради консистентности с остальной библиотекой.• у
copyable_function нет target() / target_type() — никакой RTTI-интроспекции• пустой вызов → UB вместо
bad_function_call: ловившие исключение сломаются молча• для стабильного ABI существующих интерфейсов
std::function по-прежнему уместен📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#под_капотом
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🤖 Запускаем новый курс: «Spec-Driven Development»!
Всем надоело, что ИИ-агенты (Cursor, Claude) генерируют сотни строк хаотичного кода, который приходится переписывать. Дело не в нейросети, а в том, что вы заставляете её угадывать условия задачи.
На курсе вы освоите методологию SDD (Spec-Driven Development) — управление ИИ через спецификации (спеки) и тесты вместо «вайб-кодинга».
Как это работает?
До генерации кода вы фиксируете в спеке контракты, инварианты и граничные случаи. Документ четко определяет ЧТО делать, сводя лотерею в PR к нулю.
За 8 недель с экспертами из BigTech вы:
🔹 Встроите ИИ в личный или командный workflow.
🔹 Превратите генерацию кода в предсказуемый инженерный процесс.
🔹 Перестанете перепроверять за моделями каждую строчку.
📖 Полный разбор методологии с примерами и готовый промпт для генерации спеки — в нашей статье
👉 Освоить SDD и ускорить разработку
Всем надоело, что ИИ-агенты (Cursor, Claude) генерируют сотни строк хаотичного кода, который приходится переписывать. Дело не в нейросети, а в том, что вы заставляете её угадывать условия задачи.
На курсе вы освоите методологию SDD (Spec-Driven Development) — управление ИИ через спецификации (спеки) и тесты вместо «вайб-кодинга».
Как это работает?
До генерации кода вы фиксируете в спеке контракты, инварианты и граничные случаи. Документ четко определяет ЧТО делать, сводя лотерею в PR к нулю.
За 8 недель с экспертами из BigTech вы:
🔹 Встроите ИИ в личный или командный workflow.
🔹 Превратите генерацию кода в предсказуемый инженерный процесс.
🔹 Перестанете перепроверять за моделями каждую строчку.
📖 Полный разбор методологии с примерами и готовый промпт для генерации спеки — в нашей статье
👉 Освоить SDD и ускорить разработку
❤1👍1
Лайк ставится за секунду и забывается. Буст — это другое. Это твой голос, который реально поднимает канал на новый уровень и открывает то, что без вас недоступно.
Думаешь, один голос ничего не решает? Решает. Каждый буст — это +1 к возможностям канала и +100 к полезному контенту для тебя.
Сторис — формат коротких, но ценных находок, которые жалко прятать «в стол»:
• рабочие инструменты, которые экономят часы
• технические заметки на пару абзацев
• ссылки, которые хочется сохранить
• вопросы и задачки для программистов
• быстрые опросы, где решает большинство
Библиотека C/C++ разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1😁1
🎬 Где ломаются архитектуры ИИ-агентов и как этого избежать: запись урока от Proglib.Academy и cloud․ru
Proglib.аcademy вместе с cloud․ru провели вебинар, где разобрали реальные боли проектирования автономных систем. Вы просили запись встречи — она уже в открытом доступе!
Что внутри:
— критерии выбора между одним агентом и мультиагентной системой;
— разбор популярных архитектурных ошибок;
— реальные ограничения современных ИИ-агентов;
— практические рекомендации по проектированию агентных систем.
👉 Посмотреть запись можно тут:
● VK
● YouTube
Proglib.аcademy вместе с cloud․ru провели вебинар, где разобрали реальные боли проектирования автономных систем. Вы просили запись встречи — она уже в открытом доступе!
Что внутри:
— критерии выбора между одним агентом и мультиагентной системой;
— разбор популярных архитектурных ошибок;
— реальные ограничения современных ИИ-агентов;
— практические рекомендации по проектированию агентных систем.
👉 Посмотреть запись можно тут:
● VK
● YouTube
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
Лучший способ понять
std::promise — собрать его. Допиши общее состояние (shared state) на мьютексе и condition_variable.template <class T>
struct SharedState {
std::mutex m;
std::condition_variable cv;
std::optional<T> value;
bool ready = false;
void set(T v) {
// TODO: под мьютексом положить value, поднять ready, разбудить ждущих
}
T get() {
// TODO: дождаться ready под cv, вернуть value
}
};
get() блокируется, пока не вызовут set(), и корректно работает, если set() случился до get(). «Ага-момент» — почему именно cv.wait с предикатом, а не голый wait.📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🎯 IT раскололся: почему у одних специалистов будущее, а у других — тупик
Рынок делится пополам: продуктовые компании забирают себе лучших людей, AI-инфраструктуру и все деньги. Остальным достается борьба за крохи с демпингом и выгоранием. Это уже происходит. Читай, пока есть время что-то изменить.
👉 Читать...
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежак
Рынок делится пополам: продуктовые компании забирают себе лучших людей, AI-инфраструктуру и все деньги. Остальным достается борьба за крохи с демпингом и выгоранием. Это уже происходит. Читай, пока есть время что-то изменить.
👉 Читать...
📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежак
😁3👍2🥱2😢1