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

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

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

Наши каналы: https://yangx.top/proglibrary/9197

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
💵💻🌍 Как не налететь на грабли: оформление и выплаты при валютной удалёнке из России

Если вы следили за нашим мини-сериалом о валютной удаленке, то уже знаете:

🔜 Как найти зарубежную удалёнку и зарабатывать больше

🔜 Как пройти путь от резюме до оффера

И вот финальная часть — потому что оффер это только начало.

Что в статье:

📍 Все легальные способы получения валютных выплат, от ИП в Грузии до пейролл-сервисов.

📍 Реальные риски: блокировки, штрафы, политическая турбулентность.

📍 Юридические тонкости и что писать в контракте, чтобы не остаться без денег.

📍 Как не влететь на налоги и почему «авось» — плохой бизнес-план.

Читать гайд по выживанию айтишника в валютных джунглях 🔗
Please open Telegram to view this post
VIEW IN TELEGRAM
Принято считать, что в C++ нет сборки мусора, но это не совсем так. Например, библиотека Boehm-Demers-Weiser (BDW) GC добавляет в C++ поддержку неинтрузивного сборщика мусора. Это значит, что можно выделять память через GC_malloc() и не беспокоиться о ручном освобождении — сборщик сам найдёт и очистит недостижимые объекты.

Хотя такой подход удобен для некоторых сценариев (например, сложные графы объектов), он не заменяет RAII и умные указатели. BDW GC требует осторожности с указателями и может уступать в производительности ручному управлению.

Подробнее о библиотеке: GitHub.
Плюсовики!

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

➡️Поддержать канал: https://yangx.top/boost/cppproglib
Please open Telegram to view this post
VIEW IN TELEGRAM
Сомневаетесь в своем прогрессе? Мы собрали 7 четких признаков того, что вы реально растете как разраб. Спойлер: дело не только в коде!

👉 Подробнее в статье
Media is too big
VIEW IN TELEGRAM
🙈 Что скрывает дисперсия: разгадка секрета точных ML-моделей

Представьте, что вы строите модель, которая прекрасно работает на тренировочных данных, но стоит подать ей новые примеры... и всё рушится. Знакомо? За этим почти всегда скрывается неправильное обращение с дисперсией.

🧐 Но что, если есть простая формула, способная:

• Мгновенно определить, насколько «разбросаны» ваши данные

• Значительно улучшить точность ваших ML-моделей

• Помочь обнаружить аномалии, которые вы раньше не замечали

В нашем вебинаре мы раскрываем все секреты дисперсии — без сложных терминов и занудных объяснений. Вы узнаете, почему дисперсия — как соль: без нее все пресно, а с переизбытком — несъедобно.

Хотите узнать, как находить идеальный баланс в своих моделях, причем тут Random Forest и много другого о Data Science?

➡️Тогда смотрите бесплатный вебинар от Proglib: https://proglib.io/w/af29291e
Please open Telegram to view this post
VIEW IN TELEGRAM
rwkv.cpp — легковесная C++-библиотека для работы с моделями RWKV

Если вы работаете с языковыми моделями RWKV и хотите максимальной производительности без лишних зависимостей, обратите внимание на rwkv.cpp. Это минималистичная C++-реализация инференса для моделей RWKV, которая работает даже на CPU с поддержкой AVX/AVX2. Проект активно развивается и поддерживает загрузку весов из оригинальных моделей PyTorch.

Библиотека отлично подходит для встраивания в C++-приложения, где важны скорость и низкие накладные расходы. Код чистый и простой для модификации — если вам нужен эффективный инференс без перегруженных фреймворков, стоит попробовать. К тому же, проект поддерживает GGML, что открывает возможности для квантования и оптимизации под разное железо.

Библиотека C/C++ разработчика
Что выведет код?

❤️ 1 4 8
🔥 1 4 4
🙏 Зависит от платформы
🌚 Ошибка компиляции

Библиотека C/C++ разработчика
💼⌛️ ТОП-5 причин, почему программист не может долго найти работу

Почему некоторые разработчики остаются "между работами" месяцы?

Не всегда дело в нехватке вакансий или «рынок просел». Часто дело в подходе к поиску проекта. Вроде бы есть опыт, стек, даже pet-проекты, но офферов всё нет.

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

🔗 Подробнее в статье

🐸 Библиотека джависта
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Менеджер зарабатывающий в 10 раз больше тебя😅

#memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😎 Делаем собственный анализатор C++ кода в виде плагина для Clang

«Решил написать свой статический анализатор для C++, а там такие грабли... 🤦‍♂️" — знакомо, если вы когда-нибудь задумывались о создании инструментов для анализа исходного кода.

💡 Автор статьи делиться опытом разработки плагина для Clang, который превращает стандартный C++ в более безопасный язык с контролем динамической памяти и ссылочных типов.

Ключевые моменты:

- AST Matcher vs RecursiveASTVisitor: простота или гибкость?
- Как удобно дебажить AST без просмотра огромных портянок кода;
- Правильное разделение логики между парсером атрибутов и анализатором AST.

Основной фокус статьи — практические советы по созданию плагина для Clang с минимальными подводными камнями. Разбор реальных примеров кода и нестандартных ситуаций.

Это будет полезно разработчикам на C++, которые хотят создать свои инструменты статического анализа или улучшить безопасность существующего кода без нарушения обратной совместимости.

Библиотека C/C++ разработчика
🖥 Метрики эффективности сотрудника

В каждой команде бывают специалисты, чья ценность не укладывается в привычные метрики продуктивности. Они редко в топе по количеству закрытых задач, но именно их вклад критически важен для общего результата.

Такие люди помогают менее опытным коллегам разобраться в сложных вопросах, улучшают архитектуру и процессы незаметными правками, предотвращают ошибки ещё до того, как они стали задачами, создают культуру качества, которую не видно в отчётах.

Иногда стоит пересмотреть, как мы оцениваем эффективность. Потому что не все цифры отражают суть.

🔗 Подробности в статье

🐸 Библиотека джависта
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
🙂 Раскрываем секрет собственных векторов: математическое оружие на собеседовании

Что объединяет успешный собес и продвинутый анализ данных? Оба требуют способности выделять главное из информационного шума!

В мире данных этот суперскилл называется методом главных компонент (PCA) — это как рентген для ваших данных, который мгновенно показывает всю суть, отбрасывая неважные детали.

Например, мы проанализировали 453 акции компаний из списка S&P 500 и выяснили, что всего одна главная компонента объясняет 38% всей динамики рынка. Как такое возможно?

😘 Расскажем на воркшопе «Математика машинного обучения на практике» 21 апреля!

Вы будете работать с реальными данными, научитесь выявлять скрытые закономерности и применять эти инсайты в своих проектах.

Стоимость: 3990 ₽

Не беспокойтесь, если теоретическая база пока хромает — вы можете заранее посмотреть запись нашего вебинара по основам по ссылке ниже.

➡️ Забронировать место на воркшопе: https://proglib.io/w/503f990b
Please open Telegram to view this post
VIEW IN TELEGRAM
📚 Загадочная библиотека setjmp.h — неочевидный инструмент для управления потоком выполнения


Библиотека setjmp.h предоставляет два необычных макроса:

setjmp — сохраняет текущее состояние программы (регистры, стек) в буфер jmp_buf

longjmp — «откатывает» выполнение к сохранённому состоянию, как прыжок во времени



#include <stdio.h>
#include <setjmp.h>

jmp_buf jump_buffer;

void risky_function() {
printf("Готовимся к прыжку...\n");
longjmp(jump_buffer, 42); // Прыжок обратно в setjmp!
}

int main() {
int ret = setjmp(jump_buffer);
if (ret == 0) {
printf("Первая инициализация...\n");
risky_function();
} else {
printf("Вернулись с кодом: %d\n", ret); // Выведет 42!
}
return 0;
}


⚠️ Осторожно!

• Не заменяет исключения — нет вызова деструкторов (как в C++)
• Опасность утечек — если между setjmp и longjmp выделялась память, она не освободится
• Портит стек — может сломать логику функций

🛠 Где может пригодиться?

• Обработка критических ошибок (а-ля «аварийный выход»)
• Код для встраиваемых систем, где нужно быстро восстановить состояние
• Нестандартные хаки (но лучше так не делать 😈)

Библиотека C/C++ разработчика
🎉🐙🐱 20 лет Git: все такой же необычный, все такой же великолепный

Легендарному Git стукнуло 20! Вспоминаем, как проект, который Линус Торвальдс называл «тупым менеджером контента», стал незаменимым инструментом для всех, кто хоть раз писал код или даже просто хранил файлы.

Погружаемся в историю, эволюцию и влияние Git на индустрию разработки.

➡️ Читать статью

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 16 байт вместо 32? Невозможно?

💡 В статье автор показывает, как правильно организовать память в C++ и сократить размер структуры в два раза без потери функциональности.

Ключевые моменты статьи:
• влияние выравнивания и порядка полей на размер структуры;
• эффективное использование bitfield, alignas и других инструментов C++;
• практические способы устранения паддингов;
• проверка теории на практике с помощью clang -fdump-record-layouts.

Основной фокус статьи — превращение структуры размером 32 байта в компактное представление всего в 16 байт без потери типобезопасности и читаемости кода.

Особенно полезно для разработчиков встроенных систем, игровых движков и высоконагруженных серверных приложений, где каждый байт на счету.

Вы узнаете, как правильно организовывать структуры данных для сериализации в бинарные протоколы и как гарантировать стабильный layout во время компиляции — навыки, без которых невозможно создавать по-настоящему эффективный код.

Библиотека C/C++ разработчика
🚀 Приручи алгоритмы: из формул в код за один воркшоп

Готовы превратить сложную теорию машинного обучения в практические навыки? Тогда приходите на наш воркшоп, который пройдет 21 апреля.

Что вас ждет на воркшопе:
🟢 Работа с реальными данными — никаких учебных датасетов, только то, что встречается в настоящих проектах.

🟢Снижение размерности с PCA — научитесь выделять главное из информационного шума.

🟢Случайный лес vs градиентный бустинг — разберемся, в чём ключевое различие и когда какой алгоритм эффективнее.

🟢Мастерство гиперпараметров — освоите тонкую настройку моделей для максимальной точности.

На нашем воркшопе вы не просто слушаете — вы делаете сами! Вы будете писать код на Python, применять популярные библиотеки и сразу видеть результат своей работы.

А самое ценное: каждый участник получит персональный code review от Марии Горденко — инженера-программиста, старшего преподавателя НИУ ВШЭ, руководителя магистратуры от ГК Самолет и Альфа-Банка.

Когда: 21 апреля
💸Стоимость: всего 3990₽

Только сегодня, до конца дня: 10 мест по промокоду kulich → 2 990 ₽.

➡️ Записаться на воркшоп: https://proglib.io/w/503f990b
🤔📝 Псевдокод: когда преподы не шарят, а ты в тупике

Псевдокод может быть настоящим головняком, особенно если требования к нему кажутся непонятными или не совпадают с тем, что вы видите в реальной практике программирования.

Узнайте, как сделать псевдокод полезным инструментом, а не дополнительной нагрузкой.

➡️ Читать статью

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
Твоя IDE нумерует линии с 1, а не с 0

#memes