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

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

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

Наши каналы: https://t.me/proglibrary/9197

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
Download Telegram
Что такое EBO (Empty Base Optimization)?

👾 — Способ оптимизации пустых функций
👍 — Метод оптимизации размера классов с пустыми базовыми классами
🥰 — Техника минимизации использования памяти
👻 — Техника минимизации использования памяти

Библиотека C/C++ разработчика
17 формул, которые изменили мир

Математика в действии — как уравнения, придуманные века назад, сегодня управляют интернетом, медициной, космосом и вашими финансами.

➡️ Что внутри статьи:
— Как египтяне строили пирамиды с помощью математики
— Почему Wi-Fi и JPEG невозможны без преобразования Фурье
— Что объединяет кота Шредингера и квантовые компьютеры
— Как формула Гаусса управляет фондовыми рынками
— И при чём тут Джеймс Гарфилд и i² = –1

🔗 Читайте статью

🔵 Начинайте свой путь в программировании и прокачивайте свои навыки с нашим курсом «Основы программирования на Python»

Proglib Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
💵💻🌍 Как пройти путь от резюме до оффера

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

В первой части мы разобрали:

🔘 Какие перспективы открывает валютная удаленка

🔘С какими сложностями можно столкнуться

🔘Как выбрать направление и подготовиться к выходу на международный рынок

Теперь настало время погрузиться в следующий этап 🔜

В этой части мы разберем:

➡️ Где искать вакансии на валютную удаленку: лучшие платформы и сервисы

➡️ Как составить резюме, которое заметят зарубежные рекрутеры

➡️ На что обращать внимание при выборе вакансии, чтобы избежать подводных камней

➡️ Как правильно выстроить процесс собеседования и успешно пройти все этапы

Если вы хотите работать в международной компании и получать оплату в долларах или евро, но не знаете, как пробиться на этот рынок — этот материал для вас 💡
Please open Telegram to view this post
VIEW IN TELEGRAM
💵💻🌍 Как не налететь на грабли: оформление и выплаты при валютной удалёнке из России

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

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

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

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

Что в статье:

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

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

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

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

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

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

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

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

➡️Поддержать канал: https://t.me/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++ разработчика