Библиотека C/C++ разработчика | cpp, boost, qt
20.3K subscribers
1.77K photos
46 videos
16 files
3.95K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
Download Telegram
🏖️ Подборка вакансий для C++-разработчиков за неделю

Разработчик C++ — от 250 000 и до 400 000 ₽ Удалёнка

Team Lead C++ (Social Core) — от 300 000 ₽ Удалёнка

Senior C++ Developer — от 380 000 и до 430 000 ₽ Удалёнка

Senior Embedded-разработчик / программист микроконтроллеров — от 300 000 ₽ Офис (Москва)

C++-разработчик (Новости) — от 270 000 и до 370 000 ₽ Удалёнка

Библиотека C/C++ разработчика
🍙 How-to: Как избежать memory ordering проблем в многопоточном коде


💭 Race conditions в атомарных операциях - одна из самых коварных проблем. Разбираемся с memory ordering.


✏️ Пошаговое решение:

Проблема: Неопределенное поведение при concurrent доступе

//  ОПАСНО: data race!
std::atomic<bool> ready{false};
int data = 0;

// Thread 1
data = 42;
ready.store(true); // неопределенный ordering!

// Thread 2
if (ready.load()) {
process(data); // может быть 0 или 42!
}



Решение: Explicit memory ordering

//  ПРАВИЛЬНО: используем memory_order
std::atomic<bool> ready{false};
int data = 0;

// Thread 1
data = 42;
ready.store(true, std::memory_order_release); // освобождаем

// Thread 2
if (ready.load(std::memory_order_acquire)) { // захватываем
process(data); // гарантированно 42!
}


⚠️ Частые ошибки:

• Использование memory_order_relaxed везде
• Забывание про acquire-release семантику
• Смешивание атомарных и неатомарных операций

Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔4👍2
🤔 Зачем вообще понимать, как работает ML?

Сейчас многие просто запускают модельку в sklearn — и радуются точности 0.92.

Вроде всё работает… но почему?
А когда сломается — что делать?


Машинное обучение — это система, которую можно понять.

Если знаешь, что делает градиентный спуск, зачем нужен бустинг и как дерево принимает решения — ты не просто «запускаешь», ты управляешь моделью.

👉 Мы сделали курс, чтобы в это было реально въехать:

— без сложных формул;
— с интуитивными объяснениями;
— от простого к сложному.

Если хочешь перейти от «гуглю код» к «понимаю, как это работает» — ты по адресу!

Стартуем в сентябре — бронируй место на курсе уже сейчас
2🥱2😁1
👾 Clang получает режим усиленной безопасности

Разработчики Clang обсуждают добавление флага -fhardened по аналогии с GCC 14.

🏖️ Новый режим одной командой активирует целый набор защитных механизмов:

• Инициализация переменных нулями
• Защита стека и от переполнений
• Рандомизация адресов
• Усиленные проверки библиотек
• Дополнительные предупреждения

Проблема: разрозненность опций безопасности в C/C++. Многие разработчики просто не знают о их существовании или забывают включать.

Решение: единый флаг, который «из коробки» делает код безопаснее.
Конечно, это костыли для языков 70-80х годов, но лучше поздно чем никогда.

👉 Заметка

Библиотека C/C++ разработчика #буст
💡 Фича дня: std::exchange (C++14)

Часто при написании операторов присваивания или swap-функций приходится сохранять старое значение, заменяя его новым. Код получается многословным и подверженным ошибкам.

std::exchange атомарно заменяет значение переменной и возвращает старое значение — всё в одной строке.


До:

T old_value = obj;
obj = new_value;
return old_value;


После:

return std::exchange(obj, new_value);


Код становится более читаемым, безопасным и выразительным. Особенно полезно в RAII-классах и при работе с умными указателями.

Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
🌐 Чек-лист: как искать работу

Чтобы не застрять в вечной отладке своей карьеры, держим в голове (и перед глазами) понятный план. Вот чек-лист на период поиска:

Обновите резюме и профиль (да, и GitHub тоже)

Ваш профиль — это витрина. Убедитесь, что в нём отражены:
• актуальные технологии (например, .NET 6/7/8, Blazor, ASP.NET, Azure и т. д.).
• понятные результаты («реализовал систему логирования» , а не «писал код»).
• ссылки на GitHub с чистыми, осмысленными проектами — лишнее желательно скрыть или удалить.

Сформулируйте ключевые навыки и корректные поисковые запросы.

Большинство рекрутеров используют автоматические фильтры. Включите в резюме чёткие названия технологий: Entity Framework Core, LINQ, RabbitMQ, Docker, CI/CD, Kubernetes.

Следите за вакансиями регулярно, но без стресса

• Настройте уведомления на LinkedIn, Habr Career, hh.
• Подпишитесь на каналы с вакансиями, например, наш канал с вакансиями для шарпистов.

Готовьтесь к собеседованиям заранее

• Освежите базовые концепции вроде async/await, Dependency Injection, SOLID, разберитесь в нюансах работы ASP.NET.
• Подумайте заранее, какие проекты вы можете описать как удачные кейсы.
• Поработайте над формулировками, которые показывают ваш вклад — рекрутеры ценят конкретику.

Сколько ищете работу? Пару дней или пару месяцев? Пишите в комментарии👇

Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🫣 Боитесь математики в ML?

Думаете, для этого нужно вспоминать университетские интегралы и решать сложные уравнения?

У нас хорошая новость: машинное обучение — это в первую очередь инженерная практика, а не математическая олимпиада. Здесь важнее понимать суть, а не выводить формулы.

Именно на таком подходе — через логику, интуицию и наглядные примеры — и построен наш курс «ML для старта в Data Science», где мы объясняем всё на пальцах, без боли и зубрёжки.

Регистрируйтесь, пока есть свободные места 😉
1
Proglib Academy — это место, где вы превращаете теорию в практику. Здесь ваши знания становятся проектами для портфолио, а вы — более уверенным специалистом.

Выберите курс, который поможет сделать следующий шаг ⬇️

🚀 Для тех, кто начинает путь в IT:

Основы IT для непрограммистов
Программирование на Python (обновлённый)
Frontend-разработчик с нуля: HTML, CSS, JavaScript

🧠 Для будущих и настоящих Data Scientist'ов:

ML для старта в Data Science (начинается в сентябре)
Базовые модели ML и приложения
Математика для Data Science
AI-агенты для DS-специалистов (скоро второй поток)

🛠️ Для опытных разработчиков, готовых к росту:

Алгоритмы и структуры данных
Архитектуры и шаблоны проектирования

Независимо от вашей цели, у нас есть курс, который поможет её достичь. Переходите в Proglib Academy, выбирайте свой путь и инвестируйте в навыки, которые всегда будут в цене!
💬 Вопрос от подписчика: move семантика — когда она реально помогает?

Один из наших подписчиков поделился результатами профилирования:

Потратил неделю на анализ impact'а move семантики в нашем коде. Результаты неожиданные.


🌚 Ожидания:

• Меньше копирований
• Faster передача объектов
• Оптимизация контейнеров

😱 Реальность:

• В 60% случаев компилятор и так делал оптимизации
• Move конструкторы не всегда noexcept
• Некоторые move операции дороже copy

Кто измерял реальный импакт от move семантики? Поделитесь находками в комментариях.


Библиотека C/C++ разработчика
😁2🤔21