Собрали топовые материалы, которые наши подписчики сохраняют чаще всего.
Эту подборку мы будем регулярно пополнять, поэтому сохраняйте тонну пользы, чтобы не потерять!
1. Статьи об сборки C++ кода
2. Cute Headers — коллекция минималистичных и самодостаточных библиотек на Си!
3. Почему pmr::vector ломает ваш C++ код
4. Итераторы в C++ как указатели — это зло
5. Разбираем, как в Quake решали проблему избыточного рендеринга с помощью порталов и предварительных вычислений.
6. Книги по базам данных, которые стоит прочитать в 2025 году
7. Операционная система в 1000 строк
Please open Telegram to view this post
VIEW IN TELEGRAM
💃 Как языки программирования выглядят в стиле Гибли
Мы не могли пройти мимо нашумевшего тренда и попросили ИИ перенести наш любимый язык программирования во вселенную Миядзаки.
Как вам образ? Расскажите в комментариях ↓
😜 Еще больше персонажей из мира айти в стиле Гибли — в нашем канале @proglib
Мы не могли пройти мимо нашумевшего тренда и попросили ИИ перенести наш любимый язык программирования во вселенную Миядзаки.
Как вам образ? Расскажите в комментариях ↓
😜 Еще больше персонажей из мира айти в стиле Гибли — в нашем канале @proglib
Что произойдёт при использовании вариативных шаблонов?
Anonymous Quiz
6%
1
55%
3
22%
Ошибка компиляции
17%
Неопределённое поведение
💀 Джуны: game over или новый уровень сложности?
Рекрутеры ищут только сеньоров, AI отбирает хлеб у начинающих, а рынок переполнен выпускниками буткемпов.
➡️ Разбираемся, действительно ли наступил конец эпохи джуниоров и как молодым специалистам адаптироваться к новым реалиям.
🐸 Библиотека программиста
Рекрутеры ищут только сеньоров, AI отбирает хлеб у начинающих, а рынок переполнен выпускниками буткемпов.
Please open Telegram to view this post
VIEW IN TELEGRAM
💡Автор статьи погружается в создание текстовых приключенческих игр на языке C, объясняя преимущества инкрементальной разработки и особенности программирования в стиле «close to the metal».
❗ Ключевые моменты статьи:
• почему C может быть интересным выбором для текстовых игр
• инкрементальный подход к разработке
• значение хорошего текстового описания в приключенческих играх
Основной фокус — практическое руководство для тех, кто хочет изучать программирование через создание простых, но функциональных игр, без использования специализированных инструментов разработки.
Особенно полезно для программистов, знакомых с основами C и желающих применить свои знания в увлекательном проекте, или для тех, кто интересуется историей игровой разработки.
Вы узнаете, что даже в эпоху сложных 3D-игр, создание текстовых приключений с нуля может быть образовательным, увлекательным и развивающим опытом, позволяющим лучше понять основы программирования.
Библиотека C/C++ разработчика
❗ Ключевые моменты статьи:
• почему C может быть интересным выбором для текстовых игр
• инкрементальный подход к разработке
• значение хорошего текстового описания в приключенческих играх
Основной фокус — практическое руководство для тех, кто хочет изучать программирование через создание простых, но функциональных игр, без использования специализированных инструментов разработки.
Особенно полезно для программистов, знакомых с основами C и желающих применить свои знания в увлекательном проекте, или для тех, кто интересуется историей игровой разработки.
Вы узнаете, что даже в эпоху сложных 3D-игр, создание текстовых приключений с нуля может быть образовательным, увлекательным и развивающим опытом, позволяющим лучше понять основы программирования.
Библиотека C/C++ разработчика
🔥 IT Breaking Memes — 30 000 ₽ за самую смешную IT-новость
Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🏆 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
Пример:
Реальная новость: «Гугл создала модель для общения с дельфинами».
Смешная альтернатива: «Нейросеть от Гугл обрабатывает видеопоток с камеры в свинарнике. ИИ следит, сколько свинья находится возле кормушки, не отталкивают ли ее собратья. Недокормленных докармливают, а переевшие пропускают следующую кормешку».
📅 Сроки: с 29 апреля по 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Ждем ваших новостей!
Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🏆 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
Пример:
Реальная новость: «Гугл создала модель для общения с дельфинами».
Смешная альтернатива: «Нейросеть от Гугл обрабатывает видеопоток с камеры в свинарнике. ИИ следит, сколько свинья находится возле кормушки, не отталкивают ли ее собратья. Недокормленных докармливают, а переевшие пропускают следующую кормешку».
📅 Сроки: с 29 апреля по 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Ждем ваших новостей!
🧠 Метапрограммирование с Boost: магия времени компиляции
Метапрограммирование в C++ — это написание кода, который будет выполняться на этапе компиляции.
В Boost есть несколько библиотек упрощающих эту задачу:
🧩 Boost.MPL
Библиотека для манипуляций с типами во время компиляции.
🧩 Boost.Type_traits
Определение и модификация свойств типов.
🧩 Boost.Hana
Современное метапрограммирование для C++14/17.
Метапрограммирование помогает писать более обобщенный код, выполнять проверки на этапе компиляции и оптимизировать производительность!
Библиотека C/C++ разработчика #буст
Метапрограммирование в C++ — это написание кода, который будет выполняться на этапе компиляции.
В Boost есть несколько библиотек упрощающих эту задачу:
🧩 Boost.MPL
Библиотека для манипуляций с типами во время компиляции.
// Вычисление факториала при компиляции
using result = mpl::int_<factorial<5>::value>; // = 120
🧩 Boost.Type_traits
Определение и модификация свойств типов.
// Проверка, является ли тип целочисленным
static_assert(boost::is_integral<int>::value, "Must be integral");
🧩 Boost.Hana
Современное метапрограммирование для C++14/17.
// Преобразование кортежа типов в массив строк
constexpr auto types = hana::tuple_t<int, char, double>;
constexpr auto names = hana::transform(types, hana::typeid_);
Метапрограммирование помогает писать более обобщенный код, выполнять проверки на этапе компиляции и оптимизировать производительность!
Библиотека C/C++ разработчика #буст
Forwarded from Proglib.academy | IT-курсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🧙♂️ Атрибуты в современном C++
В C++11 и новее появились атрибуты — механизм, о котором многие забывают. Атрибуты позволяют передавать дополнительную информацию компилятору, не меняя семантику кода.
Другие полезные атрибуты: [[maybe_unused]], [[fallthrough]], [[no_unique_address]] (C++20). Они делают код понятнее и помогают избежать ошибок😸
Библиотека C/C++ разработчика #буст
В C++11 и новее появились атрибуты — механизм, о котором многие забывают. Атрибуты позволяют передавать дополнительную информацию компилятору, не меняя семантику кода.
[[nodiscard]] int getValue() { return 42; }
void test() {
getValue(); // Предупреждение: результат функции не используется
}
class [[deprecated("Используйте новый API")]] OldClass {};
[[noreturn]] void throwError() { throw std::runtime_error("Ошибка"); }
// C++20: говорит компилятору, что код с [[likely]] будет выполняться чаще
void process(int* data) {
if (data) [[likely]] {
process_data(data);
} else [[unlikely]] {
handle_null();
}
}
Другие полезные атрибуты: [[maybe_unused]], [[fallthrough]], [[no_unique_address]] (C++20). Они делают код понятнее и помогают избежать ошибок😸
Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Книги для программистов
Please open Telegram to view this post
VIEW IN TELEGRAM
Рынок IT-специалистов в Европе является одним из самых динамичных и конкурентных в мире. Западная и Восточная Европа представляют собой два уникальных «региона» с разными экономическими, культурными и образовательными особенностями, которые влияют на процессы найма IT-специалистов.
Цель данной статьи — провести сравнительный анализ подходов к найму IT-специалистов в этих европейских зонах, выделить ключевые различия и сходства.
#cвежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Jank — функциональный язык для любителей Lisp и Clojure!
🔹 Что такое Jank?
Jank — это Lisp-подобный язык программирования, вдохновлённый Clojure, но с компиляцией в нативный код через LLVM. Он сочетает в себе мощь функционального программирования и производительность C++.
🔹 Почему стоит попробовать?
✅ Близок к Clojure — если вы уже знакомы с Clojure, освоите Jank быстро
✅ Нативная компиляция — LLVM бэкенд даёт хорошую скорость
✅ Взаимодействие с C++ — можно легко интегрировать существующие библиотеки
Jank стремится быть хорошо совместимым с Clojure. В то время как хостом Clojure по умолчанию является JVM, а взаимодействие осуществляется с Java, хостом Jank является LLVM, а взаимодействие осуществляется с C++.
👉 Github
Библиотека C/C++ разработчика
🔹 Что такое Jank?
Jank — это Lisp-подобный язык программирования, вдохновлённый Clojure, но с компиляцией в нативный код через LLVM. Он сочетает в себе мощь функционального программирования и производительность C++.
🔹 Почему стоит попробовать?
✅ Близок к Clojure — если вы уже знакомы с Clojure, освоите Jank быстро
✅ Нативная компиляция — LLVM бэкенд даёт хорошую скорость
✅ Взаимодействие с C++ — можно легко интегрировать существующие библиотеки
Jank стремится быть хорошо совместимым с Clojure. В то время как хостом Clojure по умолчанию является JVM, а взаимодействие осуществляется с Java, хостом Jank является LLVM, а взаимодействие осуществляется с C++.
👉 Github
Библиотека C/C++ разработчика
💡 Статья Максима Белова на Хабре разбирает, почему чистый код — это не просто эстетика, а прагматичный подход к разработке, который экономит время и нервы всей команды.
❗️ Ключевые моменты статьи:
• Чистый код — это код, понятный людям, а не только компилятору
• Технический долг накапливается, как снежный ком, и усложняет поддержку проекта
• Принципы SOLID, DRY и KISS — основа для создания гибкой и поддерживаемой архитектуры
Основной фокус — как превратить «спагетти-код» в элегантное и читаемое решение, используя проверенные практики и инструменты.
Особенно актуально для разработчиков, тимлидов и архитекторов, которые хотят снизить количество багов и ускорить разработку.
Вы узнаете, что инвестиции в чистый код окупаются быстрее, чем кажется: проекты с высокой читаемостью содержат в 15 раз меньше дефектов, а их поддержка требует на 124% меньше времени.
Библиотека C/C++ разработчика
❗️ Ключевые моменты статьи:
• Чистый код — это код, понятный людям, а не только компилятору
• Технический долг накапливается, как снежный ком, и усложняет поддержку проекта
• Принципы SOLID, DRY и KISS — основа для создания гибкой и поддерживаемой архитектуры
Основной фокус — как превратить «спагетти-код» в элегантное и читаемое решение, используя проверенные практики и инструменты.
Особенно актуально для разработчиков, тимлидов и архитекторов, которые хотят снизить количество багов и ускорить разработку.
Вы узнаете, что инвестиции в чистый код окупаются быстрее, чем кажется: проекты с высокой читаемостью содержат в 15 раз меньше дефектов, а их поддержка требует на 124% меньше времени.
Библиотека C/C++ разработчика